From fbb4e5fb0f7bba935ec9d0d466be12a346a6b149 Mon Sep 17 00:00:00 2001
From: Jonathan Yap <none@none>
Date: Fri, 8 Jun 2012 13:49:02 -0400
Subject: STORM-68 As a Builder, I want that ability to set default permissions
 on creation of objects, clothing, scripts, notecards, etc. First pass at
 implementation, debuggins lines still need to be removed and there is one
 known bug to be resolved.

---
 indra/llinventory/llinventory.cpp                  |   5 +
 indra/newview/app_settings/settings.xml            | 330 +++++++++++++
 indra/newview/llagentwearables.cpp                 |  62 ++-
 indra/newview/llfloaterbvhpreview.cpp              |   2 +-
 indra/newview/llfloatergesture.cpp                 |  25 +-
 indra/newview/llfloaternamedesc.cpp                |   2 +-
 indra/newview/llfloaterperms.cpp                   | 153 ++++---
 indra/newview/llfloaterperms.h                     |  49 +-
 indra/newview/llfloaterpreference.cpp              |   8 +-
 indra/newview/llfloaterpreference.h                |   1 +
 indra/newview/llfloatersnapshot.cpp                |   4 +-
 indra/newview/llinventorymodel.cpp                 |   2 +-
 indra/newview/llmeshrepository.cpp                 |   6 +-
 indra/newview/llpanelcontents.cpp                  |   6 +-
 indra/newview/llviewerfloaterreg.cpp               |   2 +-
 indra/newview/llviewerinventory.cpp                |  98 +++-
 indra/newview/llviewerinventory.h                  |  12 +
 indra/newview/llviewermenufile.cpp                 |  12 +-
 indra/newview/llviewerobject.cpp                   |  12 +-
 indra/newview/llviewerobjectlist.cpp               |  12 +
 .../skins/default/xui/en/floater_perms_default.xml | 508 +++++++++++++++++++++
 indra/newview/skins/default/xui/en/menu_viewer.xml |   7 -
 .../default/xui/en/panel_preferences_advanced.xml  |  11 +
 23 files changed, 1213 insertions(+), 116 deletions(-)
 create mode 100644 indra/newview/skins/default/xui/en/floater_perms_default.xml

(limited to 'indra')

diff --git a/indra/llinventory/llinventory.cpp b/indra/llinventory/llinventory.cpp
index fbf23bc3f0..4e5a328c54 100644
--- a/indra/llinventory/llinventory.cpp
+++ b/indra/llinventory/llinventory.cpp
@@ -303,6 +303,11 @@ LLInventoryItem::LLInventoryItem(const LLUUID& uuid,
 	LLStringUtil::replaceNonstandardASCII(mDescription, ' ');
 	LLStringUtil::replaceChar(mDescription, '|', ' ');
 	mPermissions.initMasks(inv_type);
+//	if (LLInventoryType::IT_LSL == inv_type)
+//	{
+//		mPermissions.setMaskNext(permissions.getMaskNextOwner());
+		mPermissions.setMaskNext(PERM_ALL);
+//	}
 }
 
 LLInventoryItem::LLInventoryItem() :
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index 05c05b9393..b3ed917574 100644
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -13516,5 +13516,335 @@
       <key>Value</key>
       <integer>0</integer>
     </map>
+    <key>ObjectsNextOwnerCopy</key>
+    <map>
+      <key>Comment</key>
+      <string>Newly created objects can be copied by next owner</string>
+      <key>Persist</key>
+      <integer>1</integer>
+      <key>Type</key>
+      <string>Boolean</string>
+      <key>Value</key>
+      <integer>0</integer>
+    </map>
+    <key>ObjectsNextOwnerModify</key>
+    <map>
+      <key>Comment</key>
+      <string>Newly created objects can be modified by next owner</string>
+      <key>Persist</key>
+      <integer>1</integer>
+      <key>Type</key>
+      <string>Boolean</string>
+      <key>Value</key>
+      <integer>0</integer>
+    </map>
+    <key>ObjectsNextOwnerTransfer</key>
+    <map>
+      <key>Comment</key>
+      <string>Newly created objects can be resold or given away by next owner</string>
+      <key>Persist</key>
+      <integer>1</integer>
+      <key>Type</key>
+      <string>Boolean</string>
+      <key>Value</key>
+      <integer>1</integer>
+    </map>
+    <key>ObjectsEveryoneCopy</key>
+      <map>
+        <key>Comment</key>
+        <string>Everyone can copy the newly created object</string>
+        <key>Persist</key>
+        <integer>1</integer>
+        <key>Type</key>
+        <string>Boolean</string>
+        <key>Value</key>
+        <integer>0</integer>
+    </map>
+    <key>ObjectsShareWithGroup</key>
+    <map>
+      <key>Comment</key>
+      <string>Newly created objects are shared with the currently active group</string>
+      <key>Persist</key>
+      <integer>1</integer>
+      <key>Type</key>
+      <string>Boolean</string>
+      <key>Value</key>
+      <integer>0</integer>
+    </map>
+    <key>UploadsNextOwnerCopy</key>
+    <map>
+      <key>Comment</key>
+      <string>Newly uploaded items can be copied by next owner</string>
+      <key>Persist</key>
+      <integer>1</integer>
+      <key>Type</key>
+      <string>Boolean</string>
+      <key>Value</key>
+      <integer>0</integer>
+    </map>
+    <key>UploadsNextOwnerModify</key>
+    <map>
+      <key>Comment</key>
+      <string>Newly uploaded items can be modified by next owner</string>
+      <key>Persist</key>
+      <integer>1</integer>
+      <key>Type</key>
+      <string>Boolean</string>
+      <key>Value</key>
+      <integer>0</integer>
+    </map>
+    <key>UploadsNextOwnerTransfer</key>
+    <map>
+      <key>Comment</key>
+      <string>Newly uploaded items can be resold or given away by next owner</string>
+      <key>Persist</key>
+      <integer>1</integer>
+      <key>Type</key>
+      <string>Boolean</string>
+      <key>Value</key>
+      <integer>1</integer>
+    </map>
+    <key>UploadsEveryoneCopy</key>
+      <map>
+        <key>Comment</key>
+        <string>Everyone can copy the newly uploaded item</string>
+        <key>Persist</key>
+        <integer>1</integer>
+        <key>Type</key>
+        <string>Boolean</string>
+        <key>Value</key>
+        <integer>0</integer>
+    </map>
+    <key>UploadsShareWithGroup</key>
+    <map>
+      <key>Comment</key>
+      <string>Newly uploaded items are shared with the currently active group</string>
+      <key>Persist</key>
+      <integer>1</integer>
+      <key>Type</key>
+      <string>Boolean</string>
+      <key>Value</key>
+      <integer>0</integer>
+    </map>
+    <key>ScriptsNextOwnerCopy</key>
+    <map>
+      <key>Comment</key>
+      <string>Newly created scripts can be copied by next owner</string>
+      <key>Persist</key>
+      <integer>1</integer>
+      <key>Type</key>
+      <string>Boolean</string>
+      <key>Value</key>
+      <integer>0</integer>
+    </map>
+    <key>ScriptsNextOwnerModify</key>
+    <map>
+      <key>Comment</key>
+      <string>Newly created scripts can be modified by next owner</string>
+      <key>Persist</key>
+      <integer>1</integer>
+      <key>Type</key>
+      <string>Boolean</string>
+      <key>Value</key>
+      <integer>0</integer>
+    </map>
+    <key>ScriptsNextOwnerTransfer</key>
+    <map>
+      <key>Comment</key>
+      <string>Newly created scripts can be resold or given away by next owner</string>
+      <key>Persist</key>
+      <integer>1</integer>
+      <key>Type</key>
+      <string>Boolean</string>
+      <key>Value</key>
+      <integer>1</integer>
+    </map>
+    <key>ScriptsEveryoneCopy</key>
+      <map>
+        <key>Comment</key>
+        <string>Everyone can copy the newly created script</string>
+        <key>Persist</key>
+        <integer>1</integer>
+        <key>Type</key>
+        <string>Boolean</string>
+        <key>Value</key>
+        <integer>0</integer>
+    </map>
+    <key>ScriptsShareWithGroup</key>
+    <map>
+      <key>Comment</key>
+      <string>Newly created scripts are shared with the currently active group</string>
+      <key>Persist</key>
+      <integer>1</integer>
+      <key>Type</key>
+      <string>Boolean</string>
+      <key>Value</key>
+      <integer>0</integer>
+    </map>
+    <key>NotecardsNextOwnerCopy</key>
+    <map>
+      <key>Comment</key>
+      <string>Newly created notecards can be copied by next owner</string>
+      <key>Persist</key>
+      <integer>1</integer>
+      <key>Type</key>
+      <string>Boolean</string>
+      <key>Value</key>
+      <integer>0</integer>
+    </map>
+    <key>NotecardsNextOwnerModify</key>
+    <map>
+      <key>Comment</key>
+      <string>Newly created notecards can be modified by next owner</string>
+      <key>Persist</key>
+      <integer>1</integer>
+      <key>Type</key>
+      <string>Boolean</string>
+      <key>Value</key>
+      <integer>0</integer>
+    </map>
+    <key>NotecardsNextOwnerTransfer</key>
+    <map>
+      <key>Comment</key>
+      <string>Newly created notecards can be resold or given away by next owner</string>
+      <key>Persist</key>
+      <integer>1</integer>
+      <key>Type</key>
+      <string>Boolean</string>
+      <key>Value</key>
+      <integer>1</integer>
+    </map>
+    <key>NotecardsEveryoneCopy</key>
+      <map>
+        <key>Comment</key>
+        <string>Everyone can copy the newly created notecard</string>
+        <key>Persist</key>
+        <integer>1</integer>
+        <key>Type</key>
+        <string>Boolean</string>
+        <key>Value</key>
+        <integer>0</integer>
+    </map>
+    <key>NotecardsShareWithGroup</key>
+    <map>
+      <key>Comment</key>
+      <string>Newly created notecards are shared with the currently active group</string>
+      <key>Persist</key>
+      <integer>1</integer>
+      <key>Type</key>
+      <string>Boolean</string>
+      <key>Value</key>
+      <integer>0</integer>
+    </map>
+    <key>GesturesNextOwnerCopy</key>
+    <map>
+      <key>Comment</key>
+      <string>Newly created gestures can be copied by next owner</string>
+      <key>Persist</key>
+      <integer>1</integer>
+      <key>Type</key>
+      <string>Boolean</string>
+      <key>Value</key>
+      <integer>0</integer>
+    </map>
+    <key>GesturesNextOwnerModify</key>
+    <map>
+      <key>Comment</key>
+      <string>Newly created gestures can be modified by next owner</string>
+      <key>Persist</key>
+      <integer>1</integer>
+      <key>Type</key>
+      <string>Boolean</string>
+      <key>Value</key>
+      <integer>0</integer>
+    </map>
+    <key>GesturesNextOwnerTransfer</key>
+    <map>
+      <key>Comment</key>
+      <string>Newly created gestures can be resold or given away by next owner</string>
+      <key>Persist</key>
+      <integer>1</integer>
+      <key>Type</key>
+      <string>Boolean</string>
+      <key>Value</key>
+      <integer>1</integer>
+    </map>
+    <key>GesturesEveryoneCopy</key>
+      <map>
+        <key>Comment</key>
+        <string>Everyone can copy the newly created gesture</string>
+        <key>Persist</key>
+        <integer>1</integer>
+        <key>Type</key>
+        <string>Boolean</string>
+        <key>Value</key>
+        <integer>0</integer>
+    </map>
+    <key>GesturesShareWithGroup</key>
+    <map>
+      <key>Comment</key>
+      <string>Newly created gestures are shared with the currently active group</string>
+      <key>Persist</key>
+      <integer>1</integer>
+      <key>Type</key>
+      <string>Boolean</string>
+      <key>Value</key>
+      <integer>0</integer>
+    </map>
+    <key>WearablesNextOwnerCopy</key>
+    <map>
+      <key>Comment</key>
+      <string>Newly created clothing or body part can be copied by next owner</string>
+      <key>Persist</key>
+      <integer>1</integer>
+      <key>Type</key>
+      <string>Boolean</string>
+      <key>Value</key>
+      <integer>0</integer>
+    </map>
+    <key>WearablesNextOwnerModify</key>
+    <map>
+      <key>Comment</key>
+      <string>Newly created clothing or body part can be modified by next owner</string>
+      <key>Persist</key>
+      <integer>1</integer>
+      <key>Type</key>
+      <string>Boolean</string>
+      <key>Value</key>
+      <integer>0</integer>
+    </map>
+    <key>WearablesNextOwnerTransfer</key>
+    <map>
+      <key>Comment</key>
+      <string>Newly created clothing or body part can be resold or given away by next owner</string>
+      <key>Persist</key>
+      <integer>1</integer>
+      <key>Type</key>
+      <string>Boolean</string>
+      <key>Value</key>
+      <integer>1</integer>
+    </map>
+    <key>WearablesEveryoneCopy</key>
+      <map>
+        <key>Comment</key>
+        <string>Everyone can copy the newly created clothing or body part</string>
+        <key>Persist</key>
+        <integer>1</integer>
+        <key>Type</key>
+        <string>Boolean</string>
+        <key>Value</key>
+        <integer>0</integer>
+    </map>
+    <key>WearablesShareWithGroup</key>
+    <map>
+      <key>Comment</key>
+      <string>Newly created clothing or body part is shared with the currently active group</string>
+      <key>Persist</key>
+      <integer>1</integer>
+      <key>Type</key>
+      <string>Boolean</string>
+      <key>Value</key>
+      <integer>0</integer>
+    </map>
 </map>
 </llsd>
diff --git a/indra/newview/llagentwearables.cpp b/indra/newview/llagentwearables.cpp
index dd02a74a38..7017357346 100644
--- a/indra/newview/llagentwearables.cpp
+++ b/indra/newview/llagentwearables.cpp
@@ -49,6 +49,7 @@
 #include "llvoavatarself.h"
 #include "llwearable.h"
 #include "llwearablelist.h"
+#include "llfloaterperms.h"
 
 #include <boost/scoped_ptr.hpp>
 
@@ -65,8 +66,24 @@ class LLWearAndEditCallback : public LLInventoryCallback
 {
 	void fire(const LLUUID& inv_item)
 	{
+llwarns << "DBG 1" << llendl;
 		if (inv_item.isNull()) return;
 
+llwarns << "DBG 2" << llendl;
+		LLViewerInventoryItem* item = gInventory.getItem(inv_item);
+		if (!item) return;
+
+llwarns << "DBG 3" << llendl;
+		LLPermissions perm = item->getPermissions();
+		perm.setMaskNext(LLFloaterPerms::getNextOwnerPerms("Wearables"));
+		perm.setMaskEveryone(LLFloaterPerms::getEveryonePerms("Wearables"));
+		perm.setMaskGroup(LLFloaterPerms::getGroupPerms("Wearables"));
+		item->setPermissions(perm);
+
+llwarns << "DBG 4" << llendl;
+		gInventory.updateItem(item);
+		gInventory.notifyObservers();
+
 		// Request editing the item after it gets worn.
 		gAgentWearables.requestEditingWearable(inv_item);
 
@@ -75,6 +92,27 @@ class LLWearAndEditCallback : public LLInventoryCallback
 	}
 };
 
+class LLCreateWearableCallback : public LLInventoryCallback
+{
+	void fire(const LLUUID& inv_item)
+	{
+		if (inv_item.isNull())
+			return;
+
+		LLViewerInventoryItem* item = gInventory.getItem(inv_item);
+		if (!item) return;
+
+		LLPermissions perm = item->getPermissions();
+		perm.setMaskNext(LLFloaterPerms::getNextOwnerPerms("Wearables"));
+		perm.setMaskEveryone(LLFloaterPerms::getEveryonePerms("Wearables"));
+		perm.setMaskGroup(LLFloaterPerms::getGroupPerms("Wearables"));
+		item->setPermissions(perm);
+
+		gInventory.updateItem(item);
+		gInventory.notifyObservers();
+	}
+};
+
 ///////////////////////////////////////////////////////////////////////////////
 
 // HACK: For EXT-3923: Pants item shows in inventory with skin icon and messes with "current look"
@@ -1982,7 +2020,16 @@ void LLAgentWearables::createWearable(LLWearableType::EType type, bool wear, con
 	LLWearable* wearable = LLWearableList::instance().createNewWearable(type);
 	LLAssetType::EType asset_type = wearable->getAssetType();
 	LLInventoryType::EType inv_type = LLInventoryType::IT_WEARABLE;
-	LLPointer<LLInventoryCallback> cb = wear ? new LLWearAndEditCallback : NULL;
+	LLPointer<LLInventoryCallback> cb;
+	if (wear)
+	{
+		cb = new LLWearAndEditCallback;
+	}
+	else
+	{
+		cb = new LLCreateWearableCallback;
+	}
+
 	LLUUID folder_id;
 
 	if (parent_id.notNull())
@@ -1995,10 +2042,15 @@ void LLAgentWearables::createWearable(LLWearableType::EType type, bool wear, con
 		folder_id = gInventory.findCategoryUUIDForType(folder_type);
 	}
 
-	create_inventory_item(gAgent.getID(), gAgent.getSessionID(),
-						  folder_id, wearable->getTransactionID(), wearable->getName(),
-						  wearable->getDescription(), asset_type, inv_type, wearable->getType(),
-						  wearable->getPermissions().getMaskNextOwner(),
+	create_inventory_item(gAgent.getID(),
+						  gAgent.getSessionID(),
+						  folder_id,
+						  wearable->getTransactionID(),
+						  wearable->getName(),
+						  wearable->getDescription(),
+						  asset_type, inv_type,
+						  wearable->getType(),
+						  LLFloaterPerms::getNextOwnerPerms("Wearables"),
 						  cb);
 }
 
diff --git a/indra/newview/llfloaterbvhpreview.cpp b/indra/newview/llfloaterbvhpreview.cpp
index b050a638dc..720c2cbeea 100644
--- a/indra/newview/llfloaterbvhpreview.cpp
+++ b/indra/newview/llfloaterbvhpreview.cpp
@@ -991,7 +991,7 @@ void LLFloaterBvhPreview::onBtnOK(void* userdata)
 						    0,
 						    LLFolderType::FT_NONE,
 						    LLInventoryType::IT_ANIMATION,
-						    LLFloaterPerms::getNextOwnerPerms(), LLFloaterPerms::getGroupPerms(), LLFloaterPerms::getEveryonePerms(),
+						    LLFloaterPerms::getNextOwnerPerms("Uploads"), LLFloaterPerms::getGroupPerms("Uploads"), LLFloaterPerms::getEveryonePerms("Uploads"),
 						    name,
 						    callback, expected_upload_cost, userdata);
 
diff --git a/indra/newview/llfloatergesture.cpp b/indra/newview/llfloatergesture.cpp
index 56051ff684..dcc245ee20 100644
--- a/indra/newview/llfloatergesture.cpp
+++ b/indra/newview/llfloatergesture.cpp
@@ -48,6 +48,7 @@
 #include "llviewermenu.h" 
 #include "llviewerinventory.h"
 #include "llviewercontrol.h"
+#include "llfloaterperms.h"
 
 BOOL item_name_precedes( LLInventoryItem* a, LLInventoryItem* b )
 {
@@ -74,6 +75,16 @@ public:
 	void fire(const LLUUID &inv_item)
 	{
 		LLPreviewGesture::show(inv_item, LLUUID::null);
+		
+		LLInventoryItem* item = gInventory.getItem(inv_item);
+		if (item)
+		{
+			LLPermissions perm = item->getPermissions();
+			perm.setMaskNext(LLFloaterPerms::getNextOwnerPerms("Gestures"));
+			perm.setMaskEveryone(LLFloaterPerms::getEveryonePerms("Gestures"));
+			perm.setMaskGroup(LLFloaterPerms::getGroupPerms("Gestures"));
+			item->setPermissions(perm);
+		}
 	}
 };
 
@@ -449,9 +460,17 @@ void LLFloaterGesture::onClickPlay()
 void LLFloaterGesture::onClickNew()
 {
 	LLPointer<LLInventoryCallback> cb = new GestureShowCallback();
-	create_inventory_item(gAgent.getID(), gAgent.getSessionID(),
-		LLUUID::null, LLTransactionID::tnull, "New Gesture", "", LLAssetType::AT_GESTURE,
-		LLInventoryType::IT_GESTURE, NOT_WEARABLE, PERM_MOVE | PERM_TRANSFER, cb);
+	create_inventory_item(gAgent.getID(),
+						  gAgent.getSessionID(),
+						  LLUUID::null,
+						  LLTransactionID::tnull,
+						  "New Gesture",
+						  "",
+						  LLAssetType::AT_GESTURE,
+						  LLInventoryType::IT_GESTURE,
+						  NOT_WEARABLE,
+						  PERM_MOVE | LLFloaterPerms::getNextOwnerPerms("Gestures"),
+						  cb);
 }
 
 void LLFloaterGesture::onActivateBtnClick()
diff --git a/indra/newview/llfloaternamedesc.cpp b/indra/newview/llfloaternamedesc.cpp
index 27b1c3b9cd..eefc352287 100644
--- a/indra/newview/llfloaternamedesc.cpp
+++ b/indra/newview/llfloaternamedesc.cpp
@@ -171,7 +171,7 @@ void LLFloaterNameDesc::onBtnOK( )
 			    getChild<LLUICtrl>("name_form")->getValue().asString(), 
 			    getChild<LLUICtrl>("description_form")->getValue().asString(), 
 			    0, LLFolderType::FT_NONE, LLInventoryType::IT_NONE,
-			    LLFloaterPerms::getNextOwnerPerms(), LLFloaterPerms::getGroupPerms(), LLFloaterPerms::getEveryonePerms(),
+			    LLFloaterPerms::getNextOwnerPerms("Uploads"), LLFloaterPerms::getGroupPerms("Uploads"), LLFloaterPerms::getEveryonePerms("Uploads"),
 			    display_name, callback, expected_upload_cost, nruserdata);
 	closeFloater(false);
 }
diff --git a/indra/newview/llfloaterperms.cpp b/indra/newview/llfloaterperms.cpp
index 80b55c3cbb..3853dd0ef6 100644
--- a/indra/newview/llfloaterperms.cpp
+++ b/indra/newview/llfloaterperms.cpp
@@ -37,96 +37,139 @@
 LLFloaterPerms::LLFloaterPerms(const LLSD& seed)
 : LLFloater(seed)
 {
-	mCommitCallbackRegistrar.add("Perms.Copy",	boost::bind(&LLFloaterPerms::onCommitCopy, this));
-	mCommitCallbackRegistrar.add("Perms.OK",	boost::bind(&LLFloaterPerms::onClickOK, this));
-	mCommitCallbackRegistrar.add("Perms.Cancel",	boost::bind(&LLFloaterPerms::onClickCancel, this));
-
 }
 
 BOOL LLFloaterPerms::postBuild()
 {
-	mCloseSignal.connect(boost::bind(&LLFloaterPerms::cancel, this));
-	
-	refresh();
-	
-	return TRUE;
+	return true;
 }
 
-void LLFloaterPerms::onClickOK()
-{
-	ok();
-	closeFloater();
+//static 
+U32 LLFloaterPerms::getGroupPerms(std::string prefix)
+{	
+	return gSavedSettings.getBOOL(prefix+"ShareWithGroup") ? PERM_COPY : PERM_NONE;
 }
 
-void LLFloaterPerms::onClickCancel()
+//static 
+U32 LLFloaterPerms::getEveryonePerms(std::string prefix)
 {
-	cancel();
-	closeFloater();
+	return gSavedSettings.getBOOL(prefix+"EveryoneCopy") ? PERM_COPY : PERM_NONE;
 }
 
-void LLFloaterPerms::onCommitCopy()
+//static 
+U32 LLFloaterPerms::getNextOwnerPerms(std::string prefix)
 {
-	// Implements fair use
-	BOOL copyable = gSavedSettings.getBOOL("NextOwnerCopy");
-	if(!copyable)
+	U32 flags = PERM_MOVE;
+	if ( gSavedSettings.getBOOL(prefix+"NextOwnerCopy") )
 	{
-		gSavedSettings.setBOOL("NextOwnerTransfer", TRUE);
+		flags |= PERM_COPY;
 	}
-	LLCheckBoxCtrl* xfer = getChild<LLCheckBoxCtrl>("next_owner_transfer");
-	xfer->setEnabled(copyable);
+	if ( gSavedSettings.getBOOL(prefix+"NextOwnerModify") )
+	{
+		flags |= PERM_MODIFY;
+	}
+	if ( gSavedSettings.getBOOL(prefix+"NextOwnerTransfer") )
+	{
+		flags |= PERM_TRANSFER;
+	}
+	return flags;
 }
 
-void LLFloaterPerms::ok()
+//static 
+U32 LLFloaterPerms::getNextOwnerPermsInverted(std::string prefix)
 {
-	refresh(); // Changes were already applied to saved settings. Refreshing internal values makes it official.
+	// Sets bits for permissions that are off
+	U32 flags = PERM_MOVE;
+	if ( !gSavedSettings.getBOOL(prefix+"NextOwnerCopy") )
+	{
+		flags |= PERM_COPY;
+	}
+	if ( !gSavedSettings.getBOOL(prefix+"NextOwnerModify") )
+	{
+		flags |= PERM_MODIFY;
+	}
+	if ( !gSavedSettings.getBOOL(prefix+"NextOwnerTransfer") )
+	{
+		flags |= PERM_TRANSFER;
+	}
+	return flags;
 }
 
-void LLFloaterPerms::cancel()
+LLFloaterPermsDefault::LLFloaterPermsDefault(const LLSD& seed)
+: LLFloater(seed)
 {
-	gSavedSettings.setBOOL("ShareWithGroup",    mShareWithGroup);
-	gSavedSettings.setBOOL("EveryoneCopy",      mEveryoneCopy);
-	gSavedSettings.setBOOL("NextOwnerCopy",     mNextOwnerCopy);
-	gSavedSettings.setBOOL("NextOwnerModify",   mNextOwnerModify);
-	gSavedSettings.setBOOL("NextOwnerTransfer", mNextOwnerTransfer);
+	mCommitCallbackRegistrar.add("PermsDefault.Copy", boost::bind(&LLFloaterPermsDefault::onCommitCopy, this, _2));
+	mCommitCallbackRegistrar.add("PermsDefault.OK", boost::bind(&LLFloaterPermsDefault::onClickOK, this));
+	mCommitCallbackRegistrar.add("PermsDefault.Cancel", boost::bind(&LLFloaterPermsDefault::onClickCancel, this));
 }
 
-void LLFloaterPerms::refresh()
+BOOL LLFloaterPermsDefault::postBuild()
 {
-	mShareWithGroup    = gSavedSettings.getBOOL("ShareWithGroup");
-	mEveryoneCopy      = gSavedSettings.getBOOL("EveryoneCopy");
-	mNextOwnerCopy     = gSavedSettings.getBOOL("NextOwnerCopy");
-	mNextOwnerModify   = gSavedSettings.getBOOL("NextOwnerModify");
-	mNextOwnerTransfer = gSavedSettings.getBOOL("NextOwnerTransfer");
+	mCloseSignal.connect(boost::bind(&LLFloaterPermsDefault::cancel, this));
+
+	category_names[CAT_OBJECTS] = "Objects";
+	category_names[CAT_UPLOADS] = "Uploads";
+	category_names[CAT_SCRIPTS] = "Scripts";
+	category_names[CAT_NOTECARDS] = "Notecards";
+	category_names[CAT_GESTURES] = "Gestures";
+	category_names[CAT_WEARABLES] = "Wearables";
+
+	refresh();
+	
+	return true;
 }
 
-//static 
-U32 LLFloaterPerms::getGroupPerms(std::string prefix)
-{	
-	return gSavedSettings.getBOOL(prefix+"ShareWithGroup") ? PERM_COPY : PERM_NONE;
+void LLFloaterPermsDefault::onClickOK()
+{
+	ok();
+	closeFloater();
 }
 
-//static 
-U32 LLFloaterPerms::getEveryonePerms(std::string prefix)
+void LLFloaterPermsDefault::onClickCancel()
 {
-	return gSavedSettings.getBOOL(prefix+"EveryoneCopy") ? PERM_COPY : PERM_NONE;
+	cancel();
+	closeFloater();
 }
 
-//static 
-U32 LLFloaterPerms::getNextOwnerPerms(std::string prefix)
+void LLFloaterPermsDefault::onCommitCopy(const LLSD& user_data)
 {
-	U32 flags = PERM_MOVE;
-	if ( gSavedSettings.getBOOL(prefix+"NextOwnerCopy") )
+	// Implements fair use
+	std::string prefix = user_data.asString();
+
+	BOOL copyable = gSavedSettings.getBOOL(prefix+"NextOwnerCopy");
+	if(!copyable)
 	{
-		flags |= PERM_COPY;
+		gSavedSettings.setBOOL(prefix+"NextOwnerTransfer", TRUE);
 	}
-	if ( gSavedSettings.getBOOL(prefix+"NextOwnerModify") )
+	LLCheckBoxCtrl* xfer = getChild<LLCheckBoxCtrl>(prefix+"_transfer");
+	xfer->setEnabled(copyable);
+}
+
+void LLFloaterPermsDefault::ok()
+{
+	refresh(); // Changes were already applied to saved settings. Refreshing internal values makes it official.
+}
+
+void LLFloaterPermsDefault::cancel()
+{
+	for (U32 iter = CAT_OBJECTS; iter < CAT_LAST; iter++)
 	{
-		flags |= PERM_MODIFY;
+		gSavedSettings.setBOOL(category_names[iter]+"NextOwnerCopy",		mNextOwnerCopy[iter]);
+		gSavedSettings.setBOOL(category_names[iter]+"NextOwnerModify",		mNextOwnerModify[iter]);
+		gSavedSettings.setBOOL(category_names[iter]+"NextOwnerTransfer",	mNextOwnerTransfer[iter]);
+		gSavedSettings.setBOOL(category_names[iter]+"ShareWithGroup",		mShareWithGroup[iter]);
+		gSavedSettings.setBOOL(category_names[iter]+"EveryoneCopy",			mEveryoneCopy[iter]);
 	}
-	if ( gSavedSettings.getBOOL(prefix+"NextOwnerTransfer") )
+}
+
+void LLFloaterPermsDefault::refresh()
+{
+	for (U32 iter = CAT_OBJECTS; iter < CAT_LAST; iter++)
 	{
-		flags |= PERM_TRANSFER;
+		mShareWithGroup[iter]    = gSavedSettings.getBOOL(category_names[iter]+"ShareWithGroup");
+		mEveryoneCopy[iter]      = gSavedSettings.getBOOL(category_names[iter]+"EveryoneCopy");
+		mNextOwnerCopy[iter]     = gSavedSettings.getBOOL(category_names[iter]+"NextOwnerCopy");
+		mNextOwnerModify[iter]   = gSavedSettings.getBOOL(category_names[iter]+"NextOwnerModify");
+		mNextOwnerTransfer[iter] = gSavedSettings.getBOOL(category_names[iter]+"NextOwnerTransfer");
 	}
-	return flags;
 }
-
diff --git a/indra/newview/llfloaterperms.h b/indra/newview/llfloaterperms.h
index 6b65f4b0cd..bb4a6f9702 100644
--- a/indra/newview/llfloaterperms.h
+++ b/indra/newview/llfloaterperms.h
@@ -36,26 +36,53 @@ class LLFloaterPerms : public LLFloater
 	
 public:
 	/*virtual*/ BOOL postBuild();
-	void ok();
-	void cancel();
-	void onClickOK();
-	void onClickCancel();
-	void onCommitCopy();
+
 	// Convenience methods to get current permission preference bitfields from saved settings:
 	static U32 getEveryonePerms(std::string prefix=""); // prefix + "EveryoneCopy"
 	static U32 getGroupPerms(std::string prefix=""); // prefix + "ShareWithGroup"
 	static U32 getNextOwnerPerms(std::string prefix=""); // bitfield for prefix + "NextOwner" + "Copy", "Modify", and "Transfer"
+	static U32 getNextOwnerPermsInverted(std::string prefix="");
 
 private:
 	LLFloaterPerms(const LLSD& seed);
+
+};
+
+class LLFloaterPermsDefault : public LLFloater
+{
+	friend class LLFloaterReg;
+
+public:
+	/*virtual*/ BOOL postBuild();
+	void ok();
+	void cancel();
+	void onClickOK();
+	void onClickCancel();
+	void onCommitCopy(const LLSD& user_data);
+
+enum Categories
+{
+	CAT_OBJECTS,
+	CAT_UPLOADS,
+	CAT_SCRIPTS,
+	CAT_NOTECARDS,
+	CAT_GESTURES,
+	CAT_WEARABLES,
+	CAT_LAST
+};
+
+private:
+	LLFloaterPermsDefault(const LLSD& seed);
 	void refresh();
 
-	BOOL // cached values only for implementing cancel.
-		mShareWithGroup,
-		mEveryoneCopy,
-		mNextOwnerCopy,
-		mNextOwnerModify,
-		mNextOwnerTransfer;
+	std::string category_names[CAT_LAST];
+
+	// cached values only for implementing cancel.
+	bool mShareWithGroup[CAT_LAST];
+	bool mEveryoneCopy[CAT_LAST];
+	bool mNextOwnerCopy[CAT_LAST];
+	bool mNextOwnerModify[CAT_LAST];
+	bool mNextOwnerTransfer[CAT_LAST];
 };
 
 #endif
diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp
index 173b0e538c..596c73870d 100755
--- a/indra/newview/llfloaterpreference.cpp
+++ b/indra/newview/llfloaterpreference.cpp
@@ -346,7 +346,8 @@ LLFloaterPreference::LLFloaterPreference(const LLSD& key)
 	mCommitCallbackRegistrar.add("Pref.BlockList",				boost::bind(&LLFloaterPreference::onClickBlockList, this));
 	mCommitCallbackRegistrar.add("Pref.Proxy",					boost::bind(&LLFloaterPreference::onClickProxySettings, this));
 	mCommitCallbackRegistrar.add("Pref.TranslationSettings",	boost::bind(&LLFloaterPreference::onClickTranslationSettings, this));
-	
+	mCommitCallbackRegistrar.add("Pref.PermsDefault",	boost::bind(&LLFloaterPreference::onClickPermsDefault, this));
+
 	sSkin = gSavedSettings.getString("SkinCurrent");
 
 	mCommitCallbackRegistrar.add("Pref.ClickActionChange",				boost::bind(&LLFloaterPreference::onClickActionChange, this));
@@ -1520,6 +1521,11 @@ void LLFloaterPreference::onClickActionChange()
 	mClickActionDirty = true;
 }
 
+void LLFloaterPreference::onClickPermsDefault()
+{
+	LLFloaterReg::showInstance("perms_default");
+}
+
 void LLFloaterPreference::updateClickActionSettings()
 {
 	const int single_clk_action = getChild<LLComboBox>("single_click_action_combo")->getValue().asInteger();
diff --git a/indra/newview/llfloaterpreference.h b/indra/newview/llfloaterpreference.h
index ec5994e917..bc6e74b0c7 100644
--- a/indra/newview/llfloaterpreference.h
+++ b/indra/newview/llfloaterpreference.h
@@ -157,6 +157,7 @@ public:
 	void onClickBlockList();
 	void onClickProxySettings();
 	void onClickTranslationSettings();
+	void onClickPermsDefault();
 	void applyUIColor(LLUICtrl* ctrl, const LLSD& param);
 	void getUIColor(LLUICtrl* ctrl, const LLSD& param);
 	
diff --git a/indra/newview/llfloatersnapshot.cpp b/indra/newview/llfloatersnapshot.cpp
index d8d62e5bbb..1d429c5963 100644
--- a/indra/newview/llfloatersnapshot.cpp
+++ b/indra/newview/llfloatersnapshot.cpp
@@ -980,8 +980,8 @@ void LLSnapshotLivePreview::saveTexture()
 				    LLFolderType::FT_SNAPSHOT_CATEGORY,
 				    LLInventoryType::IT_SNAPSHOT,
 				    PERM_ALL,  // Note: Snapshots to inventory is a special case of content upload
-				    LLFloaterPerms::getGroupPerms(), // that is more permissive than other uploads
-				    LLFloaterPerms::getEveryonePerms(),
+				    LLFloaterPerms::getGroupPerms("Uploads"), // that is more permissive than other uploads
+				    LLFloaterPerms::getEveryonePerms("Uploads"),
 				    "Snapshot : " + pos_string,
 				    callback, expected_upload_cost, userdata);
 		gViewerWindow->playSnapshotAnimAndSound();
diff --git a/indra/newview/llinventorymodel.cpp b/indra/newview/llinventorymodel.cpp
index 85ecb133d0..bca2a28dfd 100644
--- a/indra/newview/llinventorymodel.cpp
+++ b/indra/newview/llinventorymodel.cpp
@@ -2778,7 +2778,7 @@ void LLInventoryModel::processBulkUpdateInventory(LLMessageSystem* msg, void**)
 	{
 		LLPointer<LLViewerInventoryItem> titem = new LLViewerInventoryItem;
 		titem->unpackMessage(msg, _PREHASH_ItemData, i);
-		llinfos << "unpaked item '" << titem->getName() << "' in "
+		llinfos << "unpacked item '" << titem->getName() << "' in "
 				<< titem->getParentUUID() << llendl;
 		U32 callback_id;
 		msg->getU32Fast(_PREHASH_ItemData, _PREHASH_CallbackID, callback_id);
diff --git a/indra/newview/llmeshrepository.cpp b/indra/newview/llmeshrepository.cpp
index f461c7e46f..03547f103a 100755
--- a/indra/newview/llmeshrepository.cpp
+++ b/indra/newview/llmeshrepository.cpp
@@ -1369,9 +1369,9 @@ void LLMeshUploadThread::wholeModelToLLSD(LLSD& dest, bool include_textures)
 	result["asset_type"] = "mesh";
 	result["inventory_type"] = "object";
 	result["description"] = "(No Description)";
-	result["next_owner_mask"] = LLSD::Integer(LLFloaterPerms::getNextOwnerPerms());
-	result["group_mask"] = LLSD::Integer(LLFloaterPerms::getGroupPerms());
-	result["everyone_mask"] = LLSD::Integer(LLFloaterPerms::getEveryonePerms());
+	result["next_owner_mask"] = LLSD::Integer(LLFloaterPerms::getNextOwnerPerms("Uploads"));
+	result["group_mask"] = LLSD::Integer(LLFloaterPerms::getGroupPerms("Uploads"));
+	result["everyone_mask"] = LLSD::Integer(LLFloaterPerms::getEveryonePerms("Uploads"));
 
 	res["mesh_list"] = LLSD::emptyArray();
 	res["texture_list"] = LLSD::emptyArray();
diff --git a/indra/newview/llpanelcontents.cpp b/indra/newview/llpanelcontents.cpp
index a64b4ec94d..f180afa037 100644
--- a/indra/newview/llpanelcontents.cpp
+++ b/indra/newview/llpanelcontents.cpp
@@ -59,6 +59,7 @@
 #include "llviewerregion.h"
 #include "llviewerwindow.h"
 #include "llworld.h"
+#include "llfloaterperms.h"
 
 //
 // Imported globals
@@ -156,12 +157,15 @@ void LLPanelContents::onClickNewScript(void *userdata)
 	{
 		LLPermissions perm;
 		perm.init(gAgent.getID(), gAgent.getID(), LLUUID::null, LLUUID::null);
+
+		// Parameters are base, owner, everyone, group, next
 		perm.initMasks(
 			PERM_ALL,
 			PERM_ALL,
 			PERM_NONE,
 			PERM_NONE,
-			PERM_MOVE | PERM_TRANSFER);
+			PERM_ALL);
+//			PERM_MOVE | LLFloaterPerms::getNextOwnerPerms("Scripts"));
 		std::string desc;
 		LLViewerAssetType::generateDescriptionFor(LLAssetType::AT_LSL_TEXT, desc);
 		LLPointer<LLViewerInventoryItem> new_item =
diff --git a/indra/newview/llviewerfloaterreg.cpp b/indra/newview/llviewerfloaterreg.cpp
index 7fdaac68c8..356c79a036 100644
--- a/indra/newview/llviewerfloaterreg.cpp
+++ b/indra/newview/llviewerfloaterreg.cpp
@@ -244,12 +244,12 @@ void LLViewerFloaterReg::registerFloaters()
 	LLFloaterPayUtil::registerFloater();
 
 	LLFloaterReg::add("people", "floater_people.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterSidePanelContainer>);
+	LLFloaterReg::add("perms_default", "floater_perms_default.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterPermsDefault>);
 	LLFloaterReg::add("places", "floater_places.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterSidePanelContainer>);
 	LLFloaterReg::add("preferences", "floater_preferences.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterPreference>);
 	LLFloaterReg::add("prefs_proxy", "floater_preferences_proxy.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterPreferenceProxy>);
 	LLFloaterReg::add("prefs_hardware_settings", "floater_hardware_settings.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterHardwareSettings>);
 	LLFloaterReg::add("prefs_translation", "floater_translation_settings.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterTranslationSettings>);
-	LLFloaterReg::add("perm_prefs", "floater_perm_prefs.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterPerms>);
 	LLFloaterReg::add("picks", "floater_picks.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterSidePanelContainer>);
 	LLFloaterReg::add("pref_joystick", "floater_joystick.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterJoystick>);
 	LLFloaterReg::add("preview_anim", "floater_preview_animation.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLPreviewAnim>, "preview");
diff --git a/indra/newview/llviewerinventory.cpp b/indra/newview/llviewerinventory.cpp
index 45ca23cdfe..0d56233db1 100644
--- a/indra/newview/llviewerinventory.cpp
+++ b/indra/newview/llviewerinventory.cpp
@@ -64,6 +64,7 @@
 #include "llavatarnamecache.h"
 #include "llavataractions.h"
 #include "lllogininstance.h"
+#include "llfloaterperms.h"
 
 ///----------------------------------------------------------------------------
 /// Helper class to store special inventory item names and their localized values.
@@ -1013,6 +1014,24 @@ void ActivateGestureCallback::fire(const LLUUID& inv_item)
 	LLGestureMgr::instance().activateGesture(inv_item);
 }
 
+void CreateScriptCallback::fire(const LLUUID& inv_item)
+{
+	if (inv_item.isNull())
+		return;
+
+	LLViewerInventoryItem* item = gInventory.getItem(inv_item);
+	if (!item) return;
+
+	LLPermissions perm = item->getPermissions();
+	perm.setMaskEveryone(LLFloaterPerms::getEveryonePerms("Scripts"));
+	perm.setMaskGroup(LLFloaterPerms::getGroupPerms("Scripts"));
+
+	item->setPermissions(perm);
+
+    gInventory.updateItem(item);
+    gInventory.notifyObservers();
+}
+
 void CreateGestureCallback::fire(const LLUUID& inv_item)
 {
 	if (inv_item.isNull())
@@ -1022,6 +1041,12 @@ void CreateGestureCallback::fire(const LLUUID& inv_item)
 	
 	LLViewerInventoryItem* item = gInventory.getItem(inv_item);
 	if (!item) return;
+
+	LLPermissions perm = item->getPermissions();
+	perm.setMaskEveryone(LLFloaterPerms::getEveryonePerms("Gestures"));
+	perm.setMaskGroup(LLFloaterPerms::getGroupPerms("Gestures"));
+	item->setPermissions(perm);
+
     gInventory.updateItem(item);
     gInventory.notifyObservers();
 
@@ -1030,6 +1055,23 @@ void CreateGestureCallback::fire(const LLUUID& inv_item)
 	gFloaterView->adjustToFitScreen(preview, FALSE);
 }
 
+void CreateNotecardCallback::fire(const LLUUID& inv_item)
+{
+	if (inv_item.isNull())
+		return;
+	
+	LLViewerInventoryItem* item = gInventory.getItem(inv_item);
+	if (!item) return;
+
+	LLPermissions perm = item->getPermissions();
+	perm.setMaskEveryone(LLFloaterPerms::getEveryonePerms("Notecards"));
+	perm.setMaskGroup(LLFloaterPerms::getGroupPerms("Notecards"));
+	item->setPermissions(perm);
+
+    gInventory.updateItem(item);
+    gInventory.notifyObservers();
+}
+
 void AddFavoriteLandmarkCallback::fire(const LLUUID& inv_item_id)
 {
 	if (mTargetLandmarkId.isNull()) return;
@@ -1285,22 +1327,44 @@ void create_new_item(const std::string& name,
 	LLViewerAssetType::generateDescriptionFor(asset_type, desc);
 	next_owner_perm = (next_owner_perm) ? next_owner_perm : PERM_MOVE | PERM_TRANSFER;
 
-	
-	if (inv_type == LLInventoryType::IT_GESTURE)
-	{
-		LLPointer<LLInventoryCallback> cb = new CreateGestureCallback();
-		create_inventory_item(gAgent.getID(), gAgent.getSessionID(),
-							  parent_id, LLTransactionID::tnull, name, desc, asset_type, inv_type,
-							  NOT_WEARABLE, next_owner_perm, cb);
-	}
-	else
+	LLPointer<LLInventoryCallback> cb = NULL;
+
+	switch (inv_type)
 	{
-		LLPointer<LLInventoryCallback> cb = NULL;
-		create_inventory_item(gAgent.getID(), gAgent.getSessionID(),
-							  parent_id, LLTransactionID::tnull, name, desc, asset_type, inv_type,
-							  NOT_WEARABLE, next_owner_perm, cb);
-	}
 	
+		case LLInventoryType::IT_LSL:
+		{
+			cb = new CreateScriptCallback();
+			next_owner_perm = LLFloaterPerms::getNextOwnerPerms("Scripts");
+			break;
+		}
+
+		case LLInventoryType::IT_GESTURE:
+		{
+			cb = new CreateGestureCallback();
+			next_owner_perm = LLFloaterPerms::getNextOwnerPerms("Gestures");
+			break;
+		}
+
+		case LLInventoryType::IT_NOTECARD:
+		{
+			cb = new CreateNotecardCallback();
+			next_owner_perm = LLFloaterPerms::getNextOwnerPerms("Notecards");
+			break;
+		}
+	}
+
+	create_inventory_item(gAgent.getID(),
+						  gAgent.getSessionID(),
+						  parent_id,
+						  LLTransactionID::tnull,
+						  name,
+						  desc,
+						  asset_type,
+						  inv_type,
+						  NOT_WEARABLE,
+						  next_owner_perm,
+						  cb);
 }	
 
 const std::string NEW_LSL_NAME = "New Script"; // *TODO:Translate? (probably not)
@@ -1341,7 +1405,7 @@ void menu_create_inventory_item(LLFolderView* root, LLFolderBridge *bridge, cons
 					  parent_id,
 					  LLAssetType::AT_LSL_TEXT,
 					  LLInventoryType::IT_LSL,
-					  PERM_MOVE | PERM_TRANSFER);
+					  PERM_MOVE | PERM_TRANSFER); // overridden in create_new_item
 	}
 	else if ("notecard" == type_name)
 	{
@@ -1350,7 +1414,7 @@ void menu_create_inventory_item(LLFolderView* root, LLFolderBridge *bridge, cons
 					  parent_id,
 					  LLAssetType::AT_NOTECARD,
 					  LLInventoryType::IT_NOTECARD,
-					  PERM_ALL);
+					  PERM_ALL); // overridden in create_new_item
 	}
 	else if ("gesture" == type_name)
 	{
@@ -1359,7 +1423,7 @@ void menu_create_inventory_item(LLFolderView* root, LLFolderBridge *bridge, cons
 					  parent_id,
 					  LLAssetType::AT_GESTURE,
 					  LLInventoryType::IT_GESTURE,
-					  PERM_ALL);
+					  PERM_ALL); // overridden in create_new_item
 	}
 	else
 	{
diff --git a/indra/newview/llviewerinventory.h b/indra/newview/llviewerinventory.h
index 7822ef4da6..a88a5d31be 100644
--- a/indra/newview/llviewerinventory.h
+++ b/indra/newview/llviewerinventory.h
@@ -279,12 +279,24 @@ public:
 	void fire(const LLUUID& inv_item);
 };
 
+class CreateScriptCallback : public LLInventoryCallback
+{
+public:
+	void fire(const LLUUID& inv_item);
+};
+
 class CreateGestureCallback : public LLInventoryCallback
 {
 public:
 	void fire(const LLUUID& inv_item);
 };
 
+class CreateNotecardCallback : public LLInventoryCallback
+{
+public:
+	void fire(const LLUUID& inv_item);
+};
+
 class AddFavoriteLandmarkCallback : public LLInventoryCallback
 {
 public:
diff --git a/indra/newview/llviewermenufile.cpp b/indra/newview/llviewermenufile.cpp
index dc2ea4bd1f..aa0c0008aa 100644
--- a/indra/newview/llviewermenufile.cpp
+++ b/indra/newview/llviewermenufile.cpp
@@ -441,9 +441,9 @@ class LLFileUploadBulk : public view_listener_t
 				0,
 				LLFolderType::FT_NONE,
 				LLInventoryType::IT_NONE,
-				LLFloaterPerms::getNextOwnerPerms(),
-				LLFloaterPerms::getGroupPerms(),
-				LLFloaterPerms::getEveryonePerms(),
+				LLFloaterPerms::getNextOwnerPerms("Uploads"),
+				LLFloaterPerms::getGroupPerms("Uploads"),
+				LLFloaterPerms::getEveryonePerms("Uploads"),
 				display_name,
 				callback,
 				expected_upload_cost,
@@ -1004,9 +1004,9 @@ void upload_done_callback(
 			0,
 			LLFolderType::FT_NONE,
 			LLInventoryType::IT_NONE,
-			PERM_NONE,
-			PERM_NONE,
-			PERM_NONE,
+			LLFloaterPerms::getNextOwnerPerms("Uploads"),
+			LLFloaterPerms::getGroupPerms("Uploads"),
+			LLFloaterPerms::getEveryonePerms("Uploads"),
 			display_name,
 			callback,
 			expected_upload_cost, // assuming next in a group of uploads is of roughly the same type, i.e. same upload cost
diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp
index cd300accb7..98856d125f 100644
--- a/indra/newview/llviewerobject.cpp
+++ b/indra/newview/llviewerobject.cpp
@@ -100,6 +100,7 @@
 #include "lltrans.h"
 #include "llsdutil.h"
 #include "llmediaentry.h"
+#include "llfloaterperms.h"
 
 //#define DEBUG_UPDATE_TYPE
 
@@ -2571,8 +2572,15 @@ void LLViewerObject::saveScript(
 	 * interaction with doUpdateInventory() called below.
 	 */
 	lldebugs << "LLViewerObject::saveScript() " << item->getUUID() << " " << item->getAssetUUID() << llendl;
+
+	LLPermissions perm = item->getPermissions();
+	perm.setMaskNext(LLFloaterPerms::getNextOwnerPerms("Scripts"));
+	perm.setMaskEveryone(LLFloaterPerms::getEveryonePerms("Scripts"));
+	perm.setMaskGroup(LLFloaterPerms::getGroupPerms("Scripts"));
+	perm.setMaskNext(PERM_ALL);
+
 	LLPointer<LLViewerInventoryItem> task_item =
-		new LLViewerInventoryItem(item->getUUID(), mID, item->getPermissions(),
+		new LLViewerInventoryItem(item->getUUID(), mID, perm,
 								  item->getAssetUUID(), item->getType(),
 								  item->getInventoryType(),
 								  item->getName(), item->getDescription(),
@@ -2594,6 +2602,8 @@ void LLViewerObject::saveScript(
 	task_item->packMessage(msg);
 	msg->sendReliable(mRegionp->getHost());
 
+	task_item->setPermissions(perm);
+
 	// do the internal logic
 	doUpdateInventory(task_item, TASK_INVENTORY_ITEM_KEY, is_new);
 }
diff --git a/indra/newview/llviewerobjectlist.cpp b/indra/newview/llviewerobjectlist.cpp
index 6912faa9ec..09eec8e5ab 100644
--- a/indra/newview/llviewerobjectlist.cpp
+++ b/indra/newview/llviewerobjectlist.cpp
@@ -74,6 +74,7 @@
 #include "object_flags.h"
 
 #include "llappviewer.h"
+#include "llfloaterperms.h"
 
 extern F32 gMinObjectDistance;
 extern BOOL gAnimateTextures;
@@ -266,6 +267,17 @@ void LLViewerObjectList::processUpdateCore(LLViewerObject* objectp,
 			// llinfos << "DEBUG selecting " << objectp->mID << " " 
 			// << objectp->mLocalID << llendl;
 			LLSelectMgr::getInstance()->selectObjectAndFamily(objectp);
+
+			// This is a bit of a hack.  Because the server ensures one of either COPY or TRANSFER is always be on
+			// to set the bits we want it is first necessary to set them all on and then clear the ones that
+			// are not needed.
+			LLSelectMgr::getInstance()->selectionSetObjectPermissions(PERM_NEXT_OWNER, TRUE, PERM_COPY | PERM_MODIFY | PERM_TRANSFER);
+			LLSelectMgr::getInstance()->selectionSetObjectPermissions(PERM_NEXT_OWNER, FALSE, LLFloaterPerms::getNextOwnerPermsInverted("Objects"));
+
+			LLSelectMgr::getInstance()->selectionSetObjectPermissions(PERM_EVERYONE, TRUE, LLFloaterPerms::getEveryonePerms("Objects"));
+
+			LLSelectMgr::getInstance()->selectionSetObjectPermissions(PERM_GROUP, TRUE, LLFloaterPerms::getGroupPerms("Objects"));
+
 			dialog_refresh_all();
 		}
 
diff --git a/indra/newview/skins/default/xui/en/floater_perms_default.xml b/indra/newview/skins/default/xui/en/floater_perms_default.xml
new file mode 100644
index 0000000000..ac19be8d15
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_perms_default.xml
@@ -0,0 +1,508 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ legacy_header_height="18"
+ height="250"
+ layout="topleft"
+ name="perms default"
+ help_topic="perms_default"
+ save_rect="true"
+ title="DEFAULT CREATION PERMISSIONS"
+ width="700">
+
+  <panel
+   follows="left|top|right|bottom"
+   height="200"
+   label="Default Permissions"
+   layout="topleft"
+   left="10"
+   name="default permissions"
+   top="20"
+   width="690">
+
+     <text
+      type="string"
+      length="1"
+      follows="left|top"
+      height="16"
+      halign="center"
+      layout="topleft"
+      left="120"
+      top="10"
+      width="100">
+         Copy
+      </text>
+
+      <text
+       type="string"
+       length="1"
+       follows="left|top"
+       height="16"
+       halign="center"
+       layout="topleft"
+       left_pad="5"
+       top="10"
+       width="100">
+          Modify
+      </text>
+
+      <text
+       type="string"
+       length="1"
+       follows="left|top"
+       height="16"
+       halign="center"
+       layout="topleft"
+       left_pad="5"
+       top="10"
+       width="100">
+          Transfer
+      </text>
+
+      <text
+       type="string"
+       length="1"
+       follows="left|top"
+       height="32"
+       halign="center"
+       layout="topleft"
+       left_pad="5"
+       top="10"
+       word_wrap="true"
+       width="100">
+          Share with group
+      </text>
+
+      <text
+       type="string"
+       length="1"
+       follows="left|top"
+       height="32"
+       halign="center"
+       layout="topleft"
+       left_pad="5"
+       top="10"
+       word_wrap="true"
+       width="120">
+          Allow anyone to copy
+      </text>
+
+
+      <text
+       type="string"
+       length="1"
+       follows="left|top"
+       height="16"
+       layout="topleft"
+       left="0"
+       top_pad="10"
+       tool_tip="Set default permissions for when Objects are created"
+       width="100">
+          Objects
+      </text>
+      <icon
+       follows="left|top"
+       height="16"
+       image_name="Inv_Object"
+       layout="topleft"
+       left_pad="2"
+       width="18"/>
+
+      <check_box
+       control_name="ObjectsNextOwnerCopy"
+       height="16"
+       layout="topleft"
+       name="objects_c"
+       left_pad="45"
+       top_delta="0"
+       width="100">
+        <check_box.commit_callback
+         function="PermsDefault.Copy"
+         parameter="Objects" />
+      </check_box>
+      <check_box
+       control_name="ObjectsNextOwnerModify"
+       height="16"
+       layout="topleft"
+       name="objects_m"
+       left_pad="0"
+       top_delta="0"
+       width="100" />
+      <check_box
+       enabled_control="ObjectsNextOwnerCopy"
+       control_name="ObjectsNextOwnerTransfer"
+       height="16"
+       layout="topleft"
+       name="Objects_transfer"
+       left_pad="0"
+       top_delta="0"
+       width="100" />
+      <check_box
+       control_name="ObjectsShareWithGroup"
+       height="16"
+       layout="topleft"
+       name="objects_s"
+       left_pad="0"
+       top_delta="0"
+       width="120" />
+      <check_box
+       control_name="ObjectsEveryoneCopy"
+       height="16"
+       layout="topleft"
+       name="objects_a"
+       left_pad="0"
+       top_delta="0"
+       width="100" />
+
+      <text
+       type="string"
+       length="1"
+       follows="left|top"
+       height="16"
+       layout="topleft"
+       left="0"
+       tool_tip="Set default permissions for uploaded items"
+       width="100">
+          Uploads
+      </text>
+      <icon
+       follows="left|top"
+       height="16"
+       image_name="Inv_Texture"
+       layout="topleft"
+       left_pad="2"
+       width="18"/>
+
+      <check_box
+       control_name="UploadsNextOwnerCopy"
+       height="16"
+       layout="topleft"
+       name="uploads_c"
+       left_pad="45"
+       top_delta="0"
+       width="100">
+        <check_box.commit_callback
+         function="PermsDefault.Copy"
+         parameter="Uploads" />
+      </check_box>
+      <check_box
+       control_name="UploadsNextOwnerModify"
+       height="16"
+       layout="topleft"
+       name="uploads_m"
+       left_pad="0"
+       top_delta="0"
+       width="100" />
+      <check_box
+       enabled_control="UploadsNextOwnerCopy"
+       control_name="UploadsNextOwnerTransfer"
+       height="16"
+       layout="topleft"
+       name="Uploads_transfer"
+       left_pad="0"
+       top_delta="0"
+       width="100" />
+      <check_box
+       control_name="UploadsShareWithGroup"
+       height="16"
+       layout="topleft"
+       name="uploads_s"
+       left_pad="0"
+       top_delta="0"
+       width="120" />
+      <check_box
+       control_name="UploadsEveryoneCopy"
+       height="16"
+       layout="topleft"
+       name="uploads_a"
+       left_pad="0"
+       top_delta="0"
+       width="100" />
+
+      <text
+       type="string"
+       length="1"
+       follows="left|top"
+       height="16"
+       layout="topleft"
+       left="0"
+       tool_tip="Set default permissions for when Scripts are created"
+       width="100">
+          Scripts
+      </text>
+      <icon
+       follows="left|top"
+       height="16"
+       image_name="Inv_Script"
+       layout="topleft"
+       left_pad="2"
+       width="18"/>
+
+      <check_box
+       control_name="ScriptsNextOwnerCopy"
+       height="16"
+       layout="topleft"
+       name="scripts_c"
+       left_pad="45"
+       top_delta="0"
+       width="100">
+        <check_box.commit_callback
+         function="PermsDefault.Copy"
+         parameter="Scripts" />
+      </check_box>
+      <check_box
+       control_name="ScriptsNextOwnerModify"
+       height="16"
+       layout="topleft"
+       name="scripts_m"
+       left_pad="0"
+       top_delta="0"
+       width="100" />
+      <check_box
+       enabled_control="ScriptsNextOwnerCopy"
+       control_name="ScriptsNextOwnerTransfer"
+       height="16"
+       layout="topleft"
+       name="Scripts_transfer"
+       left_pad="0"
+       top_delta="0"
+       width="100" />
+      <check_box
+       control_name="ScriptsShareWithGroup"
+       height="16"
+       layout="topleft"
+       name="scripts_s"
+       left_pad="0"
+       top_delta="0"
+       width="120" />
+      <check_box
+       control_name="ScriptsEveryoneCopy"
+       height="16"
+       layout="topleft"
+       name="scripts_a"
+       left_pad="0"
+       top_delta="0"
+       width="100" />
+
+      <text
+       type="string"
+       length="1"
+       follows="left|top"
+       height="16"
+       layout="topleft"
+       left="0"
+       tool_tip="Set default permissions for when Notecards are created"
+       width="100">
+        Notecards
+      </text>
+      <icon
+       follows="left|top"
+       height="16"
+       image_name="Inv_Notecard"
+       layout="topleft"
+       left_pad="2"
+       width="18"/>
+
+      <check_box
+       control_name="NotecardsNextOwnerCopy"
+       height="16"
+       layout="topleft"
+       name="notecards_c"
+       left_pad="45"
+       top_delta="0"
+       width="100">
+        <check_box.commit_callback
+         function="PermsDefault.Copy"
+         parameter="Notecards" />
+      </check_box>
+      <check_box
+       control_name="NotecardsNextOwnerModify"
+       height="16"
+       layout="topleft"
+       name="notecards_m"
+       left_pad="0"
+       top_delta="0"
+       width="100" />
+      <check_box
+       enabled_control="NotecardsNextOwnerCopy"
+       control_name="NotecardsNextOwnerTransfer"
+       height="16"
+       layout="topleft"
+       name="Notecards_transfer"
+       left_pad="0"
+       top_delta="0"
+       width="100" />
+      <check_box
+       control_name="NotecardsShareWithGroup"
+       height="16"
+       layout="topleft"
+       name="notecards_s"
+       left_pad="0"
+       top_delta="0"
+       width="120" />
+      <check_box
+       control_name="NotecardsEveryoneCopy"
+       height="16"
+       layout="topleft"
+       name="notecards_a"
+       left_pad="0"
+       top_delta="0"
+       width="100" />
+
+      <text
+       type="string"
+       length="1"
+       follows="left|top"
+       height="16"
+       layout="topleft"
+       left="0"
+       tool_tip="Set default permissions for when Gestures are created"
+       width="100">
+          Gestures
+      </text>
+      <icon
+       follows="left|top"
+       height="16"
+       image_name="Inv_Gesture"
+       layout="topleft"
+       left_pad="2"
+       width="18"/>
+
+      <check_box
+       control_name="GesturesNextOwnerCopy"
+       height="16"
+       layout="topleft"
+       name="gestures_c"
+       left_pad="45"
+       top_delta="0"
+       width="100">
+        <check_box.commit_callback
+         function="PermsDefault.Copy"
+         parameter="Gestures" />
+      </check_box>
+      <check_box
+       control_name="GesturesNextOwnerModify"
+       height="16"
+       layout="topleft"
+       name="gestures_m"
+       left_pad="0"
+       top_delta="0"
+       width="100" />
+      <check_box
+       enabled_control="GesturesNextOwnerCopy"
+       control_name="GesturesNextOwnerTransfer"
+       height="16"
+       layout="topleft"
+       name="Gestures_transfer"
+       left_pad="0"
+       top_delta="0"
+       width="100" />
+      <check_box
+       control_name="GesturesShareWithGroup"
+       height="16"
+       layout="topleft"
+       name="gestures_s"
+       left_pad="0"
+       top_delta="0"
+       width="120" />
+      <check_box
+       control_name="GesturesEveryoneCopy"
+       height="16"
+       layout="topleft"
+       name="gestures_a"
+       left_pad="0"
+       top_delta="0"
+       width="100" />
+
+
+      <text
+       type="string"
+       length="1"
+       follows="left|top"
+       height="16"
+       layout="topleft"
+       left="0"
+       tool_tip="Set default permissions for when Clothing or Body Parts are created"
+       width="100">
+          Wearables
+      </text>
+      <icon
+       follows="left|top"
+       height="16"
+       image_name="Inv_BodyShape"
+       layout="topleft"
+       left_pad="2"
+       width="18"/>
+
+      <check_box
+       control_name="WearablesNextOwnerCopy"
+       height="16"
+       layout="topleft"
+       name="wearables_c"
+       left_pad="45"
+       top_delta="0"
+       width="100">
+        <check_box.commit_callback
+         function="PermsDefault.Copy"
+         parameter="Wearables" />
+      </check_box>
+      <check_box
+       control_name="WearablesNextOwnerModify"
+       height="16"
+       layout="topleft"
+       name="wearables_m"
+       left_pad="0"
+       top_delta="0"
+       width="100" />
+      <check_box
+       enabled_control="WearablesNextOwnerCopy"
+       control_name="WearablesNextOwnerTransfer"
+       height="16"
+       layout="topleft"
+       name="Wearables_transfer"
+       left_pad="0"
+       top_delta="0"
+       width="100" />
+      <check_box
+       control_name="WearablesShareWithGroup"
+       height="16"
+       layout="topleft"
+       name="wearables_s"
+       left_pad="0"
+       top_delta="0"
+       width="120" />
+      <check_box
+       control_name="WearablesEveryoneCopy"
+       height="16"
+       layout="topleft"
+       name="wearables_a"
+       left_pad="0"
+       top_delta="0"
+       width="100" />
+
+  </panel>
+
+  <button
+   height="20"
+   label="OK"
+   label_selected="OK"
+   layout="topleft"
+   name="ok"
+   left="480"
+   width="100">
+	<button.commit_callback
+	 function="PermsDefault.OK" />
+  </button>
+
+  <button
+   height="20"
+   label="Cancel"
+   label_selected="Cancel"
+   layout="topleft"
+   left_pad="5"
+   name="cancel"
+   top_delta="0"
+   width="100">
+    <button.commit_callback
+     function="PermsDefault.Cancel" />
+  </button>
+</floater>
diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml
index 5ba566b175..c660ef13ae 100644
--- a/indra/newview/skins/default/xui/en/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/en/menu_viewer.xml
@@ -1131,13 +1131,6 @@
                  function="File.UploadBulk"
                  parameter="" />
             </menu_item_call>
-            <menu_item_call
-             label="Set Default Upload Permissions"
-             name="perm prefs">
-                <menu_item_call.on_click
-                 function="Floater.Toggle"
-                 parameter="perm_prefs" />
-            </menu_item_call>
         </menu>
         <menu_item_separator/>
         <menu_item_call
diff --git a/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml
index 2cc9d9c1b0..b6985f911e 100644
--- a/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml
@@ -222,4 +222,15 @@
      name="show_develop_menu_check"
      top_pad="5"
      width="237"/>
+    <button
+     height="20"
+     label="Default Creation Permissions"
+     layout="topleft"
+     name="Default Creation Permissions"
+     left="30"
+     top_pad = "20"
+     width="250">
+	<button.commit_callback
+	 function="Pref.PermsDefault" />
+  </button>
 </panel>
-- 
cgit v1.2.3


From dce0a9be48808d084f3c98615d5747544fe59ad5 Mon Sep 17 00:00:00 2001
From: Jonathan Yap <none@none>
Date: Fri, 8 Jun 2012 17:09:37 -0400
Subject: STORM-68 Add default: to switch statement to fix compiling issue on
 mac/linux

---
 indra/newview/llviewerinventory.cpp | 2 ++
 1 file changed, 2 insertions(+)

(limited to 'indra')

diff --git a/indra/newview/llviewerinventory.cpp b/indra/newview/llviewerinventory.cpp
index 0d56233db1..83a195738a 100644
--- a/indra/newview/llviewerinventory.cpp
+++ b/indra/newview/llviewerinventory.cpp
@@ -1352,6 +1352,8 @@ void create_new_item(const std::string& name,
 			next_owner_perm = LLFloaterPerms::getNextOwnerPerms("Notecards");
 			break;
 		}
+		default:
+			break;
 	}
 
 	create_inventory_item(gAgent.getID(),
-- 
cgit v1.2.3


From d61a5f743c5d3bde0146b036508485bfdc9c3cb5 Mon Sep 17 00:00:00 2001
From: Jonathan Yap <none@none>
Date: Sat, 9 Jun 2012 10:05:54 -0400
Subject: STORM-68 Removed debugging PERM_ALL that was causing upload trouble
 and removed 3 obsolete debug settings

---
 indra/llinventory/llinventory.cpp         |  5 -----
 indra/newview/app_settings/settings.xml   | 33 -------------------------------
 indra/newview/llassetuploadresponders.cpp |  2 +-
 indra/newview/llfloaternamedesc.cpp       |  8 +++++++-
 indra/newview/llfloaterperms.cpp          |  2 ++
 indra/newview/llviewerobject.cpp          |  5 ++---
 6 files changed, 12 insertions(+), 43 deletions(-)

(limited to 'indra')

diff --git a/indra/llinventory/llinventory.cpp b/indra/llinventory/llinventory.cpp
index 4e5a328c54..fbf23bc3f0 100644
--- a/indra/llinventory/llinventory.cpp
+++ b/indra/llinventory/llinventory.cpp
@@ -303,11 +303,6 @@ LLInventoryItem::LLInventoryItem(const LLUUID& uuid,
 	LLStringUtil::replaceNonstandardASCII(mDescription, ' ');
 	LLStringUtil::replaceChar(mDescription, '|', ' ');
 	mPermissions.initMasks(inv_type);
-//	if (LLInventoryType::IT_LSL == inv_type)
-//	{
-//		mPermissions.setMaskNext(permissions.getMaskNextOwner());
-		mPermissions.setMaskNext(PERM_ALL);
-//	}
 }
 
 LLInventoryItem::LLInventoryItem() :
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index b3ed917574..7a3c1df0bc 100644
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -6043,39 +6043,6 @@
       <key>Value</key>
       <integer>130</integer>
     </map>
-    <key>NextOwnerCopy</key>
-    <map>
-      <key>Comment</key>
-      <string>Newly created objects can be copied by next owner</string>
-      <key>Persist</key>
-      <integer>1</integer>
-      <key>Type</key>
-      <string>Boolean</string>
-      <key>Value</key>
-      <integer>0</integer>
-    </map>
-    <key>NextOwnerModify</key>
-    <map>
-      <key>Comment</key>
-      <string>Newly created objects can be modified by next owner</string>
-      <key>Persist</key>
-      <integer>1</integer>
-      <key>Type</key>
-      <string>Boolean</string>
-      <key>Value</key>
-      <integer>0</integer>
-    </map>
-    <key>NextOwnerTransfer</key>
-    <map>
-      <key>Comment</key>
-      <string>Newly created objects can be resold or given away by next owner</string>
-      <key>Persist</key>
-      <integer>1</integer>
-      <key>Type</key>
-      <string>Boolean</string>
-      <key>Value</key>
-      <integer>1</integer>
-    </map>
     <key>NewCacheLocation</key>
     <map>
       <key>Comment</key>
diff --git a/indra/newview/llassetuploadresponders.cpp b/indra/newview/llassetuploadresponders.cpp
index 65bfc990d1..c4a2d8fca5 100644
--- a/indra/newview/llassetuploadresponders.cpp
+++ b/indra/newview/llassetuploadresponders.cpp
@@ -151,7 +151,7 @@ void on_new_single_inventory_upload_complete(
 			LLSaleInfo::DEFAULT,
 			inventory_item_flags,
 			creation_date_now);
-
+llwarns << "DBG -------------" << llendl;
 		gInventory.updateItem(item);
 		gInventory.notifyObservers();
 		success = true;
diff --git a/indra/newview/llfloaternamedesc.cpp b/indra/newview/llfloaternamedesc.cpp
index eefc352287..97671a8614 100644
--- a/indra/newview/llfloaternamedesc.cpp
+++ b/indra/newview/llfloaternamedesc.cpp
@@ -45,6 +45,7 @@
 #include "lluictrlfactory.h"
 #include "llstring.h"
 #include "lleconomy.h"
+#include "llpermissions.h"
 
 // linden includes
 #include "llassetstorage.h"
@@ -167,11 +168,16 @@ void LLFloaterNameDesc::onBtnOK( )
 	S32 expected_upload_cost = LLGlobalEconomy::Singleton::getInstance()->getPriceUpload(); // kinda hack - assumes that unsubclassed LLFloaterNameDesc is only used for uploading chargeable assets, which it is right now (it's only used unsubclassed for the sound upload dialog, and THAT should be a subclass).
 	void *nruserdata = NULL;
 	std::string display_name = LLStringUtil::null;
+		LLPermissions perm;
+		perm.setMaskNext(PERM_COPY);
 	upload_new_resource(mFilenameAndPath, // file
 			    getChild<LLUICtrl>("name_form")->getValue().asString(), 
 			    getChild<LLUICtrl>("description_form")->getValue().asString(), 
 			    0, LLFolderType::FT_NONE, LLInventoryType::IT_NONE,
-			    LLFloaterPerms::getNextOwnerPerms("Uploads"), LLFloaterPerms::getGroupPerms("Uploads"), LLFloaterPerms::getEveryonePerms("Uploads"),
+perm.getMaskNextOwner(),
+//			    LLFloaterPerms::getNextOwnerPerms("Uploads"),
+				LLFloaterPerms::getGroupPerms("Uploads"),
+				LLFloaterPerms::getEveryonePerms("Uploads"),
 			    display_name, callback, expected_upload_cost, nruserdata);
 	closeFloater(false);
 }
diff --git a/indra/newview/llfloaterperms.cpp b/indra/newview/llfloaterperms.cpp
index 3853dd0ef6..ede17d937e 100644
--- a/indra/newview/llfloaterperms.cpp
+++ b/indra/newview/llfloaterperms.cpp
@@ -59,6 +59,8 @@ U32 LLFloaterPerms::getEveryonePerms(std::string prefix)
 //static 
 U32 LLFloaterPerms::getNextOwnerPerms(std::string prefix)
 {
+llwarns << "DBG prefix=" << prefix << llendl;
+
 	U32 flags = PERM_MOVE;
 	if ( gSavedSettings.getBOOL(prefix+"NextOwnerCopy") )
 	{
diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp
index 98856d125f..a494e934b0 100644
--- a/indra/newview/llviewerobject.cpp
+++ b/indra/newview/llviewerobject.cpp
@@ -2577,7 +2577,6 @@ void LLViewerObject::saveScript(
 	perm.setMaskNext(LLFloaterPerms::getNextOwnerPerms("Scripts"));
 	perm.setMaskEveryone(LLFloaterPerms::getEveryonePerms("Scripts"));
 	perm.setMaskGroup(LLFloaterPerms::getGroupPerms("Scripts"));
-	perm.setMaskNext(PERM_ALL);
 
 	LLPointer<LLViewerInventoryItem> task_item =
 		new LLViewerInventoryItem(item->getUUID(), mID, perm,
@@ -2602,10 +2601,10 @@ void LLViewerObject::saveScript(
 	task_item->packMessage(msg);
 	msg->sendReliable(mRegionp->getHost());
 
-	task_item->setPermissions(perm);
-
 	// do the internal logic
 	doUpdateInventory(task_item, TASK_INVENTORY_ITEM_KEY, is_new);
+llwarns << "DBG is_new:" << is_new << llendl;
+	task_item->setPermissions(perm);
 }
 
 void LLViewerObject::moveInventory(const LLUUID& folder_id,
-- 
cgit v1.2.3


From b6df9b6d56108bcf4b3e8dfd875ef76a9b6f448b Mon Sep 17 00:00:00 2001
From: Jonathan Yap <none@none>
Date: Sat, 9 Jun 2012 11:43:39 -0400
Subject: STORM-68 Fiddling with debugging for New Script case

---
 indra/newview/llassetuploadresponders.cpp |  2 +-
 indra/newview/llfloaternamedesc.cpp       |  6 ++----
 indra/newview/llfloaterperms.cpp          |  2 --
 indra/newview/llpanelcontents.cpp         |  4 ++--
 indra/newview/llviewerobject.cpp          | 20 ++++++++++++--------
 5 files changed, 17 insertions(+), 17 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llassetuploadresponders.cpp b/indra/newview/llassetuploadresponders.cpp
index c4a2d8fca5..65bfc990d1 100644
--- a/indra/newview/llassetuploadresponders.cpp
+++ b/indra/newview/llassetuploadresponders.cpp
@@ -151,7 +151,7 @@ void on_new_single_inventory_upload_complete(
 			LLSaleInfo::DEFAULT,
 			inventory_item_flags,
 			creation_date_now);
-llwarns << "DBG -------------" << llendl;
+
 		gInventory.updateItem(item);
 		gInventory.notifyObservers();
 		success = true;
diff --git a/indra/newview/llfloaternamedesc.cpp b/indra/newview/llfloaternamedesc.cpp
index 97671a8614..ee7f413a59 100644
--- a/indra/newview/llfloaternamedesc.cpp
+++ b/indra/newview/llfloaternamedesc.cpp
@@ -168,14 +168,12 @@ void LLFloaterNameDesc::onBtnOK( )
 	S32 expected_upload_cost = LLGlobalEconomy::Singleton::getInstance()->getPriceUpload(); // kinda hack - assumes that unsubclassed LLFloaterNameDesc is only used for uploading chargeable assets, which it is right now (it's only used unsubclassed for the sound upload dialog, and THAT should be a subclass).
 	void *nruserdata = NULL;
 	std::string display_name = LLStringUtil::null;
-		LLPermissions perm;
-		perm.setMaskNext(PERM_COPY);
+
 	upload_new_resource(mFilenameAndPath, // file
 			    getChild<LLUICtrl>("name_form")->getValue().asString(), 
 			    getChild<LLUICtrl>("description_form")->getValue().asString(), 
 			    0, LLFolderType::FT_NONE, LLInventoryType::IT_NONE,
-perm.getMaskNextOwner(),
-//			    LLFloaterPerms::getNextOwnerPerms("Uploads"),
+			    LLFloaterPerms::getNextOwnerPerms("Uploads"),
 				LLFloaterPerms::getGroupPerms("Uploads"),
 				LLFloaterPerms::getEveryonePerms("Uploads"),
 			    display_name, callback, expected_upload_cost, nruserdata);
diff --git a/indra/newview/llfloaterperms.cpp b/indra/newview/llfloaterperms.cpp
index ede17d937e..3853dd0ef6 100644
--- a/indra/newview/llfloaterperms.cpp
+++ b/indra/newview/llfloaterperms.cpp
@@ -59,8 +59,6 @@ U32 LLFloaterPerms::getEveryonePerms(std::string prefix)
 //static 
 U32 LLFloaterPerms::getNextOwnerPerms(std::string prefix)
 {
-llwarns << "DBG prefix=" << prefix << llendl;
-
 	U32 flags = PERM_MOVE;
 	if ( gSavedSettings.getBOOL(prefix+"NextOwnerCopy") )
 	{
diff --git a/indra/newview/llpanelcontents.cpp b/indra/newview/llpanelcontents.cpp
index f180afa037..db4b679c50 100644
--- a/indra/newview/llpanelcontents.cpp
+++ b/indra/newview/llpanelcontents.cpp
@@ -164,8 +164,8 @@ void LLPanelContents::onClickNewScript(void *userdata)
 			PERM_ALL,
 			PERM_NONE,
 			PERM_NONE,
-			PERM_ALL);
-//			PERM_MOVE | LLFloaterPerms::getNextOwnerPerms("Scripts"));
+			// this does not work
+			PERM_MOVE | LLFloaterPerms::getNextOwnerPerms("Scripts"));
 		std::string desc;
 		LLViewerAssetType::generateDescriptionFor(LLAssetType::AT_LSL_TEXT, desc);
 		LLPointer<LLViewerInventoryItem> new_item =
diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp
index a494e934b0..57549e025c 100644
--- a/indra/newview/llviewerobject.cpp
+++ b/indra/newview/llviewerobject.cpp
@@ -2555,6 +2555,17 @@ void LLViewerObject::doUpdateInventory(
 		doInventoryCallback();
 		++mInventorySerialNum;
 	}
+
+	if(is_new && mInventory)
+	{
+		std::string name = item->getName();
+llwarns << "DBG " << name << llendl;
+		LLPermissions perm = item->getPermissions();
+		perm.setMaskNext(LLFloaterPerms::getNextOwnerPerms("Scripts"));
+		perm.setMaskEveryone(LLFloaterPerms::getEveryonePerms("Scripts"));
+		perm.setMaskGroup(LLFloaterPerms::getGroupPerms("Scripts"));
+		item->setPermissions(perm);
+	}
 }
 
 // save a script, which involves removing the old one, and rezzing
@@ -2573,13 +2584,8 @@ void LLViewerObject::saveScript(
 	 */
 	lldebugs << "LLViewerObject::saveScript() " << item->getUUID() << " " << item->getAssetUUID() << llendl;
 
-	LLPermissions perm = item->getPermissions();
-	perm.setMaskNext(LLFloaterPerms::getNextOwnerPerms("Scripts"));
-	perm.setMaskEveryone(LLFloaterPerms::getEveryonePerms("Scripts"));
-	perm.setMaskGroup(LLFloaterPerms::getGroupPerms("Scripts"));
-
 	LLPointer<LLViewerInventoryItem> task_item =
-		new LLViewerInventoryItem(item->getUUID(), mID, perm,
+		new LLViewerInventoryItem(item->getUUID(), mID, item->getPermissions(),
 								  item->getAssetUUID(), item->getType(),
 								  item->getInventoryType(),
 								  item->getName(), item->getDescription(),
@@ -2603,8 +2609,6 @@ void LLViewerObject::saveScript(
 
 	// do the internal logic
 	doUpdateInventory(task_item, TASK_INVENTORY_ITEM_KEY, is_new);
-llwarns << "DBG is_new:" << is_new << llendl;
-	task_item->setPermissions(perm);
 }
 
 void LLViewerObject::moveInventory(const LLUUID& folder_id,
-- 
cgit v1.2.3


From 052dc3982056d822a523394954c277d9eb7c7ab9 Mon Sep 17 00:00:00 2001
From: Jonathan Yap <none@none>
Date: Tue, 12 Jun 2012 14:26:53 -0400
Subject: STORM-68 Fix for group perms not being defined correctly and fix for
 group and everyone perms failing to copy and paste

---
 indra/newview/llagentwearables.cpp                 |   7 +-
 indra/newview/llfloatergesture.cpp                 |   1 +
 indra/newview/llfloaterperms.cpp                   |   2 +-
 indra/newview/llpanelcontents.cpp                  |  10 ++
 indra/newview/llviewerinventory.cpp                |   8 +-
 indra/newview/llviewerobject.cpp                   |  11 ---
 .../skins/default/xui/en/floater_perm_prefs.xml    | 108 ---------------------
 .../skins/default/xui/en/floater_perms_default.xml |  23 -----
 8 files changed, 20 insertions(+), 150 deletions(-)
 delete mode 100644 indra/newview/skins/default/xui/en/floater_perm_prefs.xml

(limited to 'indra')

diff --git a/indra/newview/llagentwearables.cpp b/indra/newview/llagentwearables.cpp
index 7017357346..654a785a1a 100644
--- a/indra/newview/llagentwearables.cpp
+++ b/indra/newview/llagentwearables.cpp
@@ -66,21 +66,18 @@ class LLWearAndEditCallback : public LLInventoryCallback
 {
 	void fire(const LLUUID& inv_item)
 	{
-llwarns << "DBG 1" << llendl;
 		if (inv_item.isNull()) return;
 
-llwarns << "DBG 2" << llendl;
 		LLViewerInventoryItem* item = gInventory.getItem(inv_item);
 		if (!item) return;
 
-llwarns << "DBG 3" << llendl;
 		LLPermissions perm = item->getPermissions();
 		perm.setMaskNext(LLFloaterPerms::getNextOwnerPerms("Wearables"));
 		perm.setMaskEveryone(LLFloaterPerms::getEveryonePerms("Wearables"));
 		perm.setMaskGroup(LLFloaterPerms::getGroupPerms("Wearables"));
 		item->setPermissions(perm);
 
-llwarns << "DBG 4" << llendl;
+		item->updateServer(FALSE);
 		gInventory.updateItem(item);
 		gInventory.notifyObservers();
 
@@ -108,6 +105,7 @@ class LLCreateWearableCallback : public LLInventoryCallback
 		perm.setMaskGroup(LLFloaterPerms::getGroupPerms("Wearables"));
 		item->setPermissions(perm);
 
+		item->updateServer(FALSE);
 		gInventory.updateItem(item);
 		gInventory.notifyObservers();
 	}
@@ -521,6 +519,7 @@ void LLAgentWearables::saveWearableAs(const LLWearableType::EType type,
 	LLWearable* new_wearable = LLWearableList::instance().createCopy(
 		old_wearable,
 		trunc_name);
+
 	LLPointer<LLInventoryCallback> cb =
 		new addWearableToAgentInventoryCallback(
 			LLPointer<LLRefCount>(NULL),
diff --git a/indra/newview/llfloatergesture.cpp b/indra/newview/llfloatergesture.cpp
index dcc245ee20..59f5b2b346 100644
--- a/indra/newview/llfloatergesture.cpp
+++ b/indra/newview/llfloatergesture.cpp
@@ -84,6 +84,7 @@ public:
 			perm.setMaskEveryone(LLFloaterPerms::getEveryonePerms("Gestures"));
 			perm.setMaskGroup(LLFloaterPerms::getGroupPerms("Gestures"));
 			item->setPermissions(perm);
+			item->updateServer(FALSE);
 		}
 	}
 };
diff --git a/indra/newview/llfloaterperms.cpp b/indra/newview/llfloaterperms.cpp
index 3853dd0ef6..4e9acfc780 100644
--- a/indra/newview/llfloaterperms.cpp
+++ b/indra/newview/llfloaterperms.cpp
@@ -47,7 +47,7 @@ BOOL LLFloaterPerms::postBuild()
 //static 
 U32 LLFloaterPerms::getGroupPerms(std::string prefix)
 {	
-	return gSavedSettings.getBOOL(prefix+"ShareWithGroup") ? PERM_COPY : PERM_NONE;
+	return gSavedSettings.getBOOL(prefix+"ShareWithGroup") ? PERM_COPY | PERM_MOVE | PERM_MODIFY : PERM_NONE;
 }
 
 //static 
diff --git a/indra/newview/llpanelcontents.cpp b/indra/newview/llpanelcontents.cpp
index db4b679c50..ac0cf460c0 100644
--- a/indra/newview/llpanelcontents.cpp
+++ b/indra/newview/llpanelcontents.cpp
@@ -183,6 +183,16 @@ void LLPanelContents::onClickNewScript(void *userdata)
 				time_corrected());
 		object->saveScript(new_item, TRUE, true);
 
+		std::string name = new_item->getName();
+llwarns << "DBG " << new_item->getUUID() << llendl;
+
+//	LLPermissions perm = new_item->getPermissions();
+	perm.setMaskNext(LLFloaterPerms::getNextOwnerPerms("Scripts"));
+	perm.setMaskEveryone(LLFloaterPerms::getEveryonePerms("Scripts"));
+	perm.setMaskGroup(LLFloaterPerms::getGroupPerms("Scripts"));
+	new_item->setPermissions(perm);
+
+
 		// *NOTE: In order to resolve SL-22177, we needed to create
 		// the script first, and then you have to click it in
 		// inventory to edit it.
diff --git a/indra/newview/llviewerinventory.cpp b/indra/newview/llviewerinventory.cpp
index 83a195738a..a7ba150294 100644
--- a/indra/newview/llviewerinventory.cpp
+++ b/indra/newview/llviewerinventory.cpp
@@ -1025,9 +1025,9 @@ void CreateScriptCallback::fire(const LLUUID& inv_item)
 	LLPermissions perm = item->getPermissions();
 	perm.setMaskEveryone(LLFloaterPerms::getEveryonePerms("Scripts"));
 	perm.setMaskGroup(LLFloaterPerms::getGroupPerms("Scripts"));
-
 	item->setPermissions(perm);
 
+	item->updateServer(FALSE);
     gInventory.updateItem(item);
     gInventory.notifyObservers();
 }
@@ -1047,8 +1047,9 @@ void CreateGestureCallback::fire(const LLUUID& inv_item)
 	perm.setMaskGroup(LLFloaterPerms::getGroupPerms("Gestures"));
 	item->setPermissions(perm);
 
-    gInventory.updateItem(item);
-    gInventory.notifyObservers();
+	item->updateServer(FALSE);
+	gInventory.updateItem(item);
+	gInventory.notifyObservers();
 
 	LLPreviewGesture* preview = LLPreviewGesture::show(inv_item,  LLUUID::null);
 	// Force to be entirely onscreen.
@@ -1068,6 +1069,7 @@ void CreateNotecardCallback::fire(const LLUUID& inv_item)
 	perm.setMaskGroup(LLFloaterPerms::getGroupPerms("Notecards"));
 	item->setPermissions(perm);
 
+	item->updateServer(FALSE);
     gInventory.updateItem(item);
     gInventory.notifyObservers();
 }
diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp
index 57549e025c..ff714f24b4 100644
--- a/indra/newview/llviewerobject.cpp
+++ b/indra/newview/llviewerobject.cpp
@@ -2555,17 +2555,6 @@ void LLViewerObject::doUpdateInventory(
 		doInventoryCallback();
 		++mInventorySerialNum;
 	}
-
-	if(is_new && mInventory)
-	{
-		std::string name = item->getName();
-llwarns << "DBG " << name << llendl;
-		LLPermissions perm = item->getPermissions();
-		perm.setMaskNext(LLFloaterPerms::getNextOwnerPerms("Scripts"));
-		perm.setMaskEveryone(LLFloaterPerms::getEveryonePerms("Scripts"));
-		perm.setMaskGroup(LLFloaterPerms::getGroupPerms("Scripts"));
-		item->setPermissions(perm);
-	}
 }
 
 // save a script, which involves removing the old one, and rezzing
diff --git a/indra/newview/skins/default/xui/en/floater_perm_prefs.xml b/indra/newview/skins/default/xui/en/floater_perm_prefs.xml
deleted file mode 100644
index ff454e3ebf..0000000000
--- a/indra/newview/skins/default/xui/en/floater_perm_prefs.xml
+++ /dev/null
@@ -1,108 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<floater
- legacy_header_height="18"
- height="180"
- layout="topleft"
- name="perm prefs"
- help_topic="perm_prefs"
- save_rect="true"
- title="DEFAULT UPLOAD PERMISSIONS"
- width="315">
-    <panel
-     follows="left|top|right|bottom"
-     height="120"
-     label="Permissions"
-     layout="topleft"
-     left="10"
-     name="permissions"
-     top="20"
-     width="315">
-        <check_box
-         control_name="ShareWithGroup"
-         height="16"
-         label="Share with group"
-         layout="topleft"
-         left="10"
-         name="share_with_group"
-         top="5"
-         width="150" />
-        <check_box
-         control_name="EveryoneCopy"
-         height="16"
-         label="Allow anyone to copy"
-         layout="topleft"
-         left_delta="0"
-         name="everyone_copy"
-         top_pad="5"
-         width="150" />
-        <text
-         type="string"
-         length="1"
-         follows="left|top"
-         height="10"
-         layout="topleft"
-         left_delta="0"
-         name="NextOwnerLabel"
-         top_pad="5"
-         width="200">
-            Next owner can:
-        </text>
-        <check_box
-         control_name="NextOwnerModify"
-         height="16"
-         label="Modify"
-         layout="topleft"
-         left_delta="0"
-         name="next_owner_modify"
-         top_pad="5"
-         width="150" />
-        <check_box
-         control_name="NextOwnerCopy"
-         height="16"
-         label="Copy"
-         layout="topleft"
-         left_delta="0"
-         name="next_owner_copy"
-         top_pad="5"
-         width="150" >
-		    <check_box.commit_callback
-			function="Perms.Copy" />
-		</check_box>
-        <check_box
-		 enabled_control="NextOwnerCopy"
-         control_name="NextOwnerTransfer"
-         enabled="false"
-         height="16"
-         initial_value="true"
-         label="Resell/Give away"
-         layout="topleft"
-         left_delta="0"
-         name="next_owner_transfer"
-         top_pad="5"
-         width="150" />
-    </panel>
-    <button
-     height="20"
-     label="OK"
-     label_selected="OK"
-     layout="topleft"
-     left="90"
-     name="ok"
-     top="150"
-     width="100">
-		<button.commit_callback
-		function="Perms.OK" />
-	</button>
-    <button
-     height="20"
-     label="Cancel"
-     label_selected="Cancel"
-     layout="topleft"
-     left_pad="5"
-     name="cancel"
-     top_delta="0"
-     width="100">
-		<button.commit_callback
-		function="Perms.Cancel" />
-	</button>
-</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_perms_default.xml b/indra/newview/skins/default/xui/en/floater_perms_default.xml
index ac19be8d15..15077330fd 100644
--- a/indra/newview/skins/default/xui/en/floater_perms_default.xml
+++ b/indra/newview/skins/default/xui/en/floater_perms_default.xml
@@ -8,7 +8,6 @@
  save_rect="true"
  title="DEFAULT CREATION PERMISSIONS"
  width="700">
-
   <panel
    follows="left|top|right|bottom"
    height="200"
@@ -18,7 +17,6 @@
    name="default permissions"
    top="20"
    width="690">
-
      <text
       type="string"
       length="1"
@@ -31,7 +29,6 @@
       width="100">
          Copy
       </text>
-
       <text
        type="string"
        length="1"
@@ -44,7 +41,6 @@
        width="100">
           Modify
       </text>
-
       <text
        type="string"
        length="1"
@@ -57,7 +53,6 @@
        width="100">
           Transfer
       </text>
-
       <text
        type="string"
        length="1"
@@ -71,7 +66,6 @@
        width="100">
           Share with group
       </text>
-
       <text
        type="string"
        length="1"
@@ -85,8 +79,6 @@
        width="120">
           Allow anyone to copy
       </text>
-
-
       <text
        type="string"
        length="1"
@@ -106,7 +98,6 @@
        layout="topleft"
        left_pad="2"
        width="18"/>
-
       <check_box
        control_name="ObjectsNextOwnerCopy"
        height="16"
@@ -152,7 +143,6 @@
        left_pad="0"
        top_delta="0"
        width="100" />
-
       <text
        type="string"
        length="1"
@@ -171,7 +161,6 @@
        layout="topleft"
        left_pad="2"
        width="18"/>
-
       <check_box
        control_name="UploadsNextOwnerCopy"
        height="16"
@@ -217,7 +206,6 @@
        left_pad="0"
        top_delta="0"
        width="100" />
-
       <text
        type="string"
        length="1"
@@ -236,7 +224,6 @@
        layout="topleft"
        left_pad="2"
        width="18"/>
-
       <check_box
        control_name="ScriptsNextOwnerCopy"
        height="16"
@@ -282,7 +269,6 @@
        left_pad="0"
        top_delta="0"
        width="100" />
-
       <text
        type="string"
        length="1"
@@ -301,7 +287,6 @@
        layout="topleft"
        left_pad="2"
        width="18"/>
-
       <check_box
        control_name="NotecardsNextOwnerCopy"
        height="16"
@@ -347,7 +332,6 @@
        left_pad="0"
        top_delta="0"
        width="100" />
-
       <text
        type="string"
        length="1"
@@ -366,7 +350,6 @@
        layout="topleft"
        left_pad="2"
        width="18"/>
-
       <check_box
        control_name="GesturesNextOwnerCopy"
        height="16"
@@ -412,8 +395,6 @@
        left_pad="0"
        top_delta="0"
        width="100" />
-
-
       <text
        type="string"
        length="1"
@@ -432,7 +413,6 @@
        layout="topleft"
        left_pad="2"
        width="18"/>
-
       <check_box
        control_name="WearablesNextOwnerCopy"
        height="16"
@@ -478,9 +458,7 @@
        left_pad="0"
        top_delta="0"
        width="100" />
-
   </panel>
-
   <button
    height="20"
    label="OK"
@@ -492,7 +470,6 @@
 	<button.commit_callback
 	 function="PermsDefault.OK" />
   </button>
-
   <button
    height="20"
    label="Cancel"
-- 
cgit v1.2.3


From 0b669199aa7ce0620608ea424fc366f106756651 Mon Sep 17 00:00:00 2001
From: Jonathan Yap <none@none>
Date: Wed, 20 Jun 2012 10:19:51 -0400
Subject: STORM-68 A little bit of code cleanup

---
 indra/newview/llpanelcontents.cpp | 14 +++-----------
 1 file changed, 3 insertions(+), 11 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llpanelcontents.cpp b/indra/newview/llpanelcontents.cpp
index ac0cf460c0..7ade2c7972 100644
--- a/indra/newview/llpanelcontents.cpp
+++ b/indra/newview/llpanelcontents.cpp
@@ -162,9 +162,9 @@ void LLPanelContents::onClickNewScript(void *userdata)
 		perm.initMasks(
 			PERM_ALL,
 			PERM_ALL,
-			PERM_NONE,
-			PERM_NONE,
-			// this does not work
+			// *NOTE: this does not work, needs server change
+			LLFloaterPerms::getEveryonePerms("Scripts"),
+			LLFloaterPerms::getGroupPerms("Scripts"),
 			PERM_MOVE | LLFloaterPerms::getNextOwnerPerms("Scripts"));
 		std::string desc;
 		LLViewerAssetType::generateDescriptionFor(LLAssetType::AT_LSL_TEXT, desc);
@@ -184,14 +184,6 @@ void LLPanelContents::onClickNewScript(void *userdata)
 		object->saveScript(new_item, TRUE, true);
 
 		std::string name = new_item->getName();
-llwarns << "DBG " << new_item->getUUID() << llendl;
-
-//	LLPermissions perm = new_item->getPermissions();
-	perm.setMaskNext(LLFloaterPerms::getNextOwnerPerms("Scripts"));
-	perm.setMaskEveryone(LLFloaterPerms::getEveryonePerms("Scripts"));
-	perm.setMaskGroup(LLFloaterPerms::getGroupPerms("Scripts"));
-	new_item->setPermissions(perm);
-
 
 		// *NOTE: In order to resolve SL-22177, we needed to create
 		// the script first, and then you have to click it in
-- 
cgit v1.2.3


From 681305e9bf725872af906acb707627b26b3c8e67 Mon Sep 17 00:00:00 2001
From: MartinRJ Fayray <fuerholz@gmx.net>
Date: Thu, 25 Oct 2012 07:36:33 +0200
Subject: BUG-540: Math updates by Moon Metty. Reviewed by Chieron Tenk.

---
 indra/llmath/llmath.h         |   5 +-
 indra/llmath/llquaternion.cpp | 449 +++++++++++++++++++++---------------------
 indra/llmath/llquaternion.h   |  50 ++---
 indra/llmath/v3math.h         |  30 +--
 4 files changed, 264 insertions(+), 270 deletions(-)

(limited to 'indra')

diff --git a/indra/llmath/llmath.h b/indra/llmath/llmath.h
index b93f89d674..95e6f68895 100644
--- a/indra/llmath/llmath.h
+++ b/indra/llmath/llmath.h
@@ -1,4 +1,4 @@
-/** 
+/**
  * @file llmath.h
  * @brief Useful math constants and macros.
  *
@@ -81,6 +81,9 @@ const F32	OO_LN2		= 1.4426950408889634073599246810019f;
 const F32	F_ALMOST_ZERO	= 0.0001f;
 const F32	F_ALMOST_ONE	= 1.0f - F_ALMOST_ZERO;
 
+const F32	GIMBAL_THRESHOLD = 0.000436f; // sets the gimballock threshold 0.025 away from +/-90 degrees
+// formula: GIMBAL_THRESHOLD = sin(DEG_TO_RAD * gimbal_threshold_angle);
+
 // BUG: Eliminate in favor of F_APPROXIMATELY_ZERO above?
 const F32 FP_MAG_THRESHOLD = 0.0000001f;
 
diff --git a/indra/llmath/llquaternion.cpp b/indra/llmath/llquaternion.cpp
index 7381d5eb99..47374c287f 100644
--- a/indra/llmath/llquaternion.cpp
+++ b/indra/llmath/llquaternion.cpp
@@ -1,4 +1,4 @@
-/** 
+/**
  * @file llquaternion.cpp
  * @brief LLQuaternion class implementation.
  *
@@ -58,34 +58,40 @@ LLQuaternion::LLQuaternion(const LLMatrix3 &mat)
 
 LLQuaternion::LLQuaternion(F32 angle, const LLVector4 &vec)
 {
-	LLVector3 v(vec.mV[VX], vec.mV[VY], vec.mV[VZ]);
-	v.normalize();
-
-	F32 c, s;
-	c = cosf(angle*0.5f);
-	s = sinf(angle*0.5f);
-
-	mQ[VX] = v.mV[VX] * s;
-	mQ[VY] = v.mV[VY] * s;
-	mQ[VZ] = v.mV[VZ] * s;
-	mQ[VW] = c;
-	normalize();
+	F32 mag = sqrtf(vec.mV[VX] * vec.mV[VX] + vec.mV[VY] * vec.mV[VY] + vec.mV[VZ] * vec.mV[VZ]);
+	if (mag > FP_MAG_THRESHOLD)
+	{
+		angle *= 0.5;
+		F32 c = cosf(angle);
+		F32 s = sinf(angle) / mag;
+		mQ[VX] = vec.mV[VX] * s;
+		mQ[VY] = vec.mV[VY] * s;
+		mQ[VZ] = vec.mV[VZ] * s;
+		mQ[VW] = c;
+	}
+	else
+	{
+		loadIdentity();
+	}
 }
 
 LLQuaternion::LLQuaternion(F32 angle, const LLVector3 &vec)
 {
-	LLVector3 v(vec);
-	v.normalize();
-
-	F32 c, s;
-	c = cosf(angle*0.5f);
-	s = sinf(angle*0.5f);
-
-	mQ[VX] = v.mV[VX] * s;
-	mQ[VY] = v.mV[VY] * s;
-	mQ[VZ] = v.mV[VZ] * s;
-	mQ[VW] = c;
-	normalize();
+	F32 mag = sqrtf(vec.mV[VX] * vec.mV[VX] + vec.mV[VY] * vec.mV[VY] + vec.mV[VZ] * vec.mV[VZ]);
+	if (mag > FP_MAG_THRESHOLD)
+	{
+		angle *= 0.5;
+		F32 c = cosf(angle);
+		F32 s = sinf(angle) / mag;
+		mQ[VX] = vec.mV[VX] * s;
+		mQ[VY] = vec.mV[VY] * s;
+		mQ[VZ] = vec.mV[VZ] * s;
+		mQ[VW] = c;
+	}
+	else
+	{
+		loadIdentity();
+	}
 }
 
 LLQuaternion::LLQuaternion(const LLVector3 &x_axis,
@@ -136,57 +142,61 @@ void	LLQuaternion::quantize8(F32 lower, F32 upper)
 
 const LLQuaternion&	LLQuaternion::setAngleAxis(F32 angle, F32 x, F32 y, F32 z)
 {
-	LLVector3 vec(x, y, z);
-	vec.normalize();
-
-	angle *= 0.5f;
-	F32 c, s;
-	c = cosf(angle);
-	s = sinf(angle);
-
-	mQ[VX] = vec.mV[VX]*s;
-	mQ[VY] = vec.mV[VY]*s;
-	mQ[VZ] = vec.mV[VZ]*s;
-	mQ[VW] = c;
-
-	normalize();
+	F32 mag = sqrtf(x * x + y * y + z * z);
+	if (mag > FP_MAG_THRESHOLD)
+	{
+		angle *= 0.5;
+		F32 c = cosf(angle);
+		F32 s = sinf(angle) / mag;
+		mQ[VX] = x * s;
+		mQ[VY] = y * s;
+		mQ[VZ] = z * s;
+		mQ[VW] = c;
+	}
+	else
+	{
+		loadIdentity();
+	}
 	return (*this);
 }
 
 const LLQuaternion&	LLQuaternion::setAngleAxis(F32 angle, const LLVector3 &vec)
 {
-	LLVector3 v(vec);
-	v.normalize();
-
-	angle *= 0.5f;
-	F32 c, s;
-	c = cosf(angle);
-	s = sinf(angle);
-
-	mQ[VX] = v.mV[VX]*s;
-	mQ[VY] = v.mV[VY]*s;
-	mQ[VZ] = v.mV[VZ]*s;
-	mQ[VW] = c;
-
-	normalize();
+	F32 mag = sqrtf(vec.mV[VX] * vec.mV[VX] + vec.mV[VY] * vec.mV[VY] + vec.mV[VZ] * vec.mV[VZ]);
+	if (mag > FP_MAG_THRESHOLD)
+	{
+		angle *= 0.5;
+		F32 c = cosf(angle);
+		F32 s = sinf(angle) / mag;
+		mQ[VX] = vec.mV[VX] * s;
+		mQ[VY] = vec.mV[VY] * s;
+		mQ[VZ] = vec.mV[VZ] * s;
+		mQ[VW] = c;
+	}
+	else
+	{
+		loadIdentity();
+	}
 	return (*this);
 }
 
 const LLQuaternion&	LLQuaternion::setAngleAxis(F32 angle, const LLVector4 &vec)
 {
-	LLVector3 v(vec.mV[VX], vec.mV[VY], vec.mV[VZ]);
-	v.normalize();
-
-	F32 c, s;
-	c = cosf(angle*0.5f);
-	s = sinf(angle*0.5f);
-
-	mQ[VX] = v.mV[VX]*s;
-	mQ[VY] = v.mV[VY]*s;
-	mQ[VZ] = v.mV[VZ]*s;
-	mQ[VW] = c;
-
-	normalize();
+	F32 mag = sqrtf(vec.mV[VX] * vec.mV[VX] + vec.mV[VY] * vec.mV[VY] + vec.mV[VZ] * vec.mV[VZ]);
+	if (mag > FP_MAG_THRESHOLD)
+	{
+		angle *= 0.5;
+		F32 c = cosf(angle);
+		F32 s = sinf(angle) / mag;
+		mQ[VX] = vec.mV[VX] * s;
+		mQ[VY] = vec.mV[VY] * s;
+		mQ[VZ] = vec.mV[VZ] * s;
+		mQ[VW] = c;
+	}
+	else
+	{
+		loadIdentity();
+	}
 	return (*this);
 }
 
@@ -219,68 +229,80 @@ const LLQuaternion&	LLQuaternion::set(const LLMatrix4 &mat)
 // deprecated
 const LLQuaternion&	LLQuaternion::setQuat(F32 angle, F32 x, F32 y, F32 z)
 {
-	LLVector3 vec(x, y, z);
-	vec.normalize();
-
-	angle *= 0.5f;
-	F32 c, s;
-	c = cosf(angle);
-	s = sinf(angle);
-
-	mQ[VX] = vec.mV[VX]*s;
-	mQ[VY] = vec.mV[VY]*s;
-	mQ[VZ] = vec.mV[VZ]*s;
-	mQ[VW] = c;
-
-	normalize();
+	F32 mag = sqrtf(x * x + y * y + z * z);
+	if (mag > FP_MAG_THRESHOLD)
+	{
+		angle *= 0.5;
+		F32 c = cosf(angle);
+		F32 s = sinf(angle) / mag;
+		mQ[VX] = x * s;
+		mQ[VY] = y * s;
+		mQ[VZ] = z * s;
+		mQ[VW] = c;
+	}
+	else
+	{
+		loadIdentity();
+	}
 	return (*this);
 }
 
 // deprecated
 const LLQuaternion&	LLQuaternion::setQuat(F32 angle, const LLVector3 &vec)
 {
-	LLVector3 v(vec);
-	v.normalize();
-
-	angle *= 0.5f;
-	F32 c, s;
-	c = cosf(angle);
-	s = sinf(angle);
-
-	mQ[VX] = v.mV[VX]*s;
-	mQ[VY] = v.mV[VY]*s;
-	mQ[VZ] = v.mV[VZ]*s;
-	mQ[VW] = c;
-
-	normalize();
+	F32 mag = sqrtf(vec.mV[VX] * vec.mV[VX] + vec.mV[VY] * vec.mV[VY] + vec.mV[VZ] * vec.mV[VZ]);
+	if (mag > FP_MAG_THRESHOLD)
+	{
+		angle *= 0.5;
+		F32 c = cosf(angle);
+		F32 s = sinf(angle) / mag;
+		mQ[VX] = vec.mV[VX] * s;
+		mQ[VY] = vec.mV[VY] * s;
+		mQ[VZ] = vec.mV[VZ] * s;
+		mQ[VW] = c;
+	}
+	else
+	{
+		loadIdentity();
+	}
 	return (*this);
 }
 
 const LLQuaternion&	LLQuaternion::setQuat(F32 angle, const LLVector4 &vec)
 {
-	LLVector3 v(vec.mV[VX], vec.mV[VY], vec.mV[VZ]);
-	v.normalize();
-
-	F32 c, s;
-	c = cosf(angle*0.5f);
-	s = sinf(angle*0.5f);
-
-	mQ[VX] = v.mV[VX]*s;
-	mQ[VY] = v.mV[VY]*s;
-	mQ[VZ] = v.mV[VZ]*s;
-	mQ[VW] = c;
-
-	normalize();
+	F32 mag = sqrtf(vec.mV[VX] * vec.mV[VX] + vec.mV[VY] * vec.mV[VY] + vec.mV[VZ] * vec.mV[VZ]);
+	if (mag > FP_MAG_THRESHOLD)
+	{
+		angle *= 0.5;
+		F32 c = cosf(angle);
+		F32 s = sinf(angle) / mag;
+		mQ[VX] = vec.mV[VX] * s;
+		mQ[VY] = vec.mV[VY] * s;
+		mQ[VZ] = vec.mV[VZ] * s;
+		mQ[VW] = c;
+	}
+	else
+	{
+		loadIdentity();
+	}
 	return (*this);
 }
 
 const LLQuaternion&	LLQuaternion::setQuat(F32 roll, F32 pitch, F32 yaw)
 {
-	LLMatrix3 rot_mat(roll, pitch, yaw);
-	rot_mat.orthogonalize();
-	*this = rot_mat.quaternion();
-		
-	normalize();
+	roll  *= 0.5f;
+	pitch *= 0.5f;
+	yaw   *= 0.5f;
+	F32 sinX = sinf(roll);
+	F32 cosX = cosf(roll);
+	F32 sinY = sinf(pitch);
+	F32 cosY = cosf(pitch);
+	F32 sinZ = sinf(yaw);
+	F32 cosZ = cosf(yaw);
+	mQ[VW] = cosX * cosY * cosZ - sinX * sinY * sinZ;
+	mQ[VX] = sinX * cosY * cosZ + cosX * sinY * sinZ;
+	mQ[VY] = cosX * sinY * cosZ - sinX * cosY * sinZ;
+	mQ[VZ] = cosX * cosY * sinZ + sinX * sinY * cosZ;
 	return (*this);
 }
 
@@ -425,68 +447,44 @@ LLMatrix4	LLQuaternion::getMatrix4(void) const
 // calculate the shortest rotation from a to b
 void LLQuaternion::shortestArc(const LLVector3 &a, const LLVector3 &b)
 {
-	// Make a local copy of both vectors.
-	LLVector3 vec_a = a;
-	LLVector3 vec_b = b;
-
-	// Make sure neither vector is zero length.  Also normalize
-	// the vectors while we are at it.
-	F32 vec_a_mag = vec_a.normalize();
-	F32 vec_b_mag = vec_b.normalize();
-	if (vec_a_mag < F_APPROXIMATELY_ZERO ||
-		vec_b_mag < F_APPROXIMATELY_ZERO)
-	{
-		// Can't calculate a rotation from this.
-		// Just return ZERO_ROTATION instead.
-		loadIdentity();
-		return;
-	}
-
-	// Create an axis to rotate around, and the cos of the angle to rotate.
-	LLVector3 axis = vec_a % vec_b;
-	F32 cos_theta  = vec_a * vec_b;
-
-	// Check the angle between the vectors to see if they are parallel or anti-parallel.
-	if (cos_theta > 1.0 - F_APPROXIMATELY_ZERO)
-	{
-		// a and b are parallel.  No rotation is necessary.
-		loadIdentity();
-	}
-	else if (cos_theta < -1.0 + F_APPROXIMATELY_ZERO)
+	F32 ab = a * b; // dotproduct
+	LLVector3 c = a % b; // crossproduct
+	F32 cc = c * c; // squared length of the crossproduct
+	if (ab * ab + cc) // test if the arguments have sufficient magnitude
 	{
-		// a and b are anti-parallel.
-		// Rotate 180 degrees around some orthogonal axis.
-		// Find the projection of the x-axis onto a, and try
-		// using the vector between the projection and the x-axis
-		// as the orthogonal axis.
-		LLVector3 proj = vec_a.mV[VX] / (vec_a * vec_a) * vec_a;
-		LLVector3 ortho_axis(1.f, 0.f, 0.f);
-		ortho_axis -= proj;
-		
-		// Turn this into an orthonormal axis.
-		F32 ortho_length = ortho_axis.normalize();
-		// If the axis' length is 0, then our guess at an orthogonal axis
-		// was wrong (a is parallel to the x-axis).
-		if (ortho_length < F_APPROXIMATELY_ZERO)
+		if (cc > 0.0f) // test if the arguments are (anti)parallel
 		{
-			// Use the z-axis instead.
-			ortho_axis.setVec(0.f, 0.f, 1.f);
+			F32 s = sqrtf(ab * ab + cc) + ab; // note: don't try to optimize this line
+			F32 m = 1.0f / sqrtf(cc + s * s); // the inverted magnitude of the quaternion
+			mQ[VX] = c.mV[VX] * m;
+			mQ[VY] = c.mV[VY] * m;
+			mQ[VZ] = c.mV[VZ] * m;
+			mQ[VW] = s * m;
+			return;
+		}
+		if (ab < 0.0f) // test if the angle is bigger than PI/2 (anti parallel)
+		{
+			c = a - b; // the arguments are anti-parallel, we have to choose an axis
+			F32 m = sqrtf(c.mV[VX] * c.mV[VX] +  c.mV[VY] * c.mV[VY]); // the length projected on the XY-plane
+			if (m > FP_MAG_THRESHOLD)
+			{
+				mQ[VX] = -c.mV[VY] / m; // return the quaternion with the axis in the XY-plane
+				mQ[VY] =  c.mV[VX] / m;
+				mQ[VZ] = 0.0f;
+				mQ[VW] = 0.0f;
+				return;
+			}
+			else // the vectors are parallel to the Z-axis
+			{
+				mQ[VX] = 1.0f; // rotate around the X-axis
+				mQ[VY] = 0.0f;
+				mQ[VZ] = 0.0f;
+				mQ[VW] = 0.0f;
+				return;
+			}
 		}
-
-		// Construct a quaternion from this orthonormal axis.
-		mQ[VX] = ortho_axis.mV[VX];
-		mQ[VY] = ortho_axis.mV[VY];
-		mQ[VZ] = ortho_axis.mV[VZ];
-		mQ[VW] = 0.f;
-	}
-	else
-	{
-		// a and b are NOT parallel or anti-parallel.
-		// Return the rotation between these vectors.
-		F32 theta = (F32)acos(cos_theta);
-
-		setAngleAxis(theta, axis);
 	}
+	loadIdentity();
 }
 
 // constrains rotation to a cone angle specified in radians
@@ -838,79 +836,82 @@ LLQuaternion::Order StringToOrder( const char *str )
 
 void LLQuaternion::getAngleAxis(F32* angle, LLVector3 &vec) const
 {
-	F32 cos_a = mQ[VW];
-	if (cos_a > 1.0f) cos_a = 1.0f;
-	if (cos_a < -1.0f) cos_a = -1.0f;
-
-    F32 sin_a = (F32) sqrt( 1.0f - cos_a * cos_a );
-
-    if ( fabs( sin_a ) < 0.0005f )
-		sin_a = 1.0f;
-	else
-		sin_a = 1.f/sin_a;
-
-    F32 temp_angle = 2.0f * (F32) acos( cos_a );
-	if (temp_angle > F_PI)
-	{
-		// The (angle,axis) pair should never have angles outside [PI, -PI]
-		// since we want the _shortest_ (angle,axis) solution.
-		// Since acos is defined for [0, PI], and we multiply by 2.0, we
-		// can push the angle outside the acceptible range.
-		// When this happens we set the angle to the other portion of a 
-		// full 2PI rotation, and negate the axis, which reverses the 
-		// direction of the rotation (by the right-hand rule).
-		*angle = 2.f * F_PI - temp_angle;
-    	vec.mV[VX] = - mQ[VX] * sin_a;
-    	vec.mV[VY] = - mQ[VY] * sin_a;
-    	vec.mV[VZ] = - mQ[VZ] * sin_a;
+	F32 v = sqrtf(mQ[VX] * mQ[VX] + mQ[VY] * mQ[VY] + mQ[VZ] * mQ[VZ]); // length of the vector-component
+	if (v > FP_MAG_THRESHOLD)
+	{
+		F32 oomag = 1.0f / v;
+		F32 w = mQ[VW];
+		if (mQ[VW] < 0.0f)
+		{
+			w = -w; // make VW positive
+			oomag = -oomag; // invert the axis
+		}
+		vec.mV[VX] = mQ[VX] * oomag; // normalize the axis
+		vec.mV[VY] = mQ[VY] * oomag;
+		vec.mV[VZ] = mQ[VZ] * oomag;
+		*angle = 2.0f * atan2f(v, w); // get the angle
 	}
 	else
 	{
-		*angle = temp_angle;
-    	vec.mV[VX] = mQ[VX] * sin_a;
-    	vec.mV[VY] = mQ[VY] * sin_a;
-    	vec.mV[VZ] = mQ[VZ] * sin_a;
+		*angle = 0.0f; // no rotation
+		vec.mV[VX] = 0.0f; // around some dummy axis
+		vec.mV[VY] = 0.0f;
+		vec.mV[VZ] = 1.0f;
 	}
 }
 
-
 // quaternion does not need to be normalized
 void LLQuaternion::getEulerAngles(F32 *roll, F32 *pitch, F32 *yaw) const
 {
-	LLMatrix3 rot_mat(*this);
-	rot_mat.orthogonalize();
-	rot_mat.getEulerAngles(roll, pitch, yaw);
-
-//	// NOTE: LLQuaternion's are actually inverted with respect to
-//	// the matrices, so this code also assumes inverted quaternions
-//	// (-x, -y, -z, w). The result is that roll,pitch,yaw are applied
-//	// in reverse order (yaw,pitch,roll).
-//	F32 x = -mQ[VX], y = -mQ[VY], z = -mQ[VZ], w = mQ[VW];
-//	F64 m20 = 2.0*(x*z-y*w);
-//	if (1.0f - fabsf(m20) < F_APPROXIMATELY_ZERO)
-//	{
-//		*roll = 0.0f;
-//		*pitch = (F32)asin(m20);
-//		*yaw = (F32)atan2(2.0*(x*y-z*w), 1.0 - 2.0*(x*x+z*z));
-//	}
-//	else
-//	{
-//		*roll  = (F32)atan2(-2.0*(y*z+x*w), 1.0-2.0*(x*x+y*y));
-//		*pitch = (F32)asin(m20);
-//		*yaw   = (F32)atan2(-2.0*(x*y+z*w), 1.0-2.0*(y*y+z*z));
-//	}
+	F32 sx = 2 * (mQ[VX] * mQ[VW] - mQ[VY] * mQ[VZ]); // sine of the roll
+	F32 sy = 2 * (mQ[VY] * mQ[VW] + mQ[VX] * mQ[VZ]); // sine of the pitch
+	F32 ys = mQ[VW] * mQ[VW] - mQ[VY] * mQ[VY]; // intermediate cosine 1
+	F32 xz = mQ[VX] * mQ[VX] - mQ[VZ] * mQ[VZ]; // intermediate cosine 2
+	F32 cx = ys - xz; // cosine of the roll
+	F32 cy = sqrtf(sx * sx + cx * cx); // cosine of the pitch
+	if (cy > GIMBAL_THRESHOLD) // no gimbal lock
+	{
+		*roll  = atan2f(sx, cx);
+		*pitch = atan2f(sy, cy);
+		*yaw   = atan2f(2 * (mQ[VZ] * mQ[VW] - mQ[VX] * mQ[VY]), ys + xz);
+	}
+	else // gimbal lock
+	{
+		if (sy > 0)
+		{
+			*pitch = F_PI_BY_TWO;
+			*yaw = 2 * atan2f(mQ[VZ] + mQ[VX], mQ[VW] + mQ[VY]);
+		}
+		else
+		{
+			*pitch = -F_PI_BY_TWO;
+			*yaw = 2 * atan2f(mQ[VZ] - mQ[VX], mQ[VW] - mQ[VY]);
+		}
+		*roll = 0;
+	}
 }
 
 // Saves space by using the fact that our quaternions are normalized
 LLVector3 LLQuaternion::packToVector3() const
 {
+	F32 x = mQ[VX];
+	F32 y = mQ[VY];
+	F32 z = mQ[VZ];
+	F32 w = mQ[VW];
+	F32 mag = sqrtf(x * x + y * y + z * z + w * w);
+	if (mag > FP_MAG_THRESHOLD)
+	{
+		x /= mag;
+		y /= mag;
+		z /= mag; // no need to normalize w, it's not used
+	}
 	if( mQ[VW] >= 0 )
 	{
-		return LLVector3( mQ[VX], mQ[VY], mQ[VZ] );
+		return LLVector3( x, y , z );
 	}
 	else
 	{
-		return LLVector3( -mQ[VX], -mQ[VY], -mQ[VZ] );
+		return LLVector3( -x, -y, -z );
 	}
 }
 
diff --git a/indra/llmath/llquaternion.h b/indra/llmath/llquaternion.h
index ca0dfe206b..e56929ed0f 100644
--- a/indra/llmath/llquaternion.h
+++ b/indra/llmath/llquaternion.h
@@ -1,4 +1,4 @@
-/** 
+/**
  * @file llquaternion.h
  * @brief LLQuaternion class header file.
  *
@@ -304,43 +304,29 @@ inline const LLQuaternion&	LLQuaternion::setQuat(const F32 *q)
 	return (*this);
 }
 
-// There may be a cheaper way that avoids the sqrt.
-// Does sin_a = VX*VX + VY*VY + VZ*VZ?
-// Copied from Matrix and Quaternion FAQ 1.12
 inline void LLQuaternion::getAngleAxis(F32* angle, F32* x, F32* y, F32* z) const
 {
-	F32 cos_a = mQ[VW];
-	if (cos_a > 1.0f) cos_a = 1.0f;
-	if (cos_a < -1.0f) cos_a = -1.0f;
-
-    F32 sin_a = (F32) sqrt( 1.0f - cos_a * cos_a );
-
-    if ( fabs( sin_a ) < 0.0005f )
-		sin_a = 1.0f;
-	else
-		sin_a = 1.f/sin_a;
-
-    F32 temp_angle = 2.0f * (F32) acos( cos_a );
-	if (temp_angle > F_PI)
+	F32 v = sqrtf(mQ[VX] * mQ[VX] + mQ[VY] * mQ[VY] + mQ[VZ] * mQ[VZ]); // length of the vector-component
+	if (v > FP_MAG_THRESHOLD)
 	{
-		// The (angle,axis) pair should never have angles outside [PI, -PI]
-		// since we want the _shortest_ (angle,axis) solution.
-		// Since acos is defined for [0, PI], and we multiply by 2.0, we
-		// can push the angle outside the acceptible range.
-		// When this happens we set the angle to the other portion of a 
-		// full 2PI rotation, and negate the axis, which reverses the 
-		// direction of the rotation (by the right-hand rule).
-		*angle = 2.f * F_PI - temp_angle;
-    	*x = - mQ[VX] * sin_a;
-    	*y = - mQ[VY] * sin_a;
-    	*z = - mQ[VZ] * sin_a;
+		F32 oomag = 1.0f / v;
+		F32 w = mQ[VW];
+		if (w < 0.0f)
+		{
+			w = -w; // make VW positive
+			oomag = -oomag; // invert the axis
+		}
+		*x = mQ[VX] * oomag; // normalize the axis
+		*y = mQ[VY] * oomag;
+		*z = mQ[VZ] * oomag;
+		*angle = 2.0f * atan2f(v, w); // get the angle
 	}
 	else
 	{
-		*angle = temp_angle;
-    	*x = mQ[VX] * sin_a;
-    	*y = mQ[VY] * sin_a;
-    	*z = mQ[VZ] * sin_a;
+		*angle = 0.0f; // no rotation
+		*x = 0.0f; // around some dummy axis
+		*y = 0.0f;
+		*z = 1.0f;
 	}
 }
 
diff --git a/indra/llmath/v3math.h b/indra/llmath/v3math.h
index 0432aeba4c..a269ed1b79 100644
--- a/indra/llmath/v3math.h
+++ b/indra/llmath/v3math.h
@@ -1,4 +1,4 @@
-/** 
+/**
  * @file v3math.h
  * @brief LLVector3 class header file.
  *
@@ -490,9 +490,15 @@ inline F32	dist_vec_squared2D(const LLVector3 &a, const LLVector3 &b)
 
 inline LLVector3 projected_vec(const LLVector3 &a, const LLVector3 &b)
 {
-	LLVector3 project_axis = b;
-	project_axis.normalize();
-	return project_axis * (a * project_axis);
+	F32 bb = b * b;
+	if (bb > FP_MAG_THRESHOLD * FP_MAG_THRESHOLD)
+	{
+		return ((a * b) / bb) * b;
+	}
+	else
+	{
+		return b.zero;
+	}
 }
 
 inline LLVector3 parallel_component(const LLVector3 &a, const LLVector3 &b)
@@ -556,15 +562,13 @@ inline void update_min_max(LLVector3& min, LLVector3& max, const F32* pos)
 
 inline F32 angle_between(const LLVector3& a, const LLVector3& b)
 {
-	LLVector3 an = a;
-	LLVector3 bn = b;
-	an.normalize();
-	bn.normalize();
-	F32 cosine = an * bn;
-	F32 angle = (cosine >= 1.0f) ? 0.0f :
-				(cosine <= -1.0f) ? F_PI :
-				(F32)acos(cosine);
-	return angle;
+	F32 ab = a * b; // dotproduct
+	if (ab == -0.0f)
+	{
+		ab = 0.0f; // get rid of negative zero
+	}
+	LLVector3 c = a % b; // crossproduct
+	return atan2f(sqrtf(c * c), ab); // return the angle
 }
 
 inline BOOL are_parallel(const LLVector3 &a, const LLVector3 &b, F32 epsilon)
-- 
cgit v1.2.3


From 359083fb4b5816943b17fcde63e477a78a957c93 Mon Sep 17 00:00:00 2001
From: Tank_Master <none@none>
Date: Thu, 6 Dec 2012 18:46:30 -0800
Subject: Update windows installer to use newer OS detection code, and warn if
 the service pack is not up to date.  Now, also block if trying to install on
 XP SP1 or lower.  Also added missing SSE2 strings in several languages.

---
 .../installers/windows/installer_template.nsi      | 157 +++++----------------
 indra/newview/installers/windows/lang_da.nsi       | Bin 7108 -> 8026 bytes
 indra/newview/installers/windows/lang_de.nsi       | Bin 8260 -> 9346 bytes
 indra/newview/installers/windows/lang_en-us.nsi    | Bin 7542 -> 8120 bytes
 indra/newview/installers/windows/lang_es.nsi       | Bin 7846 -> 8764 bytes
 indra/newview/installers/windows/lang_fr.nsi       | Bin 8114 -> 9052 bytes
 indra/newview/installers/windows/lang_it.nsi       | Bin 7438 -> 8372 bytes
 indra/newview/installers/windows/lang_ja.nsi       | Bin 6302 -> 7288 bytes
 indra/newview/installers/windows/lang_pl.nsi       | Bin 7450 -> 8426 bytes
 indra/newview/installers/windows/lang_pt-br.nsi    | Bin 7832 -> 8788 bytes
 indra/newview/installers/windows/lang_ru.nsi       | Bin 7598 -> 8144 bytes
 indra/newview/installers/windows/lang_tr.nsi       | Bin 7722 -> 8266 bytes
 indra/newview/installers/windows/lang_zh.nsi       | Bin 5824 -> 6798 bytes
 13 files changed, 38 insertions(+), 119 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/installers/windows/installer_template.nsi b/indra/newview/installers/windows/installer_template.nsi
index 8a6114f0d5..4815c1a538 100644
--- a/indra/newview/installers/windows/installer_template.nsi
+++ b/indra/newview/installers/windows/installer_template.nsi
@@ -125,11 +125,13 @@ Var DO_UNINSTALL_V2     ; If non-null, path to a previous Viewer 2 installation
 !include "FileFunc.nsh"     ; For GetParameters, GetOptions
 !insertmacro GetParameters
 !insertmacro GetOptions
+!include WinVer.nsh			; for OS and SP detection
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;; After install completes, launch app
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 Function .onInstSuccess
+Call CheckWindowsServPack				; Warn if not on the latest SP before asking to launch.
     Push $R0	# Option value, unused
 
     StrCmp $SKIP_DIALOGS "true" label_launch 
@@ -161,26 +163,38 @@ Function dirPre
 FunctionEnd    
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-; Make sure we're not on Windows 98 / ME
+; Make sure we are not on a verion of windows older than XP SP2
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 Function CheckWindowsVersion
-	DetailPrint "Checking Windows version..."
-	Call GetWindowsVersion
-	Pop $R0
-	; Just get first two characters, ignore 4.0 part of "NT 4.0"
-	StrCpy $R0 $R0 2
-	; Blacklist certain OS versions
-	StrCmp $R0 "95" win_ver_bad
-	StrCmp $R0 "98" win_ver_bad
-	StrCmp $R0 "ME" win_ver_bad
-	StrCmp $R0 "NT" win_ver_bad
-	Return
-win_ver_bad:
-	StrCmp $SKIP_DIALOGS "true" +2 ; If skip_dialogs is set just install
-            MessageBox MB_YESNO $(CheckWindowsVersionMB) IDNO win_ver_abort
-	Return
-win_ver_abort:
-	Quit
+  ${IfNot} ${AtLeastWin2000}
+  ${OrIf} ${IsWinXP}
+  ${AndIfNot} ${AtLeastServicePack} 1
+  ${OrIf} ${IsWin2003}
+  ${AndIfNot} ${AtLeastServicePack} 1
+    MessageBox MB_OK $(CheckWindowsVersionMB)
+    Quit
+  ${EndIf}
+FunctionEnd
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;Recommend Upgrading Service Pack
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+Function CheckWindowsServPack
+  ${If} ${IsWinXP}
+  ${AndIfNot} ${IsServicePack} 3
+  ${OrIf} ${IsWin2003}
+  ${AndIfNot} ${IsServicePack} 2
+  ${OrIf} ${IsWinVista}
+  ${AndIfNot} ${IsServicePack} 2
+  ${OrIf} ${IsWin2008}
+  ${AndIfNot} ${IsServicePack} 2
+  ${OrIf} ${IsWin7}
+  ${AndIfNot} ${IsServicePack} 1
+  ${OrIf} ${IsWin2008R2}
+  ${AndIfNot} ${IsServicePack} 1
+    MessageBox MB_OK $(CheckWindowsServPackMB)
+    DetailPrint $(UseLatestServPackDP)
+  ${EndIf}
 FunctionEnd
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -231,17 +245,13 @@ FunctionEnd
 ; Checks for CPU valid (must have SSE2 support)
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 Function CheckCPUFlags
-    Call GetWindowsVersion
-    Pop $R0
-    StrCmp $R0 "2000" OK_SSE  ; sse check not available on win2k.
-
     Push $1
     System::Call 'kernel32::IsProcessorFeaturePresent(i) i(10) .r1'
-    IntCmp $1 1 OK_SSE
-    MessageBox MB_OKCANCEL $(MissingSSE2) /SD IDOK IDOK OK_SSE
+    IntCmp $1 1 OK_SSE2
+    MessageBox MB_OKCANCEL $(MissingSSE2) /SD IDOK IDOK OK_SSE2
     Quit
 
-  OK_SSE:
+  OK_SSE2:
     Pop $1
     Return
 FunctionEnd
@@ -758,103 +768,13 @@ Call un.ProgramFiles
 
 SectionEnd 				; end of uninstall section
 
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-; (From the NSIS documentation, JC)
-; GetWindowsVersion
-;
-; Based on Yazno's function, http://yazno.tripod.com/powerpimpit/
-; Updated by Joost Verburg
-;
-; Returns on top of stack
-;
-; Windows Version (95, 98, ME, NT x.x, 2000, XP, 2003)
-; or
-; '' (Unknown Windows Version)
-;
-; Usage:
-;   Call GetWindowsVersion
-;   Pop $R0
-;   ; at this point $R0 is "NT 4.0" or whatnot
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-Function GetWindowsVersion
- 
-   Push $R0
-   Push $R1
- 
-   ReadRegStr $R0 HKLM \
-   "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
-
-   IfErrors 0 lbl_winnt
-   
-   ; we are not NT
-   ReadRegStr $R0 HKLM \
-   "SOFTWARE\Microsoft\Windows\CurrentVersion" VersionNumber
- 
-   StrCpy $R1 $R0 1
-   StrCmp $R1 '4' 0 lbl_error
- 
-   StrCpy $R1 $R0 3
- 
-   StrCmp $R1 '4.0' lbl_win32_95
-   StrCmp $R1 '4.9' lbl_win32_ME lbl_win32_98
- 
-   lbl_win32_95:
-     StrCpy $R0 '95'
-   Goto lbl_done
- 
-   lbl_win32_98:
-     StrCpy $R0 '98'
-   Goto lbl_done
- 
-   lbl_win32_ME:
-     StrCpy $R0 'ME'
-   Goto lbl_done
- 
-   lbl_winnt:
- 
-   StrCpy $R1 $R0 1
- 
-   StrCmp $R1 '3' lbl_winnt_x
-   StrCmp $R1 '4' lbl_winnt_x
- 
-   StrCpy $R1 $R0 3
- 
-   StrCmp $R1 '5.0' lbl_winnt_2000
-   StrCmp $R1 '5.1' lbl_winnt_XP
-   StrCmp $R1 '5.2' lbl_winnt_2003 lbl_error
- 
-   lbl_winnt_x:
-     StrCpy $R0 "NT $R0" 6
-   Goto lbl_done
- 
-   lbl_winnt_2000:
-     Strcpy $R0 '2000'
-   Goto lbl_done
- 
-   lbl_winnt_XP:
-     Strcpy $R0 'XP'
-   Goto lbl_done
- 
-   lbl_winnt_2003:
-     Strcpy $R0 '2003'
-   Goto lbl_done
- 
-   lbl_error:
-     Strcpy $R0 ''
-   lbl_done:
- 
-   Pop $R1
-   Exch $R0
- 
-FunctionEnd
-
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;  Note: to add new languages, add a language file include to the list 
 ;;  at the top of this file, add an entry to the menu and then add an 
 ;;  entry to the language ID selector below
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 Function .onInit
+Call CheckWindowsVersion		; Don't install if on Windows XP SP1 or older (do to XP x64 only having SP2 and no SP3)
     Push $0
     ${GetParameters} $COMMANDLINE              ; get our command line
 
@@ -924,13 +844,12 @@ StrCpy $INSTPROG "${INSTNAME}"
 StrCpy $INSTEXE "${INSTEXE}"
 StrCpy $INSTSHORTCUT "${SHORTCUT}"
 
-Call CheckWindowsVersion		; warn if on Windows 98/ME
-Call CheckCPUFlags			; Make sure we have SSE2 support
+Call CheckCPUFlags				; Make sure we have SSE2 support
 Call CheckIfAdministrator		; Make sure the user can install/uninstall
 Call CheckIfAlreadyCurrent		; Make sure that we haven't already installed this version
 Call CloseSecondLife			; Make sure we're not running
 Call CheckNetworkConnection		; ping secondlife.com
-Call CheckWillUninstallV2               ; See if a V2 install exists and will be removed.
+Call CheckWillUninstallV2		; See if a V2 install exists and will be removed.
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 StrCmp $DO_UNINSTALL_V2 "" PRESERVE_DONE
diff --git a/indra/newview/installers/windows/lang_da.nsi b/indra/newview/installers/windows/lang_da.nsi
index 0c832e8ba9..2352649b4b 100644
Binary files a/indra/newview/installers/windows/lang_da.nsi and b/indra/newview/installers/windows/lang_da.nsi differ
diff --git a/indra/newview/installers/windows/lang_de.nsi b/indra/newview/installers/windows/lang_de.nsi
index b717a4d3a5..397262afe1 100644
Binary files a/indra/newview/installers/windows/lang_de.nsi and b/indra/newview/installers/windows/lang_de.nsi differ
diff --git a/indra/newview/installers/windows/lang_en-us.nsi b/indra/newview/installers/windows/lang_en-us.nsi
index da0d7f54d2..df0d55d9e0 100644
Binary files a/indra/newview/installers/windows/lang_en-us.nsi and b/indra/newview/installers/windows/lang_en-us.nsi differ
diff --git a/indra/newview/installers/windows/lang_es.nsi b/indra/newview/installers/windows/lang_es.nsi
index c6a7f38f3f..32967a0dfa 100644
Binary files a/indra/newview/installers/windows/lang_es.nsi and b/indra/newview/installers/windows/lang_es.nsi differ
diff --git a/indra/newview/installers/windows/lang_fr.nsi b/indra/newview/installers/windows/lang_fr.nsi
index 008c240ed7..5b2c3b187c 100644
Binary files a/indra/newview/installers/windows/lang_fr.nsi and b/indra/newview/installers/windows/lang_fr.nsi differ
diff --git a/indra/newview/installers/windows/lang_it.nsi b/indra/newview/installers/windows/lang_it.nsi
index eccd965a92..ce66b61f9f 100644
Binary files a/indra/newview/installers/windows/lang_it.nsi and b/indra/newview/installers/windows/lang_it.nsi differ
diff --git a/indra/newview/installers/windows/lang_ja.nsi b/indra/newview/installers/windows/lang_ja.nsi
index f564291f7d..e68830123a 100644
Binary files a/indra/newview/installers/windows/lang_ja.nsi and b/indra/newview/installers/windows/lang_ja.nsi differ
diff --git a/indra/newview/installers/windows/lang_pl.nsi b/indra/newview/installers/windows/lang_pl.nsi
index 191bae4755..7883819190 100644
Binary files a/indra/newview/installers/windows/lang_pl.nsi and b/indra/newview/installers/windows/lang_pl.nsi differ
diff --git a/indra/newview/installers/windows/lang_pt-br.nsi b/indra/newview/installers/windows/lang_pt-br.nsi
index da56a3c336..eb3fb2386c 100644
Binary files a/indra/newview/installers/windows/lang_pt-br.nsi and b/indra/newview/installers/windows/lang_pt-br.nsi differ
diff --git a/indra/newview/installers/windows/lang_ru.nsi b/indra/newview/installers/windows/lang_ru.nsi
index de7affe08a..3b0042fbf5 100644
Binary files a/indra/newview/installers/windows/lang_ru.nsi and b/indra/newview/installers/windows/lang_ru.nsi differ
diff --git a/indra/newview/installers/windows/lang_tr.nsi b/indra/newview/installers/windows/lang_tr.nsi
index 5e7e3d797b..b9be1eab08 100644
Binary files a/indra/newview/installers/windows/lang_tr.nsi and b/indra/newview/installers/windows/lang_tr.nsi differ
diff --git a/indra/newview/installers/windows/lang_zh.nsi b/indra/newview/installers/windows/lang_zh.nsi
index ecf1185fbb..3c6f6fd289 100644
Binary files a/indra/newview/installers/windows/lang_zh.nsi and b/indra/newview/installers/windows/lang_zh.nsi differ
-- 
cgit v1.2.3


From a0ac409e8a4a822a55e9079b4a6d947af5edf220 Mon Sep 17 00:00:00 2001
From: Tank_Master <none@none>
Date: Sun, 9 Dec 2012 22:12:05 -0800
Subject: fix french install file

---
 indra/newview/installers/windows/lang_fr.nsi | Bin 9052 -> 9030 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/installers/windows/lang_fr.nsi b/indra/newview/installers/windows/lang_fr.nsi
index 5b2c3b187c..7c75e25360 100644
Binary files a/indra/newview/installers/windows/lang_fr.nsi and b/indra/newview/installers/windows/lang_fr.nsi differ
-- 
cgit v1.2.3


From be65c429be67a85d66f9b5db61d70f6268640acc Mon Sep 17 00:00:00 2001
From: Jonathan Yap <none@none>
Date: Sun, 20 Jan 2013 11:45:41 -0500
Subject: STORM-68 Minor UI improvement

---
 .../skins/default/xui/en/floater_perms_default.xml | 30 ++++++++++++++++++----
 1 file changed, 25 insertions(+), 5 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/skins/default/xui/en/floater_perms_default.xml b/indra/newview/skins/default/xui/en/floater_perms_default.xml
index 15077330fd..9c3b92bc83 100644
--- a/indra/newview/skins/default/xui/en/floater_perms_default.xml
+++ b/indra/newview/skins/default/xui/en/floater_perms_default.xml
@@ -17,17 +17,37 @@
    name="default permissions"
    top="20"
    width="690">
+
+      <view_border
+       bevel_style="none"
+       height="18"
+       top="8"
+       left="0"
+       width="430" /> 
+
      <text
       type="string"
       length="1"
       follows="left|top"
       height="16"
-      halign="center"
+      halign="right"
       layout="topleft"
-      left="120"
+      left="0"
       top="10"
-      width="100">
-         Copy
+      width="115">
+         Next owner:
+      </text>
+      <text
+       type="string"
+       length="1"
+       follows="left|top"
+       height="16"
+       halign="center"
+       layout="topleft"
+       left_pad="5"
+       top="10"
+       width="100">
+          Copy
       </text>
       <text
        type="string"
@@ -52,7 +72,7 @@
        top="10"
        width="100">
           Transfer
-      </text>
+      </text>    
       <text
        type="string"
        length="1"
-- 
cgit v1.2.3


From c817166ebe67cefd02f8c9e3bb9195a6a86fa199 Mon Sep 17 00:00:00 2001
From: Jonathan Yap <none@none>
Date: Wed, 23 Jan 2013 14:17:48 -0500
Subject: STORM-68  STORM-68 Remove obsolete menu entry for default uploads.
 Remove two matching entries in settings.xml (the other three were already
 eliminated). Adjust default permissions for new notecards and gestures to
 C/M/T (the current default).

---
 indra/newview/app_settings/settings.xml            | 30 +++-------------------
 .../skins/default/xui/en/menu_inventory_add.xml    |  7 -----
 2 files changed, 4 insertions(+), 33 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index 7a3c1df0bc..203f6800aa 100644
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -3258,17 +3258,6 @@
       <string>String</string>
       <key>Value</key>
       <string>http://events.secondlife.com/viewer/embed/event/</string>
-    </map>
-    <key>EveryoneCopy</key>
-      <map>
-        <key>Comment</key>
-        <string>Everyone can copy the newly created objects</string>
-        <key>Persist</key>
-        <integer>1</integer>
-        <key>Type</key>
-        <string>Boolean</string>
-        <key>Value</key>
-        <integer>0</integer>
     </map>
 	<key>FeatureManagerHTTPTable</key>
       <map>
@@ -9509,17 +9498,6 @@
       <key>Value</key>
       <integer>0</integer>
     </map>
-    <key>ShareWithGroup</key>
-    <map>
-      <key>Comment</key>
-      <string>Newly created objects are shared with the currently active group</string>
-      <key>Persist</key>
-      <integer>1</integer>
-      <key>Type</key>
-      <string>Boolean</string>
-      <key>Value</key>
-      <integer>0</integer>
-    </map>
     <key>ShowAdvancedGraphicsSettings</key>
     <map>
       <key>Comment</key>
@@ -13657,7 +13635,7 @@
       <key>Type</key>
       <string>Boolean</string>
       <key>Value</key>
-      <integer>0</integer>
+      <integer>1</integer>
     </map>
     <key>NotecardsNextOwnerModify</key>
     <map>
@@ -13668,7 +13646,7 @@
       <key>Type</key>
       <string>Boolean</string>
       <key>Value</key>
-      <integer>0</integer>
+      <integer>1</integer>
     </map>
     <key>NotecardsNextOwnerTransfer</key>
     <map>
@@ -13712,7 +13690,7 @@
       <key>Type</key>
       <string>Boolean</string>
       <key>Value</key>
-      <integer>0</integer>
+      <integer>1</integer>
     </map>
     <key>GesturesNextOwnerModify</key>
     <map>
@@ -13723,7 +13701,7 @@
       <key>Type</key>
       <string>Boolean</string>
       <key>Value</key>
-      <integer>0</integer>
+      <integer>1</integer>
     </map>
     <key>GesturesNextOwnerTransfer</key>
     <map>
diff --git a/indra/newview/skins/default/xui/en/menu_inventory_add.xml b/indra/newview/skins/default/xui/en/menu_inventory_add.xml
index e91f5af3d5..8bc4df6c79 100644
--- a/indra/newview/skins/default/xui/en/menu_inventory_add.xml
+++ b/indra/newview/skins/default/xui/en/menu_inventory_add.xml
@@ -63,13 +63,6 @@
                      function="File.UploadBulk"
                      parameter="" />
                 </menu_item_call>
-	            <menu_item_call
-	             label="Set Default Upload Permissions"
-	             name="perm prefs">
-	                <menu_item_call.on_click
-	                 function="Floater.Toggle"
-	                 parameter="perm_prefs" />
-	            </menu_item_call>
             </menu>
 
             <menu_item_call
-- 
cgit v1.2.3


From 7183cecd14fbdc3cd31e1482248fabec7b23b1fb Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Tue, 5 Feb 2013 16:37:37 +0000
Subject: STORM-1831 merging in previous work

---
 indra/llui/llkeywords.cpp                          |   558 +-
 indra/llui/llkeywords.h                            |    81 +-
 indra/llui/lltexteditor.cpp                        |     8 +-
 indra/llui/lltexteditor.h                          |    35 +-
 indra/newview/CMakeLists.txt                       |     7 +-
 indra/newview/app_settings/keywords.ini            |   706 -
 indra/newview/app_settings/keywords_lsl_colors.xml |   176 +
 indra/newview/app_settings/keywords_lsl_tokens.xml | 17542 +++++++++++++++++++
 indra/newview/llpreviewscript.cpp                  |    41 +-
 9 files changed, 18215 insertions(+), 939 deletions(-)
 delete mode 100644 indra/newview/app_settings/keywords.ini
 create mode 100644 indra/newview/app_settings/keywords_lsl_colors.xml
 create mode 100644 indra/newview/app_settings/keywords_lsl_tokens.xml

(limited to 'indra')

diff --git a/indra/llui/llkeywords.cpp b/indra/llui/llkeywords.cpp
index c1cd04186b..2ff0298ba6 100644
--- a/indra/llui/llkeywords.cpp
+++ b/indra/llui/llkeywords.cpp
@@ -1,25 +1,25 @@
-/** 
+/**
  * @file llkeywords.cpp
  * @brief Keyword list for LSL
  *
  * $LicenseInfo:firstyear=2000&license=viewerlgpl$
  * Second Life Viewer Source Code
  * Copyright (C) 2010, Linden Research, Inc.
- * 
+ *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation;
  * version 2.1 of the License only.
- * 
+ *
  * This library is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  * Lesser General Public License for more details.
- * 
+ *
  * You should have received a copy of the GNU Lesser General Public
  * License along with this library; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
+ *
  * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
  * $/LicenseInfo$
  */
@@ -29,12 +29,12 @@
 #include <iostream>
 #include <fstream>
 
+#include "lldir.h"
 #include "llkeywords.h"
+#include "llsdserialize.h"
 #include "lltexteditor.h"
 #include "llstl.h"
-#include <boost/tokenizer.hpp>
 
-const U32 KEYWORD_FILE_CURRENT_VERSION = 2;
 
 inline BOOL LLKeywordToken::isHead(const llwchar* s) const
 {
@@ -53,10 +53,6 @@ inline BOOL LLKeywordToken::isHead(const llwchar* s) const
 	return res;
 }
 
-LLKeywords::LLKeywords() : mLoaded(FALSE)
-{
-}
-
 inline BOOL LLKeywordToken::isTail(const llwchar* s) const
 {
 	BOOL res = TRUE;
@@ -73,6 +69,12 @@ inline BOOL LLKeywordToken::isTail(const llwchar* s) const
 	return res;
 }
 
+LLKeywords::LLKeywords() : mLoaded(FALSE)
+{
+	setFilenameColors( gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS,"keywords_lsl_colors.xml") );
+	setFilenameSyntax( gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS,"keywords_lsl_tokens.xml") );
+}
+
 LLKeywords::~LLKeywords()
 {
 	std::for_each(mWordTokenMap.begin(), mWordTokenMap.end(), DeletePairedPointer());
@@ -80,180 +82,418 @@ LLKeywords::~LLKeywords()
 	std::for_each(mDelimiterTokenList.begin(), mDelimiterTokenList.end(), DeletePointer());
 }
 
-BOOL LLKeywords::loadFromFile( const std::string& filename )
+
+
+void LLKeywords::addColorGroup(const std::string key_in, const LLColor3 color)
 {
-	mLoaded = FALSE;
+	WStringMapIndex key ( utf8str_to_wstring(key_in) );
+	mColorGroupMap[key] = color;
+}
 
-	////////////////////////////////////////////////////////////
-	// File header
+// Add the token as described
+void LLKeywords::addToken(LLKeywordToken::TOKEN_TYPE type,
+						  const std::string& key_in,
+						  const LLColor3& color,
+						  const std::string& tool_tip_in,
+						  const std::string& delimiter_in)
+{
+	std::string tip_text = tool_tip_in;
+	LLStringUtil::replaceString(tip_text, "\\n", "\n" );
+	LLStringUtil::replaceString(tip_text, "\t", " " );
+	if (tip_text =="")
+	{
+		tip_text = "[no info]";
+	}
+	LLWString tool_tip = utf8str_to_wstring(tip_text);
 
-	const S32 BUFFER_SIZE = 1024;
-	char	buffer[BUFFER_SIZE];	/* Flawfinder: ignore */
+	LLWString key = utf8str_to_wstring(key_in);
+	LLWString delimiter = utf8str_to_wstring(delimiter_in);
+	switch(type)
+	{
+	case LLKeywordToken::TT_CONSTANT:
+	case LLKeywordToken::TT_EVENT:
+	case LLKeywordToken::TT_FLOW:
+	case LLKeywordToken::TT_FUNCTION:
+	case LLKeywordToken::TT_LABEL:
+	case LLKeywordToken::TT_SECTION:
+	case LLKeywordToken::TT_TYPE:
+	case LLKeywordToken::TT_WORD:
+		mWordTokenMap[key] = new LLKeywordToken(type, color, key, tool_tip, LLWStringUtil::null);
+		break;
 
-	llifstream file;
-	file.open(filename);	/* Flawfinder: ignore */
-	if( file.fail() )
+	case LLKeywordToken::TT_LINE:
+		mLineTokenList.push_front(new LLKeywordToken(type, color, key, tool_tip, LLWStringUtil::null));
+		break;
+
+	case LLKeywordToken::TT_TWO_SIDED_DELIMITER:
+	case LLKeywordToken::TT_DOUBLE_QUOTATION_MARKS:
+	case LLKeywordToken::TT_ONE_SIDED_DELIMITER:
+		mDelimiterTokenList.push_front(new LLKeywordToken(type, color, key, tool_tip, delimiter));
+		break;
+
+	default:
+		llassert(0);
+	}
+}
+
+std::string LLKeywords::getArguments(LLSD& arguments)
+{
+	std::string args = "";
+	if (arguments.isArray())
 	{
-		llinfos << "LLKeywords::loadFromFile()  Unable to open file: " << filename << llendl;
-		return mLoaded;
+		int count = 0;
+		do
+		{
+			LLSD arg = arguments[count];
+			args += arg.get("type").asString() + " " + arg.get("name").asString();
+			++count;
+			if (arguments.size() - count > 0)
+			{
+				args += ", ";
+			}
+		} while (count < arguments.size());
 	}
+	else
+	{
+		LL_WARNS("Arguments") << "Not an array! Invalid LLSD passed to function.\n" << arguments << LL_ENDL;
+	}
+	return args == "" ? " void " : args;
+}
 
-	// Identifying string
-	file >> buffer;
-	if( strcmp( buffer, "llkeywords" ) )
+std::string LLKeywords::getAttribute(const std::string& key)
+{
+	attribute_iterator_t it = mAttributes.find(key);
+	return (it != mAttributes.end()) ? it->second : "";
+}
+
+LLColor3 LLKeywords::getColorGroup(const std::string key_in)
+{
+	// LLColor3 initialises to Black (0,0,0)
+	LLColor3 Colour;
+	WStringMapIndex key ( utf8str_to_wstring(key_in) );
+	group_color_map_t::iterator it = mColorGroupMap.find(key);
+	if (it == mColorGroupMap.end())
+	{
+		LL_WARNS("Colour lookup") << "'" << key_in << "' not found!" << LL_ENDL;
+	}
+	else
 	{
-		llinfos << filename << " does not appear to be a keyword file" << llendl;
-		return mLoaded;
+		Colour = it->second;
 	}
 
-	// Check file version
-	file >> buffer;
-	U32	version_num;
-	file >> version_num;
-	if( strcmp(buffer, "version") || version_num != (U32)KEYWORD_FILE_CURRENT_VERSION )
+	return Colour;
+}
+
+BOOL LLKeywords::initialise()
+{
+	mReady = false;
+
+	if (! loadIntoLLSD(mFilenameColors, mColors) )
 	{
-		llinfos << filename << " does not appear to be a version " << KEYWORD_FILE_CURRENT_VERSION << " keyword file" << llendl;
-		return mLoaded;
+		LL_ERRS("") << "Failed to load color data, cannot continue!" << LL_ENDL;
+	}
+	else if (! loadIntoLLSD(mFilenameSyntax, mSyntax) )
+	{
+		LL_ERRS("") << "Failed to load syntax data from '" << mFilenameSyntax << "', cannot continue!" << LL_ENDL;
+	}
+	else
+	{
+		mReady = true;
 	}
 
-	// start of line (SOL)
-	std::string SOL_COMMENT("#");
-	std::string SOL_WORD("[word ");
-	std::string SOL_LINE("[line ");
-	std::string SOL_ONE_SIDED_DELIMITER("[one_sided_delimiter ");
-	std::string SOL_TWO_SIDED_DELIMITER("[two_sided_delimiter ");
-	std::string SOL_DOUBLE_QUOTATION_MARKS("[double_quotation_marks ");
+	if (ready())
+	{
+		processColors();
+	}
+	else
+	{
+		LL_ERRS("") << LL_ENDL;
+		LL_ERRS("") << "Failed to load one or both data files, cannot continue!" << LL_ENDL;
+	}
+	return mReady;
+}
 
-	LLColor3 cur_color( 1, 0, 0 );
-	LLKeywordToken::TOKEN_TYPE cur_type = LLKeywordToken::WORD;
+BOOL LLKeywords::loadFromFile()
+{
+	processTokens();
+	return true;
+}
 
-	while (!file.eof())
+/**
+ * @brief	Load xml serialised LLSD
+ * @desc	Opens the specified filespec and attempts to deserialise the
+ *			contained data to the specified LLSD object.
+ * @return	Returns boolean true/false indicating success or failure.
+ */
+BOOL LLKeywords::loadIntoLLSD(const std::string& filename, LLSD& data)
+{
+	mLoaded = false;
+	llifstream file;
+	file.open(filename);
+	if(file.is_open())
 	{
-		buffer[0] = 0;
-		file.getline( buffer, BUFFER_SIZE );
-		std::string line(buffer);
-		if( line.find(SOL_COMMENT) == 0 )
-		{
-			continue;
-		}
-		else if( line.find(SOL_WORD) == 0 )
+		mLoaded = (BOOL)LLSDSerialize::fromXML(data, file);
+		if (!mLoaded)
 		{
-			cur_color = readColor( line.substr(SOL_WORD.size()) );
-			cur_type = LLKeywordToken::WORD;
-			continue;
+			LL_WARNS("") << "Unable to deserialise file: " << filename << LL_ENDL;
 		}
-		else if( line.find(SOL_LINE) == 0 )
+		else
 		{
-			cur_color = readColor( line.substr(SOL_LINE.size()) );
-			cur_type = LLKeywordToken::LINE;
-			continue;
-		}
-		else if( line.find(SOL_TWO_SIDED_DELIMITER) == 0 )
-		{
-			cur_color = readColor( line.substr(SOL_TWO_SIDED_DELIMITER.size()) );
-			cur_type = LLKeywordToken::TWO_SIDED_DELIMITER;
-			continue;
-		}
-		else if( line.find(SOL_DOUBLE_QUOTATION_MARKS) == 0 )
-		{
-			cur_color = readColor( line.substr(SOL_DOUBLE_QUOTATION_MARKS.size()) );
-			cur_type = LLKeywordToken::DOUBLE_QUOTATION_MARKS;
-			continue;
-		}
-		else if( line.find(SOL_ONE_SIDED_DELIMITER) == 0 )	
-		{
-			cur_color = readColor( line.substr(SOL_ONE_SIDED_DELIMITER.size()) );
-			cur_type = LLKeywordToken::ONE_SIDED_DELIMITER;
-			continue;
+			LL_INFOS("") << "Deserialised file: " << filename << LL_ENDL;
 		}
+	}
+	else
+	{
+		LL_WARNS("") << "Unable to open file: " << filename << LL_ENDL;
+	}
+	return mLoaded;
+}
+
+/**
+ * @brief Start processing the colour LLSD from its beginning.
+ *
+ */
+std::string LLKeywords::processColors()
+{
+	return processColors(mColors, "");
+}
 
-		std::string token_buffer( line );
-		LLStringUtil::trim(token_buffer);
-		
-		typedef boost::tokenizer<boost::char_separator<char> > tokenizer;
-		boost::char_separator<char> sep_word("", " \t");
-		tokenizer word_tokens(token_buffer, sep_word);
-		tokenizer::iterator token_word_iter = word_tokens.begin();
+/**
+ * @brief	Recursively process the colour LLSD from an arbitrary level.
+ * @desc	Process the supplied LLSD for colour data. The strPrefix is a string
+ *			of hyphen separated keys from previous levels.
+ */
+std::string LLKeywords::processColors(LLSD &settings, const std::string strPrefix)
+{
+	if (settings.isMap() || (! settings.isMap() && strPrefix != "") )
+	{
+		LLSD llsd_map = settings;
 
-		if( !token_buffer.empty() && token_word_iter != word_tokens.end() )
+		LLSD::map_iterator my_iter = llsd_map.beginMap();
+		for ( ; my_iter != llsd_map.endMap(); ++my_iter)
 		{
-			// first word is the keyword or a left delimiter
-			std::string keyword = (*token_word_iter);
-			LLStringUtil::trim(keyword);
+			std::string strGroup = strPrefix;
+			const LLSD::String& key = my_iter->first;
+			LLSD& value = my_iter->second;
 
-			// second word may be a right delimiter
-			std::string delimiter;
-			if (cur_type == LLKeywordToken::TWO_SIDED_DELIMITER)
+			if (key == "color")
 			{
-				while (delimiter.length() == 0 && ++token_word_iter != word_tokens.end())
+				if (value.isMap() || value.isArray())
+				{
+					addColorGroup(strGroup, readColor(value));
+				}
+				else
 				{
-					delimiter = *token_word_iter;
-					LLStringUtil::trim(delimiter);
+					LL_WARNS("Invalid Color") << "Invalid Color Entry - first: '" << key << "' second: '" << value << "'" << LL_ENDL;
 				}
 			}
-			else if (cur_type == LLKeywordToken::DOUBLE_QUOTATION_MARKS)
+			else if (value.isMap())
+			{
+				strGroup += (strGroup.length() == 0) ? my_iter->first : "-" + my_iter->first;
+				strGroup = processColors(value, strGroup);
+			}
+			else
 			{
-				// Closing delimiter is identical to the opening one.
-				delimiter = keyword;
+				LL_WARNS("Invalid Color") << "Invalid Color Entry - first: '" << key << "' second: '" << value << "'" << LL_ENDL;
 			}
+		}
+	}
+	return strPrefix;
+}
 
-			// following words are tooltip
-			std::string tool_tip;
-			while (++token_word_iter != word_tokens.end())
+void LLKeywords::processTokens()
+{
+	// Add 'standard' stuff: Quotes, Comments, Strings, Labels, etc. before processing the LLSD
+	std::string delimiter;
+	addToken(LLKeywordToken::TT_LINE, "@", getColorGroup("misc-flow-label"), "Label\nTarget for jump statement", delimiter );
+	addToken(LLKeywordToken::TT_ONE_SIDED_DELIMITER, "//", getColorGroup("misc-comments_1_sided"), "Comment\nNon-functional commentary or disabled code", delimiter );
+	addToken(LLKeywordToken::TT_TWO_SIDED_DELIMITER, "/*", getColorGroup("misc-comments_2_sided"), "Comment\nNon-functional commentary or disabled code (multi-line)", "*/" );
+	addToken(LLKeywordToken::TT_DOUBLE_QUOTATION_MARKS, "\"", getColorGroup("misc-double_quotation_marks"), "String literal", "\"" );
+
+	LLSD::map_iterator outerIt = mSyntax.beginMap();
+	for ( ; outerIt != mSyntax.endMap(); ++outerIt)
+	{
+		// TODO Collapse the 'if's into two, those that call 'processTokens' directly and an else if (for 'misc') that doesn't
+		if (outerIt->first == "constants")
+		{
+			if (outerIt->second.isMap())
+			{
+				processTokensGroup(outerIt->second, "constants");
+			}
+			else
+			{
+				LL_ERRS("Tokens-Constants") << "No constants map to process!" << LL_ENDL;
+			}
+		}
+		else if(outerIt->first == "misc")
+		{
+			if (outerIt->second.isMap())
 			{
-				tool_tip += (*token_word_iter);
+				LLSD::map_iterator innerIt = outerIt->second.beginMap();
+				for ( ; innerIt != outerIt->second.endMap(); ++innerIt)
+				{
+					processTokensGroup(innerIt->second, "misc-" + innerIt->first);
+				}
 			}
-			LLStringUtil::trim(tool_tip);
-			
-			if( !tool_tip.empty() )
+			else
 			{
-				// Replace : with \n for multi-line tool tips.
-				LLStringUtil::replaceChar( tool_tip, ':', '\n' );
-				addToken(cur_type, keyword, cur_color, tool_tip, delimiter );
+				LL_ERRS("Tokens-Misc") << "No misc map to process!" << LL_ENDL;
+			}
+		}
+		else if(outerIt->first == "events")
+		{
+			if (outerIt->second.isMap())
+			{
+				processTokensGroup(outerIt->second, "events");
 			}
 			else
 			{
-				addToken(cur_type, keyword, cur_color, LLStringUtil::null, delimiter );
+				LL_ERRS("Tokens-Events") << "No event map to process!" << LL_ENDL;
 			}
 		}
+		else if(outerIt->first == "functions")
+		{
+			if (outerIt->second.isMap())
+			{
+				processTokensGroup(outerIt->second, "functions");
+			}
+			else
+			{
+				LL_ERRS("Tokens-Functions") << "No function map to process!" << LL_ENDL;
+			}
+		}
+		else if(outerIt->first == "types")
+		{
+			if (outerIt->second.isArray())
+			{
+				processTokensGroup(outerIt->second, "types");
+			}
+			else
+			{
+				LL_ERRS("Tokens-Types") << "No types array to process!" << LL_ENDL;
+			}
+		}
+		else
+		{
+			LL_ERRS("Tokens") << "Unknown token group '" << outerIt->first << "'" << LL_ENDL;
+		}
 	}
-
-	file.close();
-
-	mLoaded = TRUE;
-	return mLoaded;
+	LL_INFOS("") << LL_ENDL;
 }
 
-// Add the token as described
-void LLKeywords::addToken(LLKeywordToken::TOKEN_TYPE type,
-						  const std::string& key_in,
-						  const LLColor3& color,
-						  const std::string& tool_tip_in,
-						  const std::string& delimiter_in)
+void LLKeywords::processTokensGroup(LLSD& Tokens, const std::string Group)
 {
-	LLWString key = utf8str_to_wstring(key_in);
-	LLWString tool_tip = utf8str_to_wstring(tool_tip_in);
-	LLWString delimiter = utf8str_to_wstring(delimiter_in);
-	switch(type)
+	LLColor3 Color = getColorGroup(Group);
+	LL_INFOS("Tokens") << "Group: '" << Group << "', using colour: '" << Color << "'" << LL_ENDL;
+
+	LLKeywordToken::TOKEN_TYPE token_type = LLKeywordToken::TT_UNKNOWN;
+	// If a new token type is added here, it must also be added to the 'addToken' method
+	if (Group == "constants")
 	{
-	case LLKeywordToken::WORD:
-		mWordTokenMap[key] = new LLKeywordToken(type, color, key, tool_tip, LLWStringUtil::null);
-		break;
+		token_type = LLKeywordToken::TT_CONSTANT;
+	}
+	else if (Group == "events")
+	{
+		token_type = LLKeywordToken::TT_EVENT;
+	}
+	else if (Group == "misc-flow-control")
+	{
+		token_type = LLKeywordToken::TT_FLOW;
+	}
+	else if (Group == "functions")
+	{
+		token_type = LLKeywordToken::TT_FUNCTION;
+	}
+	else if (Group == "misc-flow-label")
+	{
+		token_type = LLKeywordToken::TT_LABEL;
+	}
+	else if (Group == "misc-sections")
+	{
+		token_type = LLKeywordToken::TT_SECTION;
+	}
+	else if (Group == "types")
+	{
+		token_type = LLKeywordToken::TT_TYPE;
+	}
 
-	case LLKeywordToken::LINE:
-		mLineTokenList.push_front(new LLKeywordToken(type, color, key, tool_tip, LLWStringUtil::null));
-		break;
+	if (Tokens.isMap())		// constants, events, functions, and misc
+	{
+		LLSD::map_iterator outerIt = Tokens.beginMap();
+		for ( ; outerIt != Tokens.endMap(); ++outerIt)
+		{
+			if (outerIt->second.isMap())
+			{
+				mAttributes.clear();
+				LLSD arguments = LLSD ();
+				LLSD::map_iterator innerIt = outerIt->second.beginMap();
+				for ( ; innerIt != outerIt->second.endMap(); ++innerIt)
+				{
+					if (innerIt->first != "arguments")
+					{
+						mAttributes[innerIt->first] = innerIt->second.asString();
+					}
+					else if (innerIt->second.isArray())
+					{
+						arguments = innerIt->second;
+					}
+				}
 
-	case LLKeywordToken::TWO_SIDED_DELIMITER:
-	case LLKeywordToken::DOUBLE_QUOTATION_MARKS:
-	case LLKeywordToken::ONE_SIDED_DELIMITER:
-		mDelimiterTokenList.push_front(new LLKeywordToken(type, color, key, tool_tip, delimiter));
-		break;
+				std::string tooltip = "";
+				if (token_type == LLKeywordToken::TT_CONSTANT)
+				{
+					Color = getColorGroup(Group + "-" + getAttribute("type"));
+					tooltip = "Type: " + getAttribute("type") + ", Value: " + getAttribute("value");
+				}
+				else if (token_type == LLKeywordToken::TT_EVENT)
+				{
+					tooltip = outerIt->first + "(" + getArguments(arguments) + ")";
+				}
+				else if (token_type == LLKeywordToken::TT_FLOW)
+				{
+					tooltip = "flow baby";
+				}
+				else if (token_type == LLKeywordToken::TT_FUNCTION)
+				{
+					tooltip = getAttribute("return") + " " + outerIt->first + "(" + getArguments(arguments) + ");";
+					tooltip += "\nEnergy: ";
+					tooltip += getAttribute("energy") == "" ? "0.0" : getAttribute("energy");
+					if (getAttribute("sleep") != "")
+					{
+						tooltip += ", Sleep: " + getAttribute("sleep");
+					}
+				}
+				else if (token_type == LLKeywordToken::TT_SECTION)
+				{
+					tooltip = "section";
+				}
 
-	default:
-		llassert(0);
+				if (getAttribute("summry") != "")
+				{
+					tooltip += "\n" + getAttribute("summary");
+				}
+				else if (getAttribute("description") != "")
+				{
+					tooltip += "\n" + getAttribute("description");
+				}
+
+				addToken(token_type, outerIt->first, Color, tooltip);
+			}
+		}
+	}
+	else if (Tokens.isArray())	// types
+	{
+		for (int count = 0; count < Tokens.size(); ++count)
+		{
+			addToken(token_type, Tokens[count], Color, "");
+		}
+	}
+	else
+	{
+		LL_INFOS("Tokens") << "Invalid map/array passed: '" << Tokens << "'" << LL_ENDL;
 	}
 }
+
 LLKeywords::WStringMapIndex::WStringMapIndex(const WStringMapIndex& other)
 {
 	if(other.mOwner)
@@ -298,13 +538,13 @@ bool LLKeywords::WStringMapIndex::operator<(const LLKeywords::WStringMapIndex &o
 {
 	// NOTE: Since this is only used to organize a std::map, it doesn't matter if it uses correct collate order or not.
 	// The comparison only needs to strictly order all possible strings, and be stable.
-	
+
 	bool result = false;
 	const llwchar* self_iter = mData;
 	const llwchar* self_end = mData + mLength;
 	const llwchar* other_iter = other.mData;
 	const llwchar* other_end = other.mData + other.mLength;
-	
+
 	while(true)
 	{
 		if(other_iter >= other_end)
@@ -319,7 +559,7 @@ bool LLKeywords::WStringMapIndex::operator<(const LLKeywords::WStringMapIndex &o
 		{
 			// self is shorter than other.
 			result = true;
-			break; 
+			break;
 		}
 		else if(*self_iter != *other_iter)
 		{
@@ -331,7 +571,7 @@ bool LLKeywords::WStringMapIndex::operator<(const LLKeywords::WStringMapIndex &o
 		self_iter++;
 		other_iter++;
 	}
-	
+
 	return result;
 }
 
@@ -347,6 +587,22 @@ LLColor3 LLKeywords::readColor( const std::string& s )
 	return LLColor3( r, g, b );
 }
 
+LLColor3 LLKeywords::readColor(LLSD& sd)
+{
+	if (sd.isArray())
+	{
+		return LLColor3 (sd);
+	}
+	else if (sd.isMap())
+	{
+		return LLColor3 ( sd.get("x").asReal(), sd.get("y").asReal(), sd.get("z").asReal() );
+	}
+	else
+	{
+		return LLColor3::black;
+	}
+}
+
 LLFastTimer::DeclareTimer FTM_SYNTAX_COLORING("Syntax Coloring");
 
 // Walk through a string, applying the rules specified by the keyword token list and
@@ -360,10 +616,10 @@ void LLKeywords::findSegments(std::vector<LLTextSegmentPtr>* seg_list, const LLW
 	{
 		return;
 	}
-	
+
 	S32 text_len = wtext.size() + 1;
 
-	seg_list->push_back( new LLNormalTextSegment( defaultColor, 0, text_len, editor ) ); 
+	seg_list->push_back( new LLNormalTextSegment( defaultColor, 0, text_len, editor ) );
 
 	const llwchar* base = wtext.c_str();
 	const llwchar* cur = base;
@@ -398,7 +654,7 @@ void LLKeywords::findSegments(std::vector<LLTextSegmentPtr>* seg_list, const LLW
 				continue;
 			}
 
-			// cur is now at the first non-whitespace character of a new line	
+			// cur is now at the first non-whitespace character of a new line
 
 			// Line start tokens
 			{
@@ -416,7 +672,7 @@ void LLKeywords::findSegments(std::vector<LLTextSegmentPtr>* seg_list, const LLW
 							cur++;
 						}
 						S32 seg_end = cur - base;
-						
+
 						//create segments from seg_start to seg_end
 						insertSegments(wtext, *seg_list,cur_token, text_len, seg_start, seg_end, defaultColor, editor);
 						line_done = TRUE; // to break out of second loop.
@@ -461,14 +717,14 @@ void LLKeywords::findSegments(std::vector<LLTextSegmentPtr>* seg_list, const LLW
 
 					seg_start = cur - base;
 					cur += cur_delimiter->getLengthHead();
-					
+
 					LLKeywordToken::TOKEN_TYPE type = cur_delimiter->getType();
-					if( type == LLKeywordToken::TWO_SIDED_DELIMITER || type == LLKeywordToken::DOUBLE_QUOTATION_MARKS )
+					if( type == LLKeywordToken::TT_TWO_SIDED_DELIMITER || type == LLKeywordToken::TT_DOUBLE_QUOTATION_MARKS )
 					{
 						while( *cur && !cur_delimiter->isTail(cur))
 						{
 							// Check for an escape sequence.
-							if (type == LLKeywordToken::DOUBLE_QUOTATION_MARKS && *cur == '\\')
+							if (type == LLKeywordToken::TT_DOUBLE_QUOTATION_MARKS && *cur == '\\')
 							{
 								// Count the number of backslashes.
 								S32 num_backslashes = 0;
@@ -515,7 +771,7 @@ void LLKeywords::findSegments(std::vector<LLTextSegmentPtr>* seg_list, const LLW
 					}
 					else
 					{
-						llassert( cur_delimiter->getType() == LLKeywordToken::ONE_SIDED_DELIMITER );
+						llassert( cur_delimiter->getType() == LLKeywordToken::TT_ONE_SIDED_DELIMITER );
 						// Left side is the delimiter.  Right side is eol or eof.
 						while( *cur && ('\n' != *cur) )
 						{
@@ -561,7 +817,7 @@ void LLKeywords::findSegments(std::vector<LLTextSegmentPtr>* seg_list, const LLW
 
 						insertSegments(wtext, *seg_list,cur_token, text_len, seg_start, seg_end, defaultColor, editor);
 					}
-					cur += seg_len; 
+					cur += seg_len;
 					continue;
 				}
 			}
@@ -577,7 +833,7 @@ void LLKeywords::findSegments(std::vector<LLTextSegmentPtr>* seg_list, const LLW
 void LLKeywords::insertSegments(const LLWString& wtext, std::vector<LLTextSegmentPtr>& seg_list, LLKeywordToken* cur_token, S32 text_len, S32 seg_start, S32 seg_end, const LLColor4 &defaultColor, LLTextEditor& editor )
 {
 	std::string::size_type pos = wtext.find('\n',seg_start);
-	
+
 	while (pos!=-1 && pos < (std::string::size_type)seg_end)
 	{
 		if (pos!=seg_start)
@@ -656,7 +912,7 @@ void LLKeywords::dump()
 
 void LLKeywordToken::dump()
 {
-	llinfos << "[" << 
+	llinfos << "[" <<
 		mColor.mV[VX] << ", " <<
 		mColor.mV[VY] << ", " <<
 		mColor.mV[VZ] << "] [" <<
diff --git a/indra/llui/llkeywords.h b/indra/llui/llkeywords.h
index ac34015393..87f65dc0bf 100644
--- a/indra/llui/llkeywords.h
+++ b/indra/llui/llkeywords.h
@@ -1,25 +1,25 @@
-/** 
+/**
  * @file llkeywords.h
  * @brief Keyword list for LSL
  *
  * $LicenseInfo:firstyear=2001&license=viewerlgpl$
  * Second Life Viewer Source Code
  * Copyright (C) 2010, Linden Research, Inc.
- * 
+ *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation;
  * version 2.1 of the License only.
- * 
+ *
  * This library is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  * Lesser General Public License for more details.
- * 
+ *
  * You should have received a copy of the GNU Lesser General Public
  * License along with this library; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
+ *
  * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
  * $/LicenseInfo$
  */
@@ -41,26 +41,35 @@ typedef LLPointer<LLTextSegment> LLTextSegmentPtr;
 class LLKeywordToken
 {
 public:
-	/** 
+	/**
 	 * @brief Types of tokens/delimters being parsed.
 	 *
 	 * @desc Tokens/delimiters that need to be identified/highlighted. All are terminated if an EOF is encountered.
-	 * - WORD are keywords in the normal sense, i.e. constants, events, etc.
-	 * - LINE are for entire lines (currently only flow control labels use this).
-	 * - ONE_SIDED_DELIMITER are for open-ended delimiters which are terminated by EOL.
-	 * - TWO_SIDED_DELIMITER are for delimiters that end with a different delimiter than they open with.
-	 * - DOUBLE_QUOTATION_MARKS are for delimiting areas using the same delimiter to open and close.
+	 * - TT_WORD are keywords in the normal sense, i.e. constants, events, etc.
+	 * - TT_LINE are for entire lines (currently only flow control labels use this).
+	 * - TT_ONE_SIDED_DELIMITER are for open-ended delimiters which are terminated by EOL.
+	 * - TT_TWO_SIDED_DELIMITER are for delimiters that end with a different delimiter than they open with.
+	 * - TT_DOUBLE_QUOTATION_MARKS are for delimiting areas using the same delimiter to open and close.
 	 */
 	enum TOKEN_TYPE
 	{
-		WORD,
-		LINE,
-		TWO_SIDED_DELIMITER,
-		ONE_SIDED_DELIMITER,
-		DOUBLE_QUOTATION_MARKS
+		TT_UNKNOWN,
+		TT_WORD,
+		TT_LINE,
+		TT_TWO_SIDED_DELIMITER,
+		TT_ONE_SIDED_DELIMITER,
+		TT_DOUBLE_QUOTATION_MARKS,
+		// Following constants are more specific versions of the preceding ones
+		TT_CONSTANT,						// WORD
+		TT_EVENT,							// WORD
+		TT_FLOW,							// WORD
+		TT_FUNCTION,						// WORD
+		TT_LABEL,							// LINE
+		TT_SECTION,							// WORD
+		TT_TYPE								// WORD
 	};
 
-	LLKeywordToken( TOKEN_TYPE type, const LLColor3& color, const LLWString& token, const LLWString& tool_tip, const LLWString& delimiter  ) 
+	LLKeywordToken( TOKEN_TYPE type, const LLColor3& color, const LLWString& token, const LLWString& tool_tip, const LLWString& delimiter  )
 		:
 		mType( type ),
 		mToken( token ),
@@ -98,10 +107,19 @@ public:
 	LLKeywords();
 	~LLKeywords();
 
+	void		addColorGroup(const std::string key_in, const LLColor3 color);
+	LLColor3	getColorGroup(const std::string key_in);
+	BOOL		loadFromFile();
 	BOOL		loadFromFile(const std::string& filename);
 	BOOL		isLoaded() const	{ return mLoaded; }
+	void		setFilenameColors(const std::string filename) { mFilenameColors = filename; }
+	void		setFilenameSyntax(const std::string filename) { mFilenameSyntax = filename; }
 
 	void		findSegments(std::vector<LLTextSegmentPtr> *seg_list, const LLWString& text, const LLColor4 &defaultColor, class LLTextEditor& editor );
+	BOOL		initialise();
+	std::string	processColors();
+	std::string	processColors(LLSD &data, const std::string strGroup);
+	void		processTokens();
 
 	// Add the token as described
 	void addToken(LLKeywordToken::TOKEN_TYPE type,
@@ -109,7 +127,7 @@ public:
 					const LLColor3& color,
 					const std::string& tool_tip = LLStringUtil::null,
 					const std::string& delimiter = LLStringUtil::null);
-	
+
 	// This class is here as a performance optimization.
 	// The word token map used to be defined as std::map<LLWString, LLKeywordToken*>.
 	// This worked, but caused a performance bottleneck due to memory allocation and string copies
@@ -133,6 +151,9 @@ public:
 		const llwchar *mData;
 		size_t mLength;
 		bool mOwner;
+
+
+		LLColor3			mColor;
 	};
 
 	typedef std::map<WStringMapIndex, LLKeywordToken*> word_token_map_t;
@@ -140,20 +161,42 @@ public:
 	keyword_iterator_t begin() const { return mWordTokenMap.begin(); }
 	keyword_iterator_t end() const { return mWordTokenMap.end(); }
 
+	typedef std::map<WStringMapIndex, LLColor3> group_color_map_t;
+	typedef group_color_map_t::const_iterator color_iterator_t;
+	group_color_map_t	mColorGroupMap;
+
 #ifdef _DEBUG
 	void		dump();
 #endif
 
-private:
+protected:
+	void		processTokensGroup(LLSD& Tokens, const std::string Group);
 	LLColor3	readColor(const std::string& s);
+	LLColor3	readColor(LLSD& sd);
 	void		insertSegment(std::vector<LLTextSegmentPtr>& seg_list, LLTextSegmentPtr new_segment, S32 text_len, const LLColor4 &defaultColor, class LLTextEditor& editor);
 	void		insertSegments(const LLWString& wtext, std::vector<LLTextSegmentPtr>& seg_list, LLKeywordToken* token, S32 text_len, S32 seg_start, S32 seg_end, const LLColor4 &defaultColor, LLTextEditor& editor);
+	BOOL		loadIntoLLSD( const std::string& filename, LLSD& data );
 
+	LLSD		mColors;
 	BOOL		mLoaded;
+	LLSD		mSyntax;
 	word_token_map_t mWordTokenMap;
 	typedef std::deque<LLKeywordToken*> token_list_t;
 	token_list_t mLineTokenList;
 	token_list_t mDelimiterTokenList;
+
+	typedef  std::map<std::string, std::string> element_attributes_t;
+	typedef element_attributes_t::const_iterator attribute_iterator_t;
+	element_attributes_t mAttributes;
+	std::string	getAttribute(const std::string& key);
+
+	std::string	getArguments(LLSD& args);
+
+private:
+	BOOL		ready() { return mReady; };
+	BOOL		mReady;
+	std::string	mFilenameColors;
+	std::string	mFilenameSyntax;
 };
 
 #endif  // LL_LLKEYWORDS_H
diff --git a/indra/llui/lltexteditor.cpp b/indra/llui/lltexteditor.cpp
index 144b6960a1..1728292a6b 100644
--- a/indra/llui/lltexteditor.cpp
+++ b/indra/llui/lltexteditor.cpp
@@ -2416,14 +2416,8 @@ void LLTextEditor::loadKeywords(const std::string& filename,
 								const LLColor3& color)
 {
 	LLFastTimer ft(FTM_SYNTAX_HIGHLIGHTING);
-	if(mKeywords.loadFromFile(filename))
+	if(mKeywords.loadFromFile())
 	{
-		S32 count = llmin(funcs.size(), tooltips.size());
-		for(S32 i = 0; i < count; i++)
-		{
-			std::string name = utf8str_trim(funcs[i]);
-			mKeywords.addToken(LLKeywordToken::WORD, name, color, tooltips[i] );
-		}
 		segment_vec_t segment_list;
 		mKeywords.findSegments(&segment_list, getWText(), mDefaultColor.get(), *this);
 
diff --git a/indra/llui/lltexteditor.h b/indra/llui/lltexteditor.h
index 40821ae9fb..070c859e46 100644
--- a/indra/llui/lltexteditor.h
+++ b/indra/llui/lltexteditor.h
@@ -1,25 +1,25 @@
-/** 
+/**
  * @file lltexteditor.h
  * @brief LLTextEditor base class
  *
  * $LicenseInfo:firstyear=2001&license=viewerlgpl$
  * Second Life Viewer Source Code
  * Copyright (C) 2010, Linden Research, Inc.
- * 
+ *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation;
  * version 2.1 of the License only.
- * 
+ *
  * This library is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  * Lesser General Public License for more details.
- * 
+ *
  * You should have received a copy of the GNU Lesser General Public
  * License along with this library; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- * 
+ *
  * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
  * $/LicenseInfo$
  */
@@ -131,7 +131,7 @@ public:
 	virtual BOOL	canCopy() const;
 	virtual void	paste();
 	virtual BOOL	canPaste() const;
- 
+
 	virtual void	updatePrimary();
 	virtual void	copyPrimary();
 	virtual void	pastePrimary();
@@ -147,7 +147,7 @@ public:
 	void			selectNext(const std::string& search_text_in, BOOL case_insensitive, BOOL wrap = TRUE);
 	BOOL			replaceText(const std::string& search_text, const std::string& replace_text, BOOL case_insensitive, BOOL wrap = TRUE);
 	void			replaceTextAll(const std::string& search_text, const std::string& replace_text, BOOL case_insensitive);
-	
+
 	// Undo/redo stack
 	void			blockUndo();
 
@@ -179,6 +179,7 @@ public:
 
 	void			getCurrentLineAndColumn( S32* line, S32* col, BOOL include_wordwrap );
 
+	LLKeywords		mKeywords;
 	void			loadKeywords(const std::string& filename,
 								 const std::vector<std::string>& funcs,
 								 const std::vector<std::string>& tooltips,
@@ -186,6 +187,9 @@ public:
 	LLKeywords::keyword_iterator_t keywordsBegin()	{ return mKeywords.begin(); }
 	LLKeywords::keyword_iterator_t keywordsEnd()	{ return mKeywords.end(); }
 
+	void			loadKeywords(const std::string& filename_keywords,
+								const std::string& filename_colors);
+
 	// Hacky methods to make it into a word-wrapping, potentially scrolling,
 	// read-only text box.
 	void			setCommitOnFocusLost(BOOL b)			{ mCommitOnFocusLost = b; }
@@ -207,7 +211,7 @@ protected:
 	void			drawPreeditMarker();
 
 	void 			assignEmbedded(const std::string &s);
-	
+
 	void			removeCharOrTab();
 
 	void			indentSelectedLines( S32 spaces );
@@ -226,12 +230,12 @@ protected:
 	S32				nextWordPos(S32 cursorPos) const;
 
 	void			autoIndent();
-	
+
 	void			findEmbeddedItemSegments(S32 start, S32 end);
 	void			getSegmentsInRange(segment_vec_t& segments, S32 start, S32 end, bool include_partial) const;
 
 	virtual llwchar	pasteEmbeddedItem(llwchar ext_char) { return ext_char; }
-	
+
 
 	// Here's the method that takes and applies text commands.
 	S32 			execute(TextCmd* cmd);
@@ -245,7 +249,7 @@ protected:
 	S32 			removeChar(S32 pos);
 	S32				insert(S32 pos, const LLWString &wstr, bool group_with_next_op, LLTextSegmentPtr segment);
 	S32				remove(S32 pos, S32 length, bool group_with_next_op);
-	
+
 	void			updateAllowingLanguageInput();
 	BOOL			hasPreeditString() const;
 
@@ -262,14 +266,14 @@ protected:
 	//
 	// Protected data
 	//
-	// Probably deserves serious thought to hiding as many of these 
+	// Probably deserves serious thought to hiding as many of these
 	// as possible behind protected accessor methods.
 	//
 
 	// Use these to determine if a click on an embedded item is a drag or not.
 	S32				mMouseDownX;
 	S32				mMouseDownY;
-	
+
 	LLWString			mPreeditWString;
 	LLWString			mPreeditOverwrittenWString;
 	std::vector<S32> 	mPreeditPositions;
@@ -293,11 +297,6 @@ private:
 
 	void			onKeyStroke();
 
-	//
-	// Data
-	//
-	LLKeywords		mKeywords;
-
 	// Concrete TextCmd sub-classes used by the LLTextEditor base class
 	class TextCmdInsert;
 	class TextCmdAddChar;
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index dff2c04fbc..cbeb0c43a4 100755
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -1467,7 +1467,8 @@ set(viewer_APPSETTINGS_FILES
     app_settings/high_graphics.xml
     app_settings/ignorable_dialogs.xml
     app_settings/keys.xml
-    app_settings/keywords.ini
+    app_settings/keywords_lsl_colors.xml
+    app_settings/keywords_lsl_tokens.xml
     app_settings/logcontrol.xml
     app_settings/low_graphics.xml
     app_settings/mid_graphics.xml
@@ -1785,7 +1786,7 @@ elseif (DARWIN)
         LINK_FLAGS_RELEASE "${LINK_FLAGS_RELEASE} -Xlinker -dead_strip -Xlinker -map -Xlinker ${CMAKE_CURRENT_BINARY_DIR}/${VIEWER_BINARY_NAME}.MAP"
         )
 else (WINDOWS)
-        # Linux 
+        # Linux
     set_target_properties(${VIEWER_BINARY_NAME}
         PROPERTIES
         LINK_FLAGS_RELEASE "${LINK_FLAGS_RELEASE} -Wl,--Map=${VIEWER_BINARY_NAME}.MAP"
@@ -1961,7 +1962,7 @@ if (DARWIN)
     )
 
   add_dependencies(${VIEWER_BINARY_NAME} SLPlugin media_plugin_quicktime media_plugin_webkit mac-updater mac-crash-logger)
-  
+
   if (ENABLE_SIGNING)
       set(SIGNING_SETTING "--signature=${SIGNING_IDENTITY}")
   else (ENABLE_SIGNING)
diff --git a/indra/newview/app_settings/keywords.ini b/indra/newview/app_settings/keywords.ini
deleted file mode 100644
index 6120f22ba4..0000000000
--- a/indra/newview/app_settings/keywords.ini
+++ /dev/null
@@ -1,706 +0,0 @@
-llkeywords version 2
-
-# sections
-[word .5, .1, .3]
-default 		Name of default state that all scripts must have
-state 			Keyword to indicate state block or state transition
-
-# data types
-[word .1, .3, .1]
-integer			Integer type
-float			Floating-point type
-string			String type
-key				Key type.  Use NULL_KEY to test for empty keys
-vector			Vector type of 3 floats.  Used to represent 3D motion, Euler angles, and color.:Access components by .x, .y. or .z
-rotation		Rotation type of 4 floats.  Used to represent rotation.:Access components by .x, .y., .z, or .w
-list			List of various data types
-
-# events
-[word 0, .3, .5]
-state_entry		state_entry():Triggered on any state transition and startup
-state_exit		state_exit():Triggered on any state transition
-touch_start		touch_start(integer num_detected):Triggered by the start of agent clicking on task
-touch			touch(integer num_detected):Triggered while agent is clicking on task
-touch_end		touch_end(integer num_detected):Triggered when agent stops clicking on task
-collision_start collision_start(integer num_detected):Triggered when task starts colliding with another task
-collision		collision(integer num_detected):Triggered while task is colliding with another task
-collision_end	collision_end(integer num_detected):Triggered when task stops colliding with another task
-land_collision_start	land_collision_start(vector pos):Triggered when task starts colliding with land
-land_collision			land_collision(vector pos):Triggered when task is colliding with land
-land_collision_end		land_collision_end(vector pos):Triggered when task stops colliding with land
-timer			timer():Result of the llSetTimerEvent library function call
-listen			listen(integer channel, string name, key id, string message):Result of the llListen library function call
-sensor			sensor(integer num_detected):Result of the llSensor library function call
-no_sensor		no_sensor():Result of the llSensor library function call
-control			control(key id, integer level, integer edge):Result of llTakeControls library function call
-at_target		at_target(integer tnum, vector targetpos, vector ourpos):Result of llTarget library function call
-not_at_target	not_at_target():Result of llTarget library function call
-at_rot_target	at_rot_target(integer tnum, rotation targetrot, rotation ourrot):Result of LLRotTarget library function call
-not_at_rot_target	not_at_rot_target():Result of LLRotTarget library function call
-money			money(key id, integer amount):Triggered when L$ is given to task
-email			email(string time, string address, string subj, string message, integer num_left):Triggered when task receives email
-run_time_permissions	run_time_permissions(integer perm):Triggered when an agent grants run time permissions to task
-attach			attach(key id):Triggered when task attaches or detaches from agent
-dataserver      dataserver(key queryid, string data):Triggered when task receives asynchronous data
-moving_start	moving_start():Triggered when task begins moving
-moving_end		moving_end():Triggered when task stops moving
-on_rez			on_rez(integer start_param):Triggered when task is rezzed in from inventory or another task
-object_rez		object_rez(key id):Triggered when task rezzes in another task
-link_message	link_message(integer sender_num, integer num, string str, key id):Triggered when task receives a link message via LLMessageLinked library function call
-changed			changed( integer change ):Triggered various event change the task:(test change with CHANGED_INVENTORY, CHANGED_COLOR, CHANGED_SHAPE, CHANGED_SCALE, CHANGED_TEXTURE, CHANGED_LINK, CHANGED_ALLOWED_DROP, CHANGED_OWNER, CHANGED_REGION, CHANGED_TELEPORT, CHANGED_REGION_START, CHANGED_MEDIA)
-remote_data     remote_data(integer event_type, key channel, key message_id, string sender,integer idata, string sdata):Triggered by various XML-RPC calls (event_type will be one of REMOTE_DATA_CHANNEL, REMOTE_DATA_REQUEST, REMOTE_DATA_REPLY)
-http_response   http_response(key request_id, integer status, list metadata, string body):Triggered when task receives a response to one of its llHTTPRequests
-http_request	http_request(key id, string method, string body):Triggered when task receives an http request against a public URL
-
-# integer constants
-[word .1, .1, .5]
-TRUE			Integer constant for Boolean operations
-FALSE			Integer constant for Boolean operations
-STATUS_PHYSICS	Passed in the llSetStatus library function.  If TRUE, object moves physically
-STATUS_PHANTOM	Passed in the llSetStatus library function.  If TRUE, object doesn't collide with other objects
-STATUS_ROTATE_X Passed in the llSetStatus library function.  If FALSE, object doesn't rotate around local X axis
-STATUS_ROTATE_Y Passed in the llSetStatus library function.  If FALSE, object doesn't rotate around local Y axis
-STATUS_ROTATE_Z Passed in the llSetStatus library function.  If FALSE, object doesn't rotate around local Z axis
-STATUS_SANDBOX	Passed in the llSetStatus library function.  If TRUE, object can't cross region boundaries or move more than 10 meters from its start location
-STATUS_BLOCK_GRAB Passed in the llSetStatus library function.  If TRUE, object can't be grabbed and physically dragged
-STATUS_DIE_AT_EDGE Passed in the llSetStatus library function.  If TRUE, objects that reach the edge of the world just die:rather than teleporting back to the owner
-STATUS_RETURN_AT_EDGE Passed in the llSetStatus library function.  If TRUE, script rezzed objects that reach the edge of the world:are returned rather than killed:STATUS_RETURN_AT_EDGE trumps STATUS_DIE_AT_EDGE if both are set
-STATUS_CAST_SHADOWS	Passed in the llSetStatus library function.  If TRUE, object casts shadows on other objects
-AGENT			Passed in llSensor library function to look for other Agents
-ACTIVE			Passed in llSensor library function to look for moving objects
-PASSIVE			Passed in llSensor library function to look for objects that aren't moving
-SCRIPTED		Passed in llSensor library function to look for scripted objects
-CONTROL_FWD		Passed to llTakeControls library function and used control event handler to test for agent forward control
-CONTROL_BACK	Passed to llTakeControls library function and used control event handler to test for agent back control
-CONTROL_LEFT	Passed to llTakeControls library function and used control event handler to test for agent left control
-CONTROL_RIGHT	Passed to llTakeControls library function and used control event handler to test for agent right control
-CONTROL_ROT_LEFT				Passed to llTakeControls library function and used control event handler to test for agent rotate left control
-CONTROL_ROT_RIGHT				Passed to llTakeControls library function and used control event handler to test for agent rotate right control
-CONTROL_UP						Passed to llTakeControls library function and used control event handler to test for agent up control
-CONTROL_DOWN					Passed to llTakeControls library function and used control event handler to test for agent down control
-CONTROL_LBUTTON					Passed to llTakeControls library function and used control event handler to test for agent left button control
-CONTROL_ML_LBUTTON				Passed to llTakeControls library function and used control event handler to test for agent left button control with the agent in mouse look
-PERMISSION_DEBIT				Passed to llRequestPermissions library function to request permission to take L$ from agent's account
-PERMISSION_TAKE_CONTROLS		Passed to llRequestPermissions library function to request permission to take agent's controls
-# PERMISSION_REMAP_CONTROLS		Passed to llRequestPermissions library function to request permission to remap agent's controls (not implemented yet)
-PERMISSION_TRIGGER_ANIMATION	Passed to llRequestPermissions library function to request permission to trigger animation on agent
-PERMISSION_ATTACH				Passed to llRequestPermissions library function to request permission to attach/detach from agent
-# PERMISSION_RELEASE_OWNERSHIP	Passed to llRequestPermissions library function to request permission to release ownership (not implemented)
-PERMISSION_CHANGE_LINKS			Passed to llRequestPermissions library function to request permission to change links
-# PERMISSION_CHANGE_JOINTS		Passed to llRequestPermissions library function to request permission to change joints (not implemented)
-# PERMISSION_CHANGE_PERMISSIONS Passed to llRequestPermissions library function to request permission to change permissions
-PERMISSION_TRACK_CAMERA			Passed to llRequestPermissions library function to request permission to track agent's camera
-PERMISSION_CONTROL_CAMERA		Passed to llRequestPermissions library function to request permission to change agent's camera
-PERMISSION_TELEPORT				Passed to llRequestPermissions library function to request permission to teleport agent
-
-DEBUG_CHANNEL		Chat channel reserved for debug and error messages from scripts
-PUBLIC_CHANNEL		Chat channel that broadcasts to all nearby users
-
-AGENT_FLYING		Returned by llGetAgentInfo if the Agent is flying
-AGENT_ATTACHMENTS	Returned by llGetAgentInfo if the Agent has attachments
-AGENT_SCRIPTED		Returned by llGetAgentInfo if the Agent has scripted attachments
-AGENT_SITTING		Returned by llGetAgentInfo if the Agent is sitting
-AGENT_ON_OBJECT		Returned by llGetAgentInfo if the Agent is sitting on an object
-AGENT_MOUSELOOK		Returned by llGetAgentInfo if the Agent is in mouselook
-AGENT_AWAY			Returned by llGetAgentInfo if the Agent is in away mode
-AGENT_WALKING		Returned by llGetAgentInfo if the Agent is walking
-AGENT_IN_AIR		Returned by llGetAgentInfo if the Agent is in the air
-AGENT_TYPING		Returned by llGetAgentInfo if the Agent is typing
-AGENT_CROUCHING		Returned by llGetAgentInfo if the Agent is crouching
-AGENT_BUSY			Returned by llGetAgentInfo if the Agent is busy
-AGENT_ALWAYS_RUN	Returned by llGetAgentInfo if the Agent has 'Always Run' enabled
-AGENT_AUTOPILOT		Returned by llGetAgentInfo if the Agent is under autopilot control
-
-PSYS_PART_FLAGS
-PSYS_PART_START_COLOR
-PSYS_PART_START_ALPHA
-PSYS_PART_START_SCALE
-PSYS_PART_END_COLOR
-PSYS_PART_END_ALPHA
-PSYS_PART_END_SCALE
-PSYS_PART_MAX_AGE
-
-PSYS_PART_BOUNCE_MASK
-PSYS_PART_WIND_MASK
-PSYS_PART_INTERP_COLOR_MASK
-PSYS_PART_INTERP_SCALE_MASK
-PSYS_PART_FOLLOW_SRC_MASK
-PSYS_PART_FOLLOW_VELOCITY_MASK
-PSYS_PART_TARGET_POS_MASK
-PSYS_PART_EMISSIVE_MASK
-PSYS_PART_TARGET_LINEAR_MASK
-
-PSYS_SRC_PATTERN
-PSYS_SRC_INNERANGLE	Deprecated -- Use PSYS_SRC_ANGLE_BEGIN
-PSYS_SRC_OUTERANGLE	Deprecated -- Use PSYS_SRC_ANGLE_END
-PSYS_SRC_ANGLE_BEGIN
-PSYS_SRC_ANGLE_END
-PSYS_SRC_BURST_RATE
-PSYS_SRC_BURST_PART_COUNT
-PSYS_SRC_BURST_RADIUS
-PSYS_SRC_BURST_SPEED_MIN
-PSYS_SRC_BURST_SPEED_MAX
-PSYS_SRC_MAX_AGE
-PSYS_SRC_ACCEL
-PSYS_SRC_TEXTURE
-PSYS_SRC_TARGET_KEY
-PSYS_SRC_OMEGA
-
-PSYS_SRC_PATTERN_DROP
-PSYS_SRC_PATTERN_EXPLODE
-PSYS_SRC_PATTERN_ANGLE
-PSYS_SRC_PATTERN_ANGLE_CONE
-PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY
-
-OBJECT_UNKNOWN_DETAIL	Returned by llGetObjectDetails when passed an invalid object parameter type
-OBJECT_NAME				Used with llGetObjectDetails to get an object's name
-OBJECT_DESC				Used with llGetObjectDetails to get an object's description
-OBJECT_POS				Used with llGetObjectDetails to get an object's position
-OBJECT_ROT				Used with llGetObjectDetails to get an object's rotation
-OBJECT_VELOCITY			Used with llGetObjectDetails to get an object's velocity
-OBJECT_OWNER			Used with llGetObjectDetails to get an object's owner's key.  Will be NULL_KEY if group owned
-OBJECT_GROUP			Used with llGetObjectDetails to get an object's group's key
-OBJECT_CREATOR			Used with llGetObjectDetails to get an object's creator's key
-
-# some vehicle params
-VEHICLE_TYPE_NONE
-VEHICLE_TYPE_SLED
-VEHICLE_TYPE_CAR
-VEHICLE_TYPE_BOAT
-VEHICLE_TYPE_AIRPLANE
-VEHICLE_TYPE_BALLOON
-
-VEHICLE_REFERENCE_FRAME		Rotation of vehicle axes relative to local frame
-
-VEHICLE_LINEAR_FRICTION_TIMESCALE 	A vector of timescales for exponential decay of linear velocity along the three vehicle axes
-VEHICLE_ANGULAR_FRICTION_TIMESCALE	A vector of timescales for exponential decay of angular velocity about the three vehicle axes
-VEHICLE_LINEAR_MOTOR_DIRECTION		The linear velocity that the vehicle will try to achieve
-VEHICLE_LINEAR_MOTOR_OFFSET			An offset from the center of mass of the vehicle where the linear motor is applied
-VEHICLE_ANGULAR_MOTOR_DIRECTION		The angular velocity that the vehicle will try to achieve
-
-VEHICLE_HOVER_HEIGHT		The height the vehicle will try to hover
-VEHICLE_HOVER_EFFICIENCY	A slider between 0 (bouncy) and 1 (critically damped) hover behavior
-VEHICLE_HOVER_TIMESCALE		The period of time for the vehicle to achieve its hover height
-VEHICLE_BUOYANCY			A slider between 0 (no anti-gravity) and 1 (full anti-gravity)
-
-VEHICLE_LINEAR_DEFLECTION_EFFICIENCY	A slider between 0 (no deflection) and 1 (maximum strength)
-VEHICLE_LINEAR_DEFLECTION_TIMESCALE		The exponential timescale for the vehicle to redirect its velocity to be along its x-axis
-
-VEHICLE_LINEAR_MOTOR_TIMESCALE			The exponential timescale for the vehicle to achive its full linear motor velocity
-VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE	The exponential timescale for the linear motor's effectiveness to decay toward zero
-
-VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY	A slider between 0 (no deflection) and 1 (maximum strength)
-VEHICLE_ANGULAR_DEFLECTION_TIMESCALE	The exponential timescale for the vehicle to achieve full angular deflection
-
-VEHICLE_ANGULAR_MOTOR_TIMESCALE			The exponential timescale for the vehicle to achive its full angular motor velocity
-VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE	The exponential timescale for the angular motor's effectiveness to decay toward zero
-
-VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY	A slider between 0 (bouncy) and 1 (critically damped) attraction of vehicle z-axis to world z-axis (vertical)
-VEHICLE_VERTICAL_ATTRACTION_TIMESCALE	The exponential timescale for the vehicle to align its z-axis to the world z-axis (vertical)
-
-VEHICLE_BANKING_EFFICIENCY	A slider between -1 (leans out of turns), 0 (no banking), and +1 (leans into turns)
-VEHICLE_BANKING_MIX			A slider between 0 (static banking) and 1 (dynamic banking)
-VEHICLE_BANKING_TIMESCALE	The exponential timescale for the banking behavior to take full effect
-
-VEHICLE_FLAG_NO_DEFLECTION_UP	Prevents linear deflection along world-z axis
-VEHICLE_FLAG_LIMIT_ROLL_ONLY	Removes vertical attraction for changes in vehicle pitch
-VEHICLE_FLAG_HOVER_WATER_ONLY	Hover only pays attention to water level
-VEHICLE_FLAG_HOVER_TERRAIN_ONLY	Hover only pays attention to terrain height
-VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT Hover only pays attention to global height
-VEHICLE_FLAG_HOVER_UP_ONLY 		Hover only pushes up
-VEHICLE_FLAG_LIMIT_MOTOR_UP		Prevents ground vehicles from motoring into the sky
-VEHICLE_FLAG_MOUSELOOK_STEER	Makes vehicle try to turn toward mouselook direction
-VEHICLE_FLAG_MOUSELOOK_BANK		Makes vehicle try to turn toward mouselook direction assuming banking is enabled
-VEHICLE_FLAG_CAMERA_DECOUPLED 	Causes the camera look-at axis to NOT move when the vehicle rotates
-
-CAMERA_PITCH				(-45 to 80) (Adjusts the angular amount that the camera aims straight ahead vs. straight down, maintaining the same distance. Analogous to 'incidence'.")
-CAMERA_FOCUS_OFFSET			(-10 to 10) A vector that adjusts the position of the camera focus position relative to the subject
-CAMERA_POSITION_LAG			(0.0 to 3.0)  How much the camera lags as it tries to move towards its 'ideal' position
-CAMERA_FOCUS_LAG			(0.0 to 3.0) How much the camera lags as it tries to aim towards the subject
-CAMERA_DISTANCE				(0.5 to 10) Sets how far away the camera wants to be from its subject
-CAMERA_BEHINDNESS_ANGLE		(0 to 180) Sets the angle in degrees within which the camera is not constrained by changes in subject rotation
-CAMERA_BEHINDNESS_LAG		(0.0 to 3.0) Sets how strongly the camera is forced to stay behind the target if outside of behindness angle
-CAMERA_POSITION_THRESHOLD	(0.0 to 4.0) Sets the radius of a sphere around the camera's ideal position within which it is not affected by subject motion
-CAMERA_FOCUS_THRESHOLD		(0.0 to 4.0) Sets the radius of a sphere around the camera's subject position within which its focus is not affected by subject motion
-CAMERA_ACTIVE				(0 or 1) Turns on or off scripted control of the camera
-CAMERA_POSITION				Sets the position of the camera
-CAMERA_FOCUS				Sets the focus (target position) of the camera
-CAMERA_POSITION_LOCKED		(0 or 1) Locks the camera position so it will not move
-CAMERA_FOCUS_LOCKED			(0 or 1) Locks the camera focus so it will not move
-
-INVENTORY_TEXTURE	Passed to task inventory library functions to reference textures
-INVENTORY_SOUND		Passed to task inventory library functions to reference sounds
-INVENTORY_OBJECT	Passed to task inventory library functions to reference objects
-INVENTORY_SCRIPT	Passed to task inventory library functions to reference scripts
-INVENTORY_LANDMARK	Passed to task inventory library functions to reference landmarks
-INVENTORY_CLOTHING	Passed to task inventory library functions to reference clothing
-INVENTORY_NOTECARD	Passed to task inventory library functions to reference notecards
-INVENTORY_BODYPART	Passed to task inventory library functions to reference body parts
-INVENTORY_ANIMATION	Passed to task inventory library functions to reference animations
-INVENTORY_GESTURE	Passed to task inventory library functions to reference gestures
-INVENTORY_ALL		Passed to task inventory library functions to reference all inventory items
-INVENTORY_NONE		Returned by llGetInventoryType when no item is found
-
-ATTACH_CHEST		Passed to llAttachToAvatar to attach task to chest
-ATTACH_HEAD			Passed to llAttachToAvatar to attach task to head
-ATTACH_LSHOULDER	Passed to llAttachToAvatar to attach task to left shoulder
-ATTACH_RSHOULDER	Passed to llAttachToAvatar to attach task to right shoulder
-ATTACH_LHAND		Passed to llAttachToAvatar to attach task to left hand
-ATTACH_RHAND		Passed to llAttachToAvatar to attach task to right hand
-ATTACH_LFOOT		Passed to llAttachToAvatar to attach task to left foot
-ATTACH_RFOOT		Passed to llAttachToAvatar to attach task to right foot
-ATTACH_BACK			Passed to llAttachToAvatar to attach task to back
-ATTACH_PELVIS		Passed to llAttachToAvatar to attach task to pelvis
-ATTACH_MOUTH		Passed to llAttachToAvatar to attach task to mouth
-ATTACH_CHIN			Passed to llAttachToAvatar to attach task to chin
-ATTACH_LEAR			Passed to llAttachToAvatar to attach task to left ear
-ATTACH_REAR			Passed to llAttachToAvatar to attach task to right ear
-ATTACH_LEYE			Passed to llAttachToAvatar to attach task to left eye
-ATTACH_REYE			Passed to llAttachToAvatar to attach task to right eye
-ATTACH_NOSE			Passed to llAttachToAvatar to attach task to nose
-ATTACH_RUARM		Passed to llAttachToAvatar to attach task to right upper arm
-ATTACH_RLARM		Passed to llAttachToAvatar to attach task to right lower arm
-ATTACH_LUARM		Passed to llAttachToAvatar to attach task to left upper arm
-ATTACH_LLARM		Passed to llAttachToAvatar to attach task to left lower arm
-ATTACH_RHIP			Passed to llAttachToAvatar to attach task to right hip
-ATTACH_RULEG		Passed to llAttachToAvatar to attach task to right upper leg
-ATTACH_RLLEG		Passed to llAttachToAvatar to attach task to right lower leg
-ATTACH_LHIP			Passed to llAttachToAvatar to attach task to left hip
-ATTACH_LULEG		Passed to llAttachToAvatar to attach task to left upper leg
-ATTACH_LLLEG		Passed to llAttachToAvatar to attach task to left lower leg
-ATTACH_BELLY		Passed to llAttachToAvatar to attach task to belly
-ATTACH_LEFT_PEC		Passed to llAttachToAvatar to attach task to left pectoral
-ATTACH_RIGHT_PEC	Passed to llAttachToAvatar to attach task to right pectoral
-
-LAND_LEVEL			Passed to llModifyLand to level terrain
-LAND_RAISE			Passed to llModifyLand to raise terrain
-LAND_LOWER			Passed to llModifyLand to lower terrain
-LAND_SMOOTH			Passed to llModifyLand to smooth terrain
-LAND_NOISE			Passed to llModifyLand to randomize terrain
-LAND_REVERT			Passed to llModifyLand to revert terrain toward original state
-LAND_SMALL_BRUSH	Passed to llModifyLand to modify small land areas
-LAND_MEDIUM_BRUSH	Passed to llModifyLand to modify medium land areas
-LAND_LARGE_BRUSH	Passed to llModifyLand to modify large land areas
-
-DATA_PAYINFO		Passed to llRequestAgentData to get payment status of an agent
-DATA_ONLINE			Passed to llRequestAgentData to determine if agent is online
-DATA_NAME			Passed to llRequestAgentData to get full agent name
-DATA_BORN			Passed to llRequestAgentData to get born on date as a string
-DATA_RATING			Passed to llRequestAgentData to get a comma separated sting of integer ratings
-DATA_SIM_POS		Passed to llRequestSimulatorData to get a string (cast to vector) of a simulator's global position
-DATA_SIM_STATUS		Passed to llRequestSimulatorData to get the status of a simulator
-DATA_SIM_RATING		Passed to llRequestSimulatorData to get the rating of a simulator
-
-PAYMENT_INFO_ON_FILE		Used with llRequestAgentData to tell if Agent is of "Payment Info On File" status
-PAYMENT_INFO_USED	Used with llRequestAgentData to tell if Agent is of "Payment Info Used" status
-
-ANIM_ON				Enable texture animation
-LOOP				Loop when animating textures
-REVERSE				Animate in the reverse direction
-PING_PONG			Animate forward, then reverse
-SMOOTH				Textures slides, instead of stepping
-ROTATE				Rotates the texture, instead of using frames
-SCALE				Scales the texture, instead of using frames
-
-ALL_SIDES			Passed to various texture and color library functions to modify all sides
-
-LINK_SET			Passed to various link functions to modify all blocks in the object
-LINK_ROOT			Passed to various link functions to modify only the root block (no effect on single block objects)
-LINK_ALL_OTHERS		Passed to various link functions to modify all other blocks in the object
-LINK_ALL_CHILDREN	Passed to various link functions to modify all child blocks in the object
-LINK_THIS			Passed to various link functions to modify only the calling block
-
-CHANGED_INVENTORY	Parameter of changed event handler used to indicate change to task's inventory
-CHANGED_COLOR		Parameter of changed event handler used to indicate change to task's color
-CHANGED_SHAPE		Parameter of changed event handler used to indicate change to task's shape parameters
-CHANGED_SCALE		Parameter of changed event handler used to indicate change to task's scale
-CHANGED_TEXTURE		Parameter of changed event handler used to indicate change to task's texture
-CHANGED_LINK		Parameter of changed event handler used to indicate change to task's link status
-CHANGED_ALLOWED_DROP Parameter of changed event handler used to indicate a user dropped an inventory item:onto task that was allowed only by llAllowInventoryDrop function call
-CHANGED_OWNER		Parameter of changed event handler used to indicate change to task's owner ONLY when an object is sold as original or deeded to group
-CHANGED_REGION		Parameter of changed event handler used to indicate the region has changed
-CHANGED_TELEPORT	Parameter of changed event handler used to indicate teleport has completed
-CHANGED_REGION_START	Parameter of changed event handler used to indicate the region has been restarted
-CHANGED_MEDIA       Parameter of changed event handler used to indicate that media has changed on a face of the task
-
-TYPE_INTEGER		Indicates that the list entry is holding an integer
-TYPE_FLOAT			Indicates that the list entry is holding an float
-TYPE_STRING			Indicates that the list entry is holding an string
-TYPE_KEY			Indicates that the list entry is holding an key
-TYPE_VECTOR			Indicates that the list entry is holding an vector
-TYPE_ROTATION		Indicates that the list entry is holding an rotation
-TYPE_INVALID		Indicates that this wasn't a valid list entry
-
-
-REMOTE_DATA_CHANNEL	Value of event_type in remote_event after successful llOpenRemoteDataChannel
-REMOTE_DATA_REQUEST	Value of event_type in remote_event if XML-RPC request is received
-REMOTE_DATA_REPLY	Value of event_type in remote_event if XML-RPC reply is received
-
-
-PRIM_TYPE			Followed by PRIM_TYPE_BOX, PRIM_TYPE_CYLINDER, PRIM_TYPE_PRISM, PRIM_TYPE_SPHERE, PRIM_TYPE_TORUS, PRIM_TYPE_TUBE, or PRIM_TYPE_SCULPT and their arguments
-PRIM_MATERIAL		Followed by PRIM_MATERIAL_STONE, PRIM_MATERIAL_METAL, PRIM_MATERIAL_GLASS, PRIM_MATERIAL_WOOD, PRIM_MATERIAL_FLESH, PRIM_MATERIAL_PLASTIC, or PRIM_MATERIAL_RUBBER
-PRIM_PHYSICS		Sets physics to TRUE or FALSE
-PRIM_FLEXIBLE		Followed by TRUE or FALSE, integer softness, float gravity, float friction, float wind, float tension, and vector force
-PRIM_POINT_LIGHT	Followed by TRUE or FALSE, vector color, float intensity, float radius, float falloff
-PRIM_TEMP_ON_REZ	Sets temporay on rez to TRUE or FALSE
-PRIM_PHANTOM		Sets phantom to TRUE or FALSE
-PRIM_CAST_SHADOWS	DEPRECATED. Takes 1 parameter, an integer, but has no effect when set and always returns 0 if used in llGetPrimitiveParams
-PRIM_POSITION		Sets primitive position to a vector position
-PRIM_SIZE			Sets primitive size to a vector size
-PRIM_ROTATION		Sets primitive rotation
-PRIM_TEXTURE		Followed by an integer face, key id, vector repeats, vector offsets,:and float rotation in radians
-PRIM_COLOR			Followed by an integer face, vector color, and float alpha
-PRIM_BUMP_SHINY		Followed by an integer face, one of PRIM_SHINY_NONE, PRIM_SHINY_LOW,:PRIM_SHINY_MEDIUM, or PRIM_SHINY_HIGH,:and one of PRIM_BUMP_NONE, PRIM_BUMP_BRIGHT, PRIM_BUMP_DARK, etc
-PRIM_FULLBRIGHT		Followed by an integer face, and TRUE or FALSE
-PRIM_TEXGEN			Followed by an integer face, and one of PRIM_TEXGEN_DEFAULT or PRIM_TEXGEN_PLANAR
-PRIM_GLOW			Followed by an integer face, and a float from 0.0 to 1.0 specifying glow amount
-
-PRIM_TYPE_BOX		Followed by integer hole shape, vector cut, float hollow, vector twist,:vector top size, and vector top shear
-PRIM_TYPE_CYLINDER	Followed by integer hole shape, vector cut, float hollow, vector twist,:vector top size, and vector top shear
-PRIM_TYPE_PRISM		Followed by integer hole shape, vector cut, float hollow, vector twist,:vector top size, and vector top shear
-PRIM_TYPE_SPHERE	Followed by integer hole shape, vector cut, float hollow, vector twist,:and vector dimple
-PRIM_TYPE_TORUS		Followed by integer hole shape, vector cut, float hollow, vector twist,:vector hole size, vector top shear, vector advanced cut, vector taper,:float revolutions, float radius offset, and float skew
-PRIM_TYPE_TUBE		Followed by integer hole shape, vector cut, float hollow, vector twist,:vector hole size, vector top shear, vector advanced cut, vector taper,:float revolutions, float radius offset, and float skew
-PRIM_TYPE_RING		Followed by integer hole shape, vector cut, float hollow, vector twist,:vector hole size, vector top shear, vector advanced cut, vector taper,:float revolutions, float radius offset, and float skew
-PRIM_TYPE_SCULPT	Followed by a key/string texture uuid, and one of PRIM_SCULPT_TYPE_SPHERE, PRIM_SCULPT_TYPE_TORUS, PRIM_SCULPT_TYPE_PLANE, or PRIM_SCULPT_TYPE_CYLINDER
-
-PRIM_HOLE_DEFAULT	Sets hole type to match the prim type
-PRIM_HOLE_SQUARE	Sets hole type to square
-PRIM_HOLE_CIRCLE	Sets hole type to circle
-PRIM_HOLE_TRIANGLE	Sets hole type to triangle
-
-PRIM_MATERIAL_STONE		Sets material to stone
-PRIM_MATERIAL_METAL		Sets material to metal
-PRIM_MATERIAL_GLASS		Sets material to glass
-PRIM_MATERIAL_WOOD		Sets material to wood
-PRIM_MATERIAL_FLESH		Sets material to flesh
-PRIM_MATERIAL_PLASTIC	Sets material to plastic
-PRIM_MATERIAL_RUBBER	Sets material to rubber
-PRIM_MATERIAL_LIGHT		Sets material to light
-
-PRIM_SHINY_NONE			No shininess
-PRIM_SHINY_LOW			Low shininess
-PRIM_SHINY_MEDIUM		Medium shininess
-PRIM_SHINY_HIGH			High shininess
-
-PRIM_BUMP_NONE			No bump map
-PRIM_BUMP_BRIGHT		Generate bump map from highlights
-PRIM_BUMP_DARK			Generate bump map from lowlights
-PRIM_BUMP_WOOD			Wood bump map
-PRIM_BUMP_BARK			Bark bump map
-PRIM_BUMP_BRICKS		Brick bump map
-PRIM_BUMP_CHECKER		Checker bump map
-PRIM_BUMP_CONCRETE		Concrete bump map
-PRIM_BUMP_TILE			Tile bump map
-PRIM_BUMP_STONE			Stone bump map
-PRIM_BUMP_DISKS			Disk bump map
-PRIM_BUMP_GRAVEL		Gravel bump map
-PRIM_BUMP_BLOBS			Blob bump map
-PRIM_BUMP_SIDING		Siding bump map
-PRIM_BUMP_LARGETILE		Large tile bump map
-PRIM_BUMP_STUCCO		Stucco bump map
-PRIM_BUMP_SUCTION		Suction cup bump map
-PRIM_BUMP_WEAVE			Weave bump map
-
-PRIM_TEXGEN_DEFAULT		Default texture mapping
-PRIM_TEXGEN_PLANAR		Planar texture mapping
-
-PRIM_SCULPT_TYPE_SPHERE		Stitch edges in a sphere-like way
-PRIM_SCULPT_TYPE_TORUS		Stitch edges in a torus-like way
-PRIM_SCULPT_TYPE_PLANE		Do not stitch edges
-PRIM_SCULPT_TYPE_CYLINDER	Stitch edges in a cylinder-like way
-PRIM_SCULPT_TYPE_MASK		Mask used to determine stitching type
-PRIM_SCULPT_FLAG_INVERT     Flag to specify that the surface normals should be inverted
-PRIM_SCULPT_FLAG_MIRROR     Flag to specify that the prim should be reflected along X axis
-
-MASK_BASE				Base permissions
-MASK_OWNER				Owner permissions
-MASK_GROUP				Group permissions
-MASK_EVERYONE			Everyone permissions
-MASK_NEXT				Next owner permissions
-
-PERM_TRANSFER			Transfer permission
-PERM_MODIFY				Modify permission
-PERM_COPY				Copy permission
-PERM_MOVE				Move permission
-PERM_ALL				Move/Modify/Copy/Transfer permissions
-
-PARCEL_MEDIA_COMMAND_STOP  Stop media stream
-PARCEL_MEDIA_COMMAND_PAUSE Pause media stream
-PARCEL_MEDIA_COMMAND_PLAY  Play media stream
-PARCEL_MEDIA_COMMAND_LOOP  Loop media stream
-PARCEL_MEDIA_COMMAND_TEXTURE  Get or set the parcel's media texture
-PARCEL_MEDIA_COMMAND_URL  Get or set the parcel's media url
-PARCEL_MEDIA_COMMAND_TYPE Get or set the parcel's media mimetype
-PARCEL_MEDIA_COMMAND_DESC Get or set the parcel's media description
-PARCEL_MEDIA_COMMAND_TIME Set media stream to specific time
-PARCEL_MEDIA_COMMAND_SIZE Get or set the parcel's media pixel resolution
-PARCEL_MEDIA_COMMAND_AGENT Allows media stream commands to apply to only one agent
-PARCEL_MEDIA_COMMAND_UNLOAD Unloads the media stream
-PARCEL_MEDIA_COMMAND_AUTO_ALIGN Auto aligns the media stream to the texture size.  May cause a performance hit and loss of some visual quality
-
-PAY_HIDE			Used with llSetPayPrice to hide a button
-PAY_DEFAULT			Used with llSetPayPrice to use the default price for a button
-
-LIST_STAT_MAX			Used with llListStatistics to find the largest number in a list
-LIST_STAT_MIN			Used with llListStatistics to find the smallest number in a list
-LIST_STAT_MEAN			Used with llListStatistics to find the mean of the numbers in a list
-LIST_STAT_MEDIAN			Used with llListStatistics to find the median of the numbers in a list
-LIST_STAT_STD_DEV		Used with llListStatistics to find the standard deviation of the numbers in a list
-LIST_STAT_SUM			Used with llListStatistics to find the sum of the numbers in a list
-LIST_STAT_SUM_SQUARES	Used with llListStatistics to find the sum of the squares of the numbers in a list
-LIST_STAT_NUM_COUNT		Used with llListStatistics to find how many numbers are in a list
-LIST_STAT_GEOMETRIC_MEAN	Used with llListStatistics to find the geometric mean of the numbers in a list (all numbers must be > 0)
-LIST_STAT_RANGE			Used with llListStatistics to find the range of the numbers in a list
-
-PARCEL_FLAG_ALLOW_FLY				Used with llGetParcelFlags to find if a parcel allows flying
-PARCEL_FLAG_ALLOW_GROUP_SCRIPTS		Used with llGetParcelFlags to find if a parcel allows group scripts
-PARCEL_FLAG_ALLOW_SCRIPTS			Used with llGetParcelFlags to find if a parcel allows outside scripts
-PARCEL_FLAG_ALLOW_LANDMARK			Used with llGetParcelFlags to find if a parcel allows landmarks to be created
-PARCEL_FLAG_ALLOW_TERRAFORM			Used with llGetParcelFlags to find if a parcel allows anyone to terraform the land
-PARCEL_FLAG_ALLOW_DAMAGE			Used with llGetParcelFlags to find if a parcel allows damage
-PARCEL_FLAG_ALLOW_CREATE_OBJECTS	Used with llGetParcelFlags to find if a parcel allows anyone to create objects
-PARCEL_FLAG_ALLOW_CREATE_GROUP_OBJECTS	Used with llGetParcelFlags to find if a parcel allows group members or objects to create objects
-PARCEL_FLAG_USE_ACCESS_GROUP		Used with llGetParcelFlags to find if a parcel limits access to a group
-PARCEL_FLAG_USE_ACCESS_LIST			Used with llGetParcelFlags to find if a parcel limits access to a list of residents
-PARCEL_FLAG_USE_BAN_LIST			Used with llGetParcelFlags to find if a parcel uses a ban list
-PARCEL_FLAG_USE_LAND_PASS_LIST		Used with llGetParcelFlags to find if a parcel allows passes to be purchased
-PARCEL_FLAG_LOCAL_SOUND_ONLY		Used with llGetParcelFlags to find if a parcel restricts spacialized sound to the parcel
-PARCEL_FLAG_RESTRICT_PUSHOBJECT		Used with llGetParcelFlags to find if a parcel restricts llPushObject() calls
-PARCEL_FLAG_ALLOW_ALL_OBJECT_ENTRY		Used with llGetParcelFlags to find if a parcel allows all objects to enter
-PARCEL_FLAG_ALLOW_GROUP_OBJECT_ENTRY	Used with llGetParcelFlags to find if a parcel only allows group (and owner) objects to enter
-
-REGION_FLAG_ALLOW_DAMAGE			Used with llGetRegionFlags to find if a region is entirely damage enabled
-REGION_FLAG_FIXED_SUN				Used with llGetRegionFlags to find if a region has a fixed sun position
-REGION_FLAG_BLOCK_TERRAFORM			Used with llGetRegionFlags to find if a region terraforming disabled
-REGION_FLAG_SANDBOX					Used with llGetRegionFlags to find if a region is a sandbox
-REGION_FLAG_DISABLE_COLLISIONS		Used with llGetRegionFlags to find if a region has disabled collisions
-REGION_FLAG_DISABLE_PHYSICS			Used with llGetRegionFlags to find if a region has disabled physics
-REGION_FLAG_BLOCK_FLY				Used with llGetRegionFlags to find if a region blocks flying
-REGION_FLAG_ALLOW_DIRECT_TELEPORT	Used with llGetRegionFlags to find if a region allows direct teleports
-REGION_FLAG_RESTRICT_PUSHOBJECT		Used with llGetRegionFlags to find if a region restricts llPushObject() calls
-
-HTTP_METHOD                         Used with llHTTPRequest to specify the method, such as "GET" or "POST"
-HTTP_MIMETYPE                       Used with llHTTPRequest to specify the MIME type, defaults to "text/plain"
-HTTP_BODY_MAXLENGTH                 Used with llHTTPRequest to specify the maximum response body to return
-HTTP_VERIFY_CERT                    Used with llHTTPRequest to specify SSL certificate verification
-HTTP_BODY_TRUNCATED                 Used with http_response to indicate truncation point in bytes
-
-PARCEL_COUNT_TOTAL		Used with llGetParcelPrimCount to get the total number of prims on the parcel
-PARCEL_COUNT_OWNER		Used with llGetParcelPrimCount to get the number of prims on the parcel owned by the owner
-PARCEL_COUNT_GROUP		Used with llGetParcelPrimCount to get the number of prims on the parcel owned by the group
-PARCEL_COUNT_OTHER		Used with llGetParcelPrimCount to get the number of prims on the parcel owned by others
-PARCEL_COUNT_SELECTED	Used with llGetParcelPrimCount to get the number of prims on the parcel currently selected or sat upon
-PARCEL_COUNT_TEMP		Used with llGetParcelPrimCount to get the number of prims on the parcel that are temp on rez
-
-PARCEL_DETAILS_NAME		Used with llGetParcelDetails to get the parcel name
-PARCEL_DETAILS_DESC		Used with llGetParcelDetails to get the parcel description
-PARCEL_DETAILS_OWNER	Used with llGetParcelDetails to get the parcel owner id
-PARCEL_DETAILS_GROUP	Used with llGetParcelDetails to get the parcel group id
-PARCEL_DETAILS_AREA		Used with llGetParcelDetails to get the parcel area in square meters
-PARCEL_DETAILS_ID		Used with llGetParcelDetails to get the parcel id
-PARCEL_DETAILS_SEE_AVATARS	Used with llGetParcelDetails to get the avatars visibility setting
-
-STRING_TRIM_HEAD		Used with llStringTrim to trim leading spaces from a string
-STRING_TRIM_TAIL		Used with llStringTrim to trim trailing spaces from a string
-STRING_TRIM				Used with llStringTrim to trim both leading and trailing spaces from a string
-
-CLICK_ACTION_NONE       Used with llSetClickAction to disable the click action
-CLICK_ACTION_TOUCH      Used with llSetClickAction to set touch as the default action when object is clicked
-CLICK_ACTION_SIT        Used with llSetClickAction to set sit as the default action when object is clicked
-CLICK_ACTION_BUY        Used with llSetClickAction to set buy as the default action when object is clicked
-CLICK_ACTION_PAY        Used with llSetClickAction to set pay as the default action when object is clicked
-CLICK_ACTION_OPEN       Used with llSetClickAction to set open as the default action when object is clicked
-CLICK_ACTION_PLAY       Used with llSetClickAction to set play as the default action when object is clicked
-CLICK_ACTION_OPEN_MEDIA Used with llSetClickAction to set open-media as the default action when object is clicked
-CLICK_ACTION_ZOOM       Used with llSetClickAction to set zoom in as the default action when object is clicked
-
-TOUCH_INVALID_TEXCOORD  Value returned by llDetectedTouchUV() and llDetectedTouchST() when the touch position is not valid
-TOUCH_INVALID_VECTOR    Value returned by llDetectedTouchPos(), llDetectedTouchNormal(), and llDetectedTouchBinormal() when the touch position is not valid
-TOUCH_INVALID_FACE      Value returned by llDetectedTouchFace() when the touch position is not valid
-
-PRIM_MEDIA_ALT_IMAGE_ENABLE            Used with ll{Get,Set}PrimMediaParams to enable the default alt image for media 
-PRIM_MEDIA_CONTROLS                    Used with ll{Get,Set}PrimMediaParams to determine the controls shown for media
-PRIM_MEDIA_CURRENT_URL                 Used with ll{Get,Set}PrimMediaParams to navigate/access the current URL
-PRIM_MEDIA_HOME_URL                    Used with ll{Get,Set}PrimMediaParams to access the home URL
-PRIM_MEDIA_AUTO_LOOP                   Used with ll{Get,Set}PrimMediaParams to determine if media should auto-loop (if applicable)
-PRIM_MEDIA_AUTO_PLAY                   Used with ll{Get,Set}PrimMediaParams to determine if media should start playing as soon as it is created
-PRIM_MEDIA_AUTO_SCALE                  Used with ll{Get,Set}PrimMediaParams to determine if media should scale to fit the face it is on 
-PRIM_MEDIA_AUTO_ZOOM                   Used with ll{Get,Set}PrimMediaParams to determine if the user would zoom in when viewing media
-PRIM_MEDIA_FIRST_CLICK_INTERACT        Used with ll{Get,Set}PrimMediaParams to determine whether the user interacts with media or not when she first clicks it (versus selection)
-PRIM_MEDIA_WIDTH_PIXELS                Used with ll{Get,Set}PrimMediaParams to access the media's width in pixels
-PRIM_MEDIA_HEIGHT_PIXELS               Used with ll{Get,Set}PrimMediaParams to access the media's height in pixels
-PRIM_MEDIA_WHITELIST_ENABLE            Used with ll{Get,Set}PrimMediaParams to determine if the domain whitelist is enabled
-PRIM_MEDIA_WHITELIST                   Used with ll{Get,Set}PrimMediaParams to access the media's list of allowable URL prefixes to navigate to
-PRIM_MEDIA_PERMS_INTERACT              Used with ll{Get,Set}PrimMediaParams to determine the permissions for who can interact with the media
-PRIM_MEDIA_PERMS_CONTROL               Used with ll{Get,Set}PrimMediaParams to determine the permissions for who has controls
-PRIM_MEDIA_PARAM_MAX                   The value of the largest media param
-
-PRIM_MEDIA_CONTROLS_STANDARD           Used with ll{Get,Set}PrimMediaParams, a PRIM_MEDIA_CONTROLS value meaning "standard controls"
-PRIM_MEDIA_CONTROLS_MINI               Used with ll{Get,Set}PrimMediaParams, a PRIM_MEDIA_CONTROLS value meaning "mini controls"              
-
-PRIM_MEDIA_PERM_NONE                   Used with ll{Get,Set}PrimMediaParams, a PRIM_MEDIA_PERMS_INTERACT or PRIM_MEDIA_PERMS_CONTROL bit, no permissions
-PRIM_MEDIA_PERM_OWNER                  Used with ll{Get,Set}PrimMediaParams, a PRIM_MEDIA_PERMS_INTERACT or PRIM_MEDIA_PERMS_CONTROL bit, owner permissions
-PRIM_MEDIA_PERM_GROUP                  Used with ll{Get,Set}PrimMediaParams, a PRIM_MEDIA_PERMS_INTERACT or PRIM_MEDIA_PERMS_CONTROL bit, group permissions
-PRIM_MEDIA_PERM_ANYONE                 Used with ll{Get,Set}PrimMediaParams, a PRIM_MEDIA_PERMS_INTERACT or PRIM_MEDIA_PERMS_CONTROL bit, anyone has permissions
-
-PRIM_MEDIA_MAX_URL_LENGTH              Used with ll{Get,Set}PrimMediaParams, the maximum length of PRIM_MEDIA_CURRENT_URL or PRIM_MEDIA_HOME_URL
-PRIM_MEDIA_MAX_WHITELIST_SIZE          Used with ll{Get,Set}PrimMediaParams, the maximum length, in bytes, of PRIM_MEDIA_WHITELIST
-PRIM_MEDIA_MAX_WHITELIST_COUNT         Used with ll{Get,Set}PrimMediaParams, the maximum number of items allowed in PRIM_MEDIA_WHITELIST
-PRIM_MEDIA_MAX_WIDTH_PIXELS            Used with ll{Get,Set}PrimMediaParams, the maximum width allowed in PRIM_MEDIA_WIDTH_PIXELS
-PRIM_MEDIA_MAX_HEIGHT_PIXELS           Used with ll{Get,Set}PrimMediaParams, the maximum width allowed in PRIM_MEDIA_HEIGHT_PIXELS
-
-STATUS_OK                              Result of function call was success
-STATUS_MALFORMED_PARAMS                Function was called with malformed params
-STATUS_TYPE_MISMATCH                   Argument(s) passed to function had a type mismatch
-STATUS_BOUNDS_ERROR                    Argument(s) passed to function had a bounds error 
-STATUS_NOT_FOUND                       Object or other item was not found
-STATUS_NOT_SUPPORTED                   Feature not supported
-STATUS_INTERNAL_ERROR                  An internal error occurred
-STATUS_WHITELIST_FAILED                URL failed to pass whitelist
-
-PROFILE_NONE               Disables profiling
-PROFILE_SCRIPT_MEMORY      Enables memory profiling
-
-RC_DATA_FLAGS          TODO: add documentation
-RC_DETECT_PHANTOM      TODO: add documentation
-RC_GET_LINK_NUM        TODO: add documentation
-RC_GET_NORMAL          TODO: add documentation
-RC_GET_ROOT_KEY        TODO: add documentation
-RC_MAX_HITS            TODO: add documentation
-RC_REJECT_TYPES			Optional parameter set in llCastRay() to reject hit against certain object types.
-RC_REJECT_AGENTS		Bit mask for RC_REJECT_TYPES, rejects hits against avatars.
-RC_REJECT_PHYSICAL		Bit mask for RC_REJECT_TYPES, rejects hits against moving objects.
-RC_REJECT_NONPHYSICAL	Bit mask for RC_REJECT_TYPES, rejects hits against non-moving objects.
-RC_REJECT_LAND			Bit mask for RC_REJECT_TYPES, rejects hits against the terrian.
-
-RCERR_CAST_TIME_EXCEEDED    TODO: add documentation
-RCERR_SIM_PERF_LOW          TODO: add documentation
-RCERR_UNKNOWN               TODO: add documentation
-
-ESTATE_ACCESS_ALLOWED_AGENT_ADD    TODO: add documentation
-ESTATE_ACCESS_ALLOWED_AGENT_REMOVE TODO: add documentation
-ESTATE_ACCESS_ALLOWED_GROUP_ADD    TODO: add documentation
-ESTATE_ACCESS_ALLOWED_GROUP_REMOVE TODO: add documentation
-ESTATE_ACCESS_BANNED_AGENT_ADD     TODO: add documentation
-ESTATE_ACCESS_BANNED_AGENT_REMOVE  TODO: add documentation
-
-DENSITY 			TODO: add documentation
-FRICTION 			TODO: add documentation
-RESTITUTION 		TODO: add documentation
-GRAVITY_MULTIPLIER 	TODO: add documentation
-
-KFM_COMMAND			TODO: add documentation
-KFM_CMD_PLAY		TODO: add documentation
-KFM_CMD_STOP		TODO: add documentation
-KFM_CMD_PAUSE		TODO: add documentation
-KFM_CMD_SET_MODE	TODO: add documentation
-KFM_MODE			TODO: add documentation
-KFM_FORWARD			TODO: add documentation
-KFM_LOOP			TODO: add documentation
-KFM_PING_PONG		TODO: add documentation
-KFM_REVERSE			TODO: add documentation
-KFM_DATA			TODO: add documentation
-KFM_ROTATION		TODO: add documentation
-KFM_TRANSLATION		TODO: add documentation
-
-CHARACTER_CMD_STOP	TODO: add documentation
-CHARACTER_CMD_JUMP	TODO: add documentation
-
-CHARACTER_DESIRED_SPEED		TODO: add documentation
-CHARACTER_RADIUS			TODO: add documentation
-CHARACTER_LENGTH			TODO: add documentation
-CHARACTER_ORIENTATION		TODO: add documentation
-CHARACTER_AVOIDANCE_MODE	TODO: add documentation
-PURSUIT_OFFSET				TODO: add documentation
-REQUIRE_LINE_OF_SIGHT		TODO: add documentation
-PURSUIT_FUZZ_FACTOR			TODO: add documentation
-PURSUIT_INTERCEPT			TODO: add documentation
-FORCE_DIRECT_PATH			TODO: add documentation
-VERTICAL					TODO: add documentation
-HORIZONTAL					TODO: add documentation
-AVOID_CHARACTERS			TODO: add documentation
-AVOID_DYNAMIC_OBSTACLES		TODO: add documentation
-
-PU_EVADE_HIDDEN                  Triggered when an llEvade character thinks it has hidden from its pursuer.
-PU_EVADE_SPOTTED                 Triggered when an llEvade character switches from hiding to running
-PU_FAILURE_INVALID_GOAL          Goal is not on the navigation-mesh and cannot be reached.
-PU_FAILURE_INVALID_START         Character cannot navigate from the current location - e.g., the character is off the navmesh or too high above it.
-PU_FAILURE_NO_VALID_DESTINATION  There's no good place for the character to go - e.g., it is patrolling and all the patrol points are now unreachable.
-PU_FAILURE_OTHER			     Unknown failure
-PU_FAILURE_TARGET_GONE           Target (for llPursue or llEvade) can no longer be tracked - e.g., it left the region or is an avatar that is now more than about 30m outside the region.
-PU_FAILURE_UNREACHABLE           Goal is no longer reachable for some reason - e.g., an obstacle blocks the path.
-PU_GOAL_REACHED                  Character has reached the goal and will stop or choose a new goal (if wandering).
-PU_SLOWDOWN_DISTANCE_REACHED     Character is near current goal.
-
-CHARACTER_TYPE			TODO: add documentation
-CHARACTER_TYPE_A		TODO: add documentation
-CHARACTER_TYPE_B		TODO: add documentation
-CHARACTER_TYPE_C		TODO: add documentation
-CHARACTER_TYPE_D		TODO: add documentation
-CHARACTER_TYPE_NONE		TODO: add documentation
-
-TRAVERSAL_TYPE			TODO: add documentation
-TRAVERSAL_TYPE_SLOW		TODO: add documentation
-TRAVERSAL_TYPE_FAST		TODO: add documentation
-TRAVERSAL_TYPE_NONE		TODO: add documentation
-
-CHARACTER_MAX_ACCEL				TODO: add documentation
-CHARACTER_MAX_DECEL				TODO: add documentation
-CHARACTER_MAX_ANGULAR_SPEED		TODO: add documentation
-CHARACTER_MAX_ANGULAR_ACCEL		TODO: add documentation
-CHARACTER_TURN_SPEED_MULTIPLIER	TODO: add documentation
-
-# string constants
-[word .1, .3, .5]
-NULL_KEY			Indicates an empty key
-EOF					Indicates the last line of a notecard was read
-TEXTURE_BLANK			UUID for the "Blank" texture
-TEXTURE_DEFAULT			Alias for TEXTURE_PLYWOOD
-TEXTURE_MEDIA			UUID for the "Default Media" texture
-TEXTURE_PLYWOOD			UUID for the default "Plywood" texture
-TEXTURE_TRANSPARENT		UUID for the "White - Transparent" texture
-
-URL_REQUEST_GRANTED		Used with http_request when a public URL is successfully granted
-URL_REQUEST_DENIED		Used with http_request when a public URL is not available
-
-# float constants
-[word .3, .1, .5]
-PI					3.1415926535897932384626433832795
-TWO_PI				6.283185307179586476925286766559
-PI_BY_TWO			1.5707963267948966192313216916398
-DEG_TO_RAD			To convert from degrees to radians
-RAD_TO_DEG			To convert from radians to degrees
-SQRT2				1.4142135623730950488016887242097
-
-# compound constants
-[word .4, .2, .4]
-ZERO_VECTOR			<0.0, 0.0, 0.0>
-ZERO_ROTATION		<0.0, 0.0, 0.0, 1.0>
-
-
-# flow control keywords
-[word 0, 0, .8]
-for					for loop:for (initializer; test; iteration):{:   statements:}
-do					do loop:do:{:   statements:} while (test);
-while				while loop:while (test):{    statements:}
-if					if statement:if (test):{    statements:}
-else				else clause:if (test):{    statements:}:else:{    statements:}
-jump				jump statement:jump label;:
-return				Leave current function or event handler
-
-# flow control label
-[line 0, 0, .8]
-@					Label:Target for jump statement
-
-# Comment
-[one_sided_delimiter .8, .3, .15]
-//					Comment:Non-functional commentary or disabled code
-[two_sided_delimiter .8, .3, .15]
-/* */				Comment:Non-functional commentary or disabled code
-
-# String literals
-[double_quotation_marks 0, .2, 0]
-"					String literal
-
-#functions are supplied by the program now
diff --git a/indra/newview/app_settings/keywords_lsl_colors.xml b/indra/newview/app_settings/keywords_lsl_colors.xml
new file mode 100644
index 0000000000..d150f0850f
--- /dev/null
+++ b/indra/newview/app_settings/keywords_lsl_colors.xml
@@ -0,0 +1,176 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-model href="llsd.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
+<llsd>
+    <map>
+        <key>types</key>
+        <map>
+            <key>color</key>
+            <array>
+                <real>0.1</real>
+                <real>0.3</real>
+                <real>0.1</real>
+            </array>
+        </map>
+        
+        <key>constants</key>
+        <map>
+            <key>float</key>
+            <map>
+                <key>color</key>
+                <array>
+                    <real>0.3</real>
+                    <real>0.1</real>
+                    <real>0.5</real>
+                </array>
+            </map>
+            <key>integer</key>
+            <map>
+                <key>color</key>
+                <array>
+                    <real>0.1</real>
+                    <real>0.1</real>
+                    <real>0.5</real>
+                </array>
+            </map>
+            <key>key</key>
+            <map>
+                <key>color</key>
+                <array>
+                    <real>0.1</real>
+                    <real>0.3</real>
+                    <real>0.5</real>
+                </array>
+            </map>
+            <key>rotation</key>
+            <map>
+                <key>color</key>
+                <array>
+                    <real>0.4</real>
+                    <real>0.2</real>
+                    <real>0.4</real>
+                </array>
+            </map>
+            <key>string</key>
+            <map>
+                <key>color</key>
+                <array>
+                    <real>0.1</real>
+                    <real>0.3</real>
+                    <real>0.5</real>
+                </array>
+            </map>
+            <key>vector</key>
+            <map>
+                <key>color</key>
+                <array>
+                    <real>0.4</real>
+                    <real>0.2</real>
+                    <real>0.4</real>
+                </array>
+            </map>
+        </map>
+ 
+        <key>misc</key>
+        <map>
+            <key>flow-control</key>
+            <map>
+                <key>color</key>
+                <array>
+                    <real>0.0</real>
+                    <real>0.0</real>
+                    <real>0.8</real>
+                </array>
+            </map>
+            
+            <key>comments_1_sided</key>
+            <map>
+                <key>color</key>
+                <array>
+                    <real>0.8</real>
+                    <real>0.3</real>
+                    <real>0.15</real>
+                </array>
+            </map>
+            
+            <key>comments_2_sided</key>
+            <map>
+                <key>color</key>
+                <array>
+                    <real>0.8</real>
+                    <real>0.3</real>
+                    <real>0.15</real>
+                </array>
+            </map>
+            
+            <key>flow-label</key>
+            <map>
+                <key>color</key>
+                <array>
+                    <real>0.0</real>
+                    <real>0.0</real>
+                    <real>0.8</real>
+                </array>
+            </map>
+            
+            <key>double_quotation_marks</key>
+            <map>
+                <key>color</key>
+                <array>
+                    <real>0.0</real>
+                    <real>0.2</real>
+                    <real>0.0</real>
+                </array>
+            </map>
+            
+            <key>sections</key>
+            <map>
+                <key>color</key>
+                <array>
+                    <real>0.5</real>
+                    <real>0.1</real>
+                    <real>0.3</real>
+                </array>
+            </map>
+        </map>
+
+        <key>events</key>
+        <map>
+            <key>color</key>
+            <array>
+                <real>0.0</real>
+                <real>0.3</real>
+                <real>0.5</real>
+            </array>
+        </map>
+        
+        <key>functions</key>
+        <map>
+            <key>color</key>
+            <array>
+                <real>0.5</real>
+                <real>0.0</real>
+                <real>0.15</real>
+            </array>
+        </map>
+        
+        <key>deprecated</key>
+        <map>
+            <key>color</key>
+            <array>
+                <real>0.9</real>
+                <real>0.4</real>
+                <real>0.55</real>
+            </array>
+        </map>
+        
+        <key>god_mode</key>
+        <map>
+            <key>color</key>
+            <array>
+                <real>0.7</real>
+                <real>0.2</real>
+                <real>0.35</real>
+            </array>
+        </map>
+    </map>
+</llsd>
diff --git a/indra/newview/app_settings/keywords_lsl_tokens.xml b/indra/newview/app_settings/keywords_lsl_tokens.xml
new file mode 100644
index 0000000000..f33426489b
--- /dev/null
+++ b/indra/newview/app_settings/keywords_lsl_tokens.xml
@@ -0,0 +1,17542 @@
+<?xml version="1.0" encoding="utf-8"?>
+<?xml-model href="llsd-lsl-tokens.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
+<llsd>
+   <map>
+      <key>misc</key>
+      <map>
+         <key>flow-control</key>
+         <array>
+            <string>if</string>
+            <string>else</string>
+            <string>for</string>
+            <string>while</string>
+            <string>do</string>
+            <string>jump</string>
+            <string>return</string>
+         </array>
+         <key>sections</key>
+         <array>
+            <string>default</string>
+            <string>state</string>
+         </array>
+      </map>
+      <key>types</key>
+      <array>
+         <string>float</string>
+         <string>integer</string>
+         <string>key</string>
+         <string>list</string>
+         <string>quaternion</string>
+         <string>rotation</string>
+         <string>string</string>
+         <string>vector</string>
+      </array>
+      <key>constants</key>
+      <map>
+         <key>ACTIVE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x2</integer>
+            <key>description</key>
+            <string>Objects in world that are running a script or currently physically moving.</string>
+         </map>
+         <key>AGENT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x1</integer>
+            <key>description</key>
+            <string>Objects in world that are agents.</string>
+         </map>
+         <key>AGENT_ALWAYS_RUN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x1000</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>AGENT_ATTACHMENTS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x2</integer>
+            <key>description</key>
+            <string>The agent has attachments.</string>
+         </map>
+         <key>AGENT_AUTOPILOT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x2000</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>AGENT_AWAY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x40</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>AGENT_BUSY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x800</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>AGENT_BY_LEGACY_NAME</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x1</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>AGENT_BY_USERNAME</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x10</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>AGENT_CROUCHING</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x400</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>AGENT_FLYING</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x1</integer>
+            <key>description</key>
+            <string>The agent is flying.</string>
+         </map>
+         <key>AGENT_IN_AIR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x100</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>AGENT_LIST_PARCEL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>description</key>
+            <string>Agents on the same parcel where the script is running.</string>
+         </map>
+         <key>AGENT_LIST_PARCEL_OWNER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>description</key>
+            <string>Agents on any parcel in the region where the parcel owner is the same as the owner of the parcel under the scripted object.</string>
+         </map>
+         <key>AGENT_LIST_REGION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>description</key>
+            <string>All agents in the region.</string>
+         </map>
+         <key>AGENT_MOUSELOOK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x8</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>AGENT_ON_OBJECT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x20</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>AGENT_SCRIPTED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x4</integer>
+            <key>description</key>
+            <string>The agent has scripted attachments.</string>
+         </map>
+         <key>AGENT_SITTING</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x10</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>AGENT_TYPING</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x200</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>AGENT_WALKING</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x80</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>ALL_SIDES</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-1</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>ANIM_ON</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x1</integer>
+            <key>description</key>
+            <string>Texture animation is on.</string>
+         </map>
+         <key>ATTACH_BACK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>9</integer>
+            <key>description</key>
+            <string>Attach to the avatar back.</string>
+         </map>
+         <key>ATTACH_BELLY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>28</integer>
+            <key>description</key>
+            <string>Attach to the avatar belly.</string>
+         </map>
+         <key>ATTACH_CHEST</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>description</key>
+            <string>Attach to the avatar chest.</string>
+         </map>
+         <key>ATTACH_CHIN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>12</integer>
+            <key>description</key>
+            <string>Attach to the avatar chin.</string>
+         </map>
+         <key>ATTACH_HEAD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>description</key>
+            <string>Attach to the avatar head.</string>
+         </map>
+         <key>ATTACH_HUD_BOTTOM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>37</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>ATTACH_HUD_BOTTOM_LEFT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>36</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>ATTACH_HUD_BOTTOM_RIGHT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>38</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>ATTACH_HUD_CENTER_1</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>35</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>ATTACH_HUD_CENTER_2</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>31</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>ATTACH_HUD_TOP_CENTER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>33</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>ATTACH_HUD_TOP_LEFT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>34</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>ATTACH_HUD_TOP_RIGHT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>32</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>ATTACH_LEAR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>13</integer>
+            <key>description</key>
+            <string>Attach to the avatar left ear.</string>
+         </map>
+         <key>ATTACH_LEFT_PEC</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>29</integer>
+            <key>description</key>
+            <string>Attach to the avatar left pectoral.</string>
+         </map>
+         <key>ATTACH_LEYE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>15</integer>
+            <key>description</key>
+            <string>Attach to the avatar left eye.</string>
+         </map>
+         <key>ATTACH_LFOOT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>7</integer>
+            <key>description</key>
+            <string>Attach to the avatar left foot.</string>
+         </map>
+         <key>ATTACH_LHAND</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>description</key>
+            <string>Attach to the avatar left hand.</string>
+         </map>
+         <key>ATTACH_LHIP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>25</integer>
+            <key>description</key>
+            <string>Attach to the avatar left hip.</string>
+         </map>
+         <key>ATTACH_LLARM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>21</integer>
+            <key>description</key>
+            <string>Attach to the avatar left lower arm.</string>
+         </map>
+         <key>ATTACH_LLLEG</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>27</integer>
+            <key>description</key>
+            <string>Attach to the avatar lower left leg.</string>
+         </map>
+         <key>ATTACH_LPEC</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>30</integer>
+            <key>description</key>
+            <string>Attach to the avatar right pectoral. (Deprecated, use ATTACH_RIGHT_PEC)</string>
+         </map>
+         <key>ATTACH_LSHOULDER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>description</key>
+            <string>Attach to the avatar left shoulder.</string>
+         </map>
+         <key>ATTACH_LUARM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>20</integer>
+            <key>description</key>
+            <string>Attach to the avatar left upper arm.</string>
+         </map>
+         <key>ATTACH_LULEG</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>27</integer>
+            <key>description</key>
+            <string>Attach to the avatar lower upper leg.</string>
+         </map>
+         <key>ATTACH_MOUTH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>11</integer>
+            <key>description</key>
+            <string>Attach to the avatar mouth.</string>
+         </map>
+         <key>ATTACH_NOSE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>17</integer>
+            <key>description</key>
+            <string>Attach to the avatar nose.</string>
+         </map>
+         <key>ATTACH_PELVIS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>10</integer>
+            <key>description</key>
+            <string>Attach to the avatar pelvis.</string>
+         </map>
+         <key>ATTACH_REAR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>14</integer>
+            <key>description</key>
+            <string>Attach to the avatar right ear.</string>
+         </map>
+         <key>ATTACH_REYE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>16</integer>
+            <key>description</key>
+            <string>Attach to the avatar right eye.</string>
+         </map>
+         <key>ATTACH_RFOOT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>8</integer>
+            <key>description</key>
+            <string>Attach to the avatar right foot.</string>
+         </map>
+         <key>ATTACH_RHAND</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>description</key>
+            <string>Attach to the avatar right hand.</string>
+         </map>
+         <key>ATTACH_RHIP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>22</integer>
+            <key>description</key>
+            <string>Attach to the avatar right hip.</string>
+         </map>
+         <key>ATTACH_RIGHT_PEC</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>30</integer>
+            <key>description</key>
+            <string>Attach to the avatar right pectoral.</string>
+         </map>
+         <key>ATTACH_RLARM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>19</integer>
+            <key>description</key>
+            <string>Attach to the avatar right lower arm.</string>
+         </map>
+         <key>ATTACH_RLLEG</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>24</integer>
+            <key>description</key>
+            <string>Attach to the avatar right lower leg.</string>
+         </map>
+         <key>ATTACH_RPEC</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>29</integer>
+            <key>description</key>
+            <string>Attach to the avatar left pectoral. (deprecated, use ATTACH_LEFT_PEC)</string>
+         </map>
+         <key>ATTACH_RSHOULDER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>description</key>
+            <string>Attach to the avatar right shoulder.</string>
+         </map>
+         <key>ATTACH_RUARM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>18</integer>
+            <key>description</key>
+            <string>Attach to the avatar right upper arm.</string>
+         </map>
+         <key>ATTACH_RULEG</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>23</integer>
+            <key>description</key>
+            <string>Attach to the avatar right upper leg.</string>
+         </map>
+         <key>AVOID_CHARACTERS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>AVOID_DYNAMIC_OBSTACLES</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>CAMERA_ACTIVE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>12</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>CAMERA_BEHINDNESS_ANGLE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>8</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>CAMERA_BEHINDNESS_LAG</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>9</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>CAMERA_DISTANCE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>7</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>CAMERA_FOCUS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>17</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>CAMERA_FOCUS_LAG</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>CAMERA_FOCUS_LOCKED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>22</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>CAMERA_FOCUS_OFFSET</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>CAMERA_FOCUS_THRESHOLD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>11</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>CAMERA_PITCH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>CAMERA_POSITION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>13</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>CAMERA_POSITION_LAG</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>CAMERA_POSITION_LOCKED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>22</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>CAMERA_POSITION_THRESHOLD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>10</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>CHANGED_ALLOWED_DROP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x40</integer>
+            <key>description</key>
+            <string>The object inventory has changed because an item was added through the llAllowInventoryDrop interface.</string>
+         </map>
+         <key>CHANGED_COLOR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x2</integer>
+            <key>description</key>
+            <string>The object colour has changed.</string>
+         </map>
+         <key>CHANGED_INVENTORY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x1</integer>
+            <key>description</key>
+            <string>The object inventory has changed.</string>
+         </map>
+         <key>CHANGED_LINK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x20</integer>
+            <key>description</key>
+            <string>The object has linked or its links were broken.</string>
+         </map>
+         <key>CHANGED_MEDIA</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2048</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>CHANGED_OWNER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x80</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>CHANGED_REGION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x100</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>CHANGED_REGION_START</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x400</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>CHANGED_SCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x8</integer>
+            <key>description</key>
+            <string>The object scale (size) has changed.</string>
+         </map>
+         <key>CHANGED_SHAPE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x4</integer>
+            <key>description</key>
+            <string>The object base shape has changed, e.g., a box to a cylinder.</string>
+         </map>
+         <key>CHANGED_TELEPORT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x200</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>CHANGED_TEXTURE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x10</integer>
+            <key>description</key>
+            <string>The texture offset, scale rotation, or simply the object texture has changed.</string>
+         </map>
+         <key>CHARACTER_AVOIDANCE_MODE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>description</key>
+            <string>Allows you to specify that a character should not try to avoid other characters, should not try to avoid dynamic obstacles (relatively fast moving objects and avatars), or both.</string>
+         </map>
+         <key>CHARACTER_CMD_JUMP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x01</integer>
+            <key>description</key>
+            <string>Makes the character jump. Requires an additional parameter, the height to jump, between 0.1m and 2.0m. This must be provided as the first element of the llExecCharacterCmd option list.</string>
+         </map>
+         <key>CHARACTER_CMD_SMOOTH_STOP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>CHARACTER_CMD_STOP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x00</integer>
+            <key>description</key>
+            <string>Stops any current pathfinding operation.</string>
+         </map>
+         <key>CHARACTER_DESIRED_SPEED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>description</key>
+            <string>Speed of pursuit in meters per second.</string>
+         </map>
+         <key>CHARACTER_DESIRED_TURN_SPEED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>12</integer>
+            <key>description</key>
+            <string>The character's maximum speed while turning about the Z axis. - Note that this is only loosely enforced.</string>
+         </map>
+         <key>CHARACTER_LENGTH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>description</key>
+            <string>Set collision capsule length - cannot be less than two times the radius.</string>
+         </map>
+         <key>CHARACTER_MAX_ACCEL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>8</integer>
+            <key>description</key>
+            <string>The character's maximum acceleration rate.</string>
+         </map>
+         <key>CHARACTER_MAX_DECEL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>9</integer>
+            <key>description</key>
+            <string>The character's maximum deceleration rate.</string>
+         </map>
+         <key>CHARACTER_MAX_SPEED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>13</integer>
+            <key>description</key>
+            <string>The character's maximum speed.</string>
+         </map>
+         <key>CHARACTER_MAX_TURN_RADIUS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>10</integer>
+            <key>description</key>
+            <string>The character's turn radius when travelling at CHARACTER_MAX_TURN_SPEED.</string>
+         </map>
+         <key>CHARACTER_ORIENTATION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>description</key>
+            <string>Valid options are: VERTICAL, HORIZONTAL.</string>
+         </map>
+         <key>CHARACTER_RADIUS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>description</key>
+            <string>Set collision capsule radius.</string>
+         </map>
+         <key>CHARACTER_TYPE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>description</key>
+            <string>Specifies which walk-ability coefficient will be used by this character.</string>
+         </map>
+         <key>CHARACTER_TYPE_A</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>CHARACTER_TYPE_B</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>CHARACTER_TYPE_C</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>CHARACTER_TYPE_D</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>CHARACTER_TYPE_NONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>CLICK_ACTION_BUY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>description</key>
+            <string>When the prim is clicked, the buy dialog is opened.</string>
+         </map>
+         <key>CLICK_ACTION_NONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>description</key>
+            <string>Performs the default action: when the prim is clicked, touch events are triggered".</string>
+         </map>
+         <key>CLICK_ACTION_OPEN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>description</key>
+            <string>When the prim is clicked, the object inventory dialog is opened.</string>
+         </map>
+         <key>CLICK_ACTION_OPEN_MEDIA</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>description</key>
+            <string>When the prim is touched, the web media dialog is opened".</string>
+         </map>
+         <key>CLICK_ACTION_PAY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>description</key>
+            <string>When the prim is clicked, the pay dialog is opened.</string>
+         </map>
+         <key>CLICK_ACTION_PLAY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>description</key>
+            <string>When the prim is clicked, html-on-a-prim is enabled?</string>
+         </map>
+         <key>CLICK_ACTION_SIT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>description</key>
+            <string>When the prim is clicked, the avatar sits upon it.</string>
+         </map>
+         <key>CLICK_ACTION_TOUCH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>description</key>
+            <string>When the prim is clicked, touch events are triggered".</string>
+         </map>
+         <key>CONTENT_TYPE_HTML</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>description</key>
+            <string>"text/html", only valid for embedded browsers on content owned by the person viewing. Falls back to "text/plain" otherwise.</string>
+         </map>
+         <key>CONTENT_TYPE_TEXT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>description</key>
+            <string>"text/plain"</string>
+         </map>
+         <key>CONTROL_BACK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x2</integer>
+            <key>description</key>
+            <string>Test for the avatar move back control.</string>
+         </map>
+         <key>CONTROL_DOWN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x20</integer>
+            <key>description</key>
+            <string>Test for the avatar move down control.</string>
+         </map>
+         <key>CONTROL_FWD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x1</integer>
+            <key>description</key>
+            <string>Test for the avatar move forward control.</string>
+         </map>
+         <key>CONTROL_LBUTTON</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x10000000</integer>
+            <key>description</key>
+            <string>Test for the avatar left button control.</string>
+         </map>
+         <key>CONTROL_LEFT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x4</integer>
+            <key>description</key>
+            <string>Test for the avatar move left control.</string>
+         </map>
+         <key>CONTROL_ML_LBUTTON</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x40000000</integer>
+            <key>description</key>
+            <string>Test for the avatar left button control while in mouse look.</string>
+         </map>
+         <key>CONTROL_RIGHT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x8</integer>
+            <key>description</key>
+            <string>Test for the avatar move right control.</string>
+         </map>
+         <key>CONTROL_ROT_LEFT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x100</integer>
+            <key>description</key>
+            <string>Test for the avatar rotate left control.</string>
+         </map>
+         <key>CONTROL_ROT_RIGHT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x200</integer>
+            <key>description</key>
+            <string>Test for the avatar rotate right control.</string>
+         </map>
+         <key>CONTROL_UP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x10</integer>
+            <key>description</key>
+            <string>Test for the avatar move up control.</string>
+         </map>
+         <key>DATA_BORN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>description</key>
+            <string>The date the agent was born, returned in ISO 8601 format of YYYY-MM-DD.</string>
+         </map>
+         <key>DATA_NAME</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>description</key>
+            <string>The name of the agent.</string>
+         </map>
+         <key>DATA_ONLINE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>description</key>
+            <string>TRUE for online, FALSE for offline.</string>
+         </map>
+         <key>DATA_PAYINFO</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>8</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>DATA_RATING</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>description</key>
+            <string>Returns the agent ratings as a comma separated string of six integers. They are:
+			1) Positive rated behaviour
+			2) Negative rated behaviour
+			3) Positive rated appearance
+			4) Negative rated appearance
+			5) Positive rated building
+			6) Negative rated building</string>
+         </map>
+         <key>DATA_SIM_POS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>DATA_SIM_RATING</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>7</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>DATA_SIM_STATUS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>DEBUG_CHANNEL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2147483647</integer>
+            <key>description</key>
+            <string>DEBUG_CHANNEL is an integer constant that, when passed to llSay, llWhisper, or llShout as a channel parameter, will print text to the Script Warning/Error Window.</string>
+         </map>
+         <key>DEG_TO_RAD</key>
+         <map>
+            <key>type</key>
+            <string>float</string>
+            <key>value</key>
+            <real>0.01745329</real>
+            <key>description</key>
+            <string>0.01745329 - Number of radians per degree.
+			You can use this to convert degrees to radians by multiplying the degrees by this number.</string>
+         </map>
+         <key>DENSITY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>description</key>
+            <string>Used with llSetPhysicsMaterial to enable the density value. Must be between 1.0 and 22587.0 (in Kg/m^3 -- see if you can figure out what 22587 represents)</string>
+         </map>
+         <key>EOF</key>
+         <map>
+            <key>type</key>
+            <string>string</string>
+            <key>value</key>
+            <string>\n\n\n</string>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>ESTATE_ACCESS_ALLOWED_AGENT_ADD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>description</key>
+            <string>Add the agent to this estate's Allowed Residents list.</string>
+         </map>
+         <key>ESTATE_ACCESS_ALLOWED_AGENT_REMOVE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>8</integer>
+            <key>description</key>
+            <string>Remove the agent from this estate's Allowed Residents list.</string>
+         </map>
+         <key>ESTATE_ACCESS_ALLOWED_GROUP_ADD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>16</integer>
+            <key>description</key>
+            <string>Add the group to this estate's Allowed groups list.</string>
+         </map>
+         <key>ESTATE_ACCESS_ALLOWED_GROUP_REMOVE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>32</integer>
+            <key>description</key>
+            <string>Remove the group from this estate's Allowed groups list.</string>
+         </map>
+         <key>ESTATE_ACCESS_BANNED_AGENT_ADD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>64</integer>
+            <key>description</key>
+            <string>Add the agent to this estate's Banned residents list.</string>
+         </map>
+         <key>ESTATE_ACCESS_BANNED_AGENT_REMOVE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>128</integer>
+            <key>description</key>
+            <string>Remove the agent from this estate's Banned residents list.</string>
+         </map>
+         <key>FALSE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>description</key>
+            <string>An integer constant for boolean comparisons. Has the value '0'.</string>
+         </map>
+         <key>FORCE_DIRECT_PATH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>description</key>
+            <string>Makes character navigate in a straight line toward position. May be set to TRUE or FALSE.</string>
+         </map>
+         <key>FRICTION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>description</key>
+            <string>Used with llSetPhysicsMaterial to enable the friction value. Must be between 0.0 and 255.0</string>
+         </map>
+         <key>GET_NAV_POINT_RADIUS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>GRAVITY_MULTIPLIER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>8</integer>
+            <key>description</key>
+            <string>Used with llSetPhysicsMaterial to enable the gravity multiplier value. Must be between -1.0 and +28.0</string>
+         </map>
+         <key>HORIZONTAL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>HTTP_BODY_MAXLENGTH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>HTTP_BODY_TRUNCATED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>HTTP_METHOD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>HTTP_MIMETYPE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>HTTP_VERBOSE_THROTTLE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>HTTP_VERIFY_CERT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>INVENTORY_ALL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-1</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>INVENTORY_ANIMATION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>20</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>INVENTORY_BODYPART</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>13</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>INVENTORY_CLOTHING</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>INVENTORY_GESTURE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>21</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>INVENTORY_LANDMARK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>INVENTORY_NONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-1</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>INVENTORY_NOTECARD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>7</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>INVENTORY_OBJECT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>INVENTORY_SCRIPT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>10</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>INVENTORY_SOUND</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>INVENTORY_TEXTURE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>KFM_CMD_PAUSE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>description</key>
+            <string>For use with KFM_COMMAND.</string>
+         </map>
+         <key>KFM_CMD_PLAY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>description</key>
+            <string>For use with KFM_COMMAND.</string>
+         </map>
+         <key>KFM_CMD_STOP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>description</key>
+            <string>For use with KFM_COMMAND.</string>
+         </map>
+         <key>KFM_COMMAND</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>KFM_DATA</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>KFM_FORWARD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>description</key>
+            <string>For use with KFM_MODE.</string>
+         </map>
+         <key>KFM_LOOP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>description</key>
+            <string>For use with KFM_MODE.</string>
+         </map>
+         <key>KFM_MODE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>KFM_PING_PONG</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>description</key>
+            <string>For use with KFM_MODE.</string>
+         </map>
+         <key>KFM_REVERSE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>description</key>
+            <string>For use with KFM_MODE.</string>
+         </map>
+         <key>KFM_ROTATION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>description</key>
+            <string>For use with KFM_DATA.</string>
+         </map>
+         <key>KFM_TRANSLATION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>description</key>
+            <string>For use with KFM_DATA.</string>
+         </map>
+         <key>LAND_LARGE_BRUSH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>description</key>
+            <string>Use a large brush size.</string>
+         </map>
+         <key>LAND_LEVEL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>description</key>
+            <string>Action to level the land.</string>
+         </map>
+         <key>LAND_LOWER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>description</key>
+            <string>Action to lower the land.</string>
+         </map>
+         <key>LAND_MEDIUM_BRUSH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>description</key>
+            <string>Use a medium brush size.</string>
+         </map>
+         <key>LAND_NOISE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>LAND_RAISE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>description</key>
+            <string>Action to raise the land.</string>
+         </map>
+         <key>LAND_REVERT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>LAND_SMALL_BRUSH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>description</key>
+            <string>Use a small brush size.</string>
+         </map>
+         <key>LAND_SMOOTH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>LINK_ALL_CHILDREN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-3</integer>
+            <key>description</key>
+            <string>This targets every object except the root in the linked set.</string>
+         </map>
+         <key>LINK_ALL_OTHERS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-2</integer>
+            <key>description</key>
+            <string>This targets every object in the linked set except the object with the script.</string>
+         </map>
+         <key>LINK_ROOT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>description</key>
+            <string>This targets the root of the linked set.</string>
+         </map>
+         <key>LINK_SET</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-1</integer>
+            <key>description</key>
+            <string>This targets every object in the linked set.</string>
+         </map>
+         <key>LINK_THIS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-4</integer>
+            <key>description</key>
+            <string>The link number of the prim containing the script.</string>
+         </map>
+         <key>LIST_STAT_GEOMETRIC_MEAN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>9</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>LIST_STAT_MAX</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>LIST_STAT_MEAN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>LIST_STAT_MEDIAN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>LIST_STAT_MIN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>LIST_STAT_NUM_COUNT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>8</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>LIST_STAT_RANGE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>LIST_STAT_STD_DEV</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>LIST_STAT_SUM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>LIST_STAT_SUM_SQUARES</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>7</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>LOOP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x2</integer>
+            <key>description</key>
+            <string>Loop the texture animation.</string>
+         </map>
+         <key>MASK_BASE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>MASK_EVERYONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>MASK_GROUP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>MASK_NEXT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>MASK_OWNER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>NULL_KEY</key>
+         <map>
+            <key>type</key>
+            <string>key</string>
+            <key>value</key>
+            <uuid>00000000-0000-0000-0000-000000000000</uuid>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>OBJECT_CHARACTER_TIME</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>17</integer>
+            <key>description</key>
+            <string>units in seconds</string>
+         </map>
+         <key>OBJECT_CREATOR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>8</integer>
+            <key>description</key>
+            <string>Gets the object's creator key. If id is an avatar, a NULL_KEY is returned.</string>
+         </map>
+         <key>OBJECT_DESC</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>description</key>
+            <string>Gets the object's description. If id is an avatar, an empty string is returned.</string>
+         </map>
+         <key>OBJECT_GROUP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>7</integer>
+            <key>description</key>
+            <string>Gets the prims's group key. If id is an avatar, a NULL_KEY is returned.</string>
+         </map>
+         <key>OBJECT_NAME</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>description</key>
+            <string>Gets the object's name.</string>
+         </map>
+         <key>OBJECT_OWNER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>description</key>
+            <string>Gets an object's owner's key. If id is group owned, a NULL_KEY is returned.</string>
+         </map>
+         <key>OBJECT_PHYSICS_COST</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>16</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>OBJECT_POS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>description</key>
+            <string>Gets the object's position in region coordinates.</string>
+         </map>
+         <key>OBJECT_PRIM_EQUIVALENCE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>13</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>OBJECT_ROT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>description</key>
+            <string>Gets the object's rotation.</string>
+         </map>
+         <key>OBJECT_RUNNING_SCRIPT_COUNT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>9</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>OBJECT_SCRIPT_MEMORY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>11</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>OBJECT_SCRIPT_TIME</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>12</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>OBJECT_SERVER_COST</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>14</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>OBJECT_STREAMING_COST</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>15</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>OBJECT_TOTAL_SCRIPT_COUNT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>10</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>OBJECT_UNKNOWN_DETAIL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-1</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>OBJECT_VELOCITY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>description</key>
+            <string>Gets the object's velocity.</string>
+         </map>
+         <key>PARCEL_COUNT_GROUP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PARCEL_COUNT_OTHER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PARCEL_COUNT_OWNER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PARCEL_COUNT_SELECTED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PARCEL_COUNT_TEMP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PARCEL_COUNT_TOTAL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PARCEL_DETAILS_AREA</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>description</key>
+            <string>The parcel's area, in square meters. (5 chars.).</string>
+         </map>
+         <key>PARCEL_DETAILS_DESC</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>description</key>
+            <string>The description of the parcel. (127 chars).</string>
+         </map>
+         <key>PARCEL_DETAILS_GROUP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>description</key>
+            <string>The parcel group's key. (36 chars.).</string>
+         </map>
+         <key>PARCEL_DETAILS_ID</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>description</key>
+            <string>The parcel's key. (36 chars.).</string>
+         </map>
+         <key>PARCEL_DETAILS_NAME</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>description</key>
+            <string>The name of the parcel. (63 chars.).</string>
+         </map>
+         <key>PARCEL_DETAILS_OWNER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>description</key>
+            <string>The parcel owner's key. (36 chars.).</string>
+         </map>
+         <key>PARCEL_DETAILS_SEE_AVATARS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>description</key>
+            <string>The parcel's avatar visibility setting. (1 char.).</string>
+         </map>
+         <key>PARCEL_FLAG_ALLOW_ALL_OBJECT_ENTRY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x08000000</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PARCEL_FLAG_ALLOW_CREATE_GROUP_OBJECTS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x4000000</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PARCEL_FLAG_ALLOW_CREATE_OBJECTS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x40</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PARCEL_FLAG_ALLOW_DAMAGE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x20</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PARCEL_FLAG_ALLOW_FLY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x1</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PARCEL_FLAG_ALLOW_GROUP_OBJECT_ENTRY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x10000000</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PARCEL_FLAG_ALLOW_GROUP_SCRIPTS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x2000000</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PARCEL_FLAG_ALLOW_LANDMARK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x8</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PARCEL_FLAG_ALLOW_SCRIPTS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x2</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PARCEL_FLAG_ALLOW_TERRAFORM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x10</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PARCEL_FLAG_LOCAL_SOUND_ONLY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x8000</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PARCEL_FLAG_RESTRICT_PUSHOBJECT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x200000</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PARCEL_FLAG_USE_ACCESS_GROUP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x100</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PARCEL_FLAG_USE_ACCESS_LIST</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x200</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PARCEL_FLAG_USE_BAN_LIST</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x400</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PARCEL_FLAG_USE_LAND_PASS_LIST</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x800</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PARCEL_MEDIA_COMMAND_AGENT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>7</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PARCEL_MEDIA_COMMAND_AUTO_ALIGN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>9</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PARCEL_MEDIA_COMMAND_DESC</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>12</integer>
+            <key>description</key>
+            <string>Use this to get or set the parcel media description.</string>
+         </map>
+         <key>PARCEL_MEDIA_COMMAND_LOOP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PARCEL_MEDIA_COMMAND_LOOP_SET</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>13</integer>
+            <key>description</key>
+            <string>Used to get or set the parcel's media looping variable.</string>
+         </map>
+         <key>PARCEL_MEDIA_COMMAND_PAUSE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PARCEL_MEDIA_COMMAND_PLAY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PARCEL_MEDIA_COMMAND_SIZE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>11</integer>
+            <key>description</key>
+            <string>Use this to get or set the parcel media pixel resolution.</string>
+         </map>
+         <key>PARCEL_MEDIA_COMMAND_STOP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PARCEL_MEDIA_COMMAND_TEXTURE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PARCEL_MEDIA_COMMAND_TIME</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PARCEL_MEDIA_COMMAND_TYPE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>10</integer>
+            <key>description</key>
+            <string>Use this to get or set the parcel media MIME type (e.g. "text/html").</string>
+         </map>
+         <key>PARCEL_MEDIA_COMMAND_UNLOAD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>8</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PARCEL_MEDIA_COMMAND_URL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PASSIVE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x4</integer>
+            <key>description</key>
+            <string>Static in-world objects.</string>
+         </map>
+         <key>PATROL_PAUSE_AT_WAYPOINTS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PAY_DEFAULT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-2</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PAY_HIDE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-1</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PAYMENT_INFO_ON_FILE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PAYMENT_INFO_USED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PERM_ALL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x7FFFFFFF</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PERM_COPY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x8000</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PERM_MODIFY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x4000</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PERM_MOVE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x80000</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PERM_TRANSFER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x2000</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PERMISSION_ATTACH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x20</integer>
+            <key>description</key>
+            <string>If this permission is enabled, the object can successfully call llAttachToAvatar to attach to the given avatar.</string>
+         </map>
+         <key>PERMISSION_CHANGE_JOINTS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x100</integer>
+            <key>description</key>
+            <string>(not yet implemented)</string>
+         </map>
+         <key>PERMISSION_CHANGE_LINKS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x80</integer>
+            <key>description</key>
+            <string>If this permission is enabled, the object can successfully call llCreateLink, llBreakLink, and llBreakAllLinks to change links to other objects.</string>
+         </map>
+         <key>PERMISSION_CHANGE_PERMISSIONS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x200</integer>
+            <key>description</key>
+            <string>(not yet implemented)</string>
+         </map>
+         <key>PERMISSION_CONTROL_CAMERA</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x800</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PERMISSION_DEBIT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x2</integer>
+            <key>description</key>
+            <string>If this permission is enabled, the object can successfully call llGiveMoney or llTransferLindenDollars to debit the owners account.</string>
+         </map>
+         <key>PERMISSION_RELEASE_OWNERSHIP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x40</integer>
+            <key>description</key>
+            <string>(not yet implemented)</string>
+         </map>
+         <key>PERMISSION_REMAP_CONTROLS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x8</integer>
+            <key>description</key>
+            <string>(not yet implemented)</string>
+         </map>
+         <key>PERMISSION_TAKE_CONTROLS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x4</integer>
+            <key>description</key>
+            <string>If this permission enabled, the object can successfully call the llTakeControls libray call.</string>
+         </map>
+         <key>PERMISSION_TRACK_CAMERA</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x400</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PERMISSION_TRIGGER_ANIMATION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x10</integer>
+            <key>description</key>
+            <string>If this permission is enabled, the object can successfully call llStartAnimation for the avatar that owns this.</string>
+         </map>
+         <key>PI</key>
+         <map>
+            <key>type</key>
+            <string>float</string>
+            <key>value</key>
+            <real>3.14159265</real>
+            <key>description</key>
+            <string>3.14159265 - The number of radians in a semi-circle.</string>
+         </map>
+         <key>PI_BY_TWO</key>
+         <map>
+            <key>type</key>
+            <string>float</string>
+            <key>value</key>
+            <real>1.57079633</real>
+            <key>description</key>
+            <string>1.57079633 - The number of radians in a quarter circle.</string>
+         </map>
+         <key>PING_PONG</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x8</integer>
+            <key>description</key>
+            <string>Play animation going forwards, then backwards.</string>
+         </map>
+         <key>PRIM_BUMP_BARK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_BLOBS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>12</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_BRICKS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_BRIGHT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_CHECKER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_CONCRETE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>7</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_DARK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_DISKS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>10</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_GRAVEL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>11</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_LARGETILE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>14</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_NONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_SHINY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>19</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_SIDING</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>13</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_STONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>9</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_STUCCO</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>15</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_SUCTION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>16</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_TILE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>8</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_WEAVE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>17</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_WOOD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_CAST_SHADOWS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>24</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_COLOR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>18</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_DESC</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>28</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_FLEXIBLE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>21</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_FULLBRIGHT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>20</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_GLOW</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>25</integer>
+            <key>description</key>
+            <string>PRIM_GLOW is used to get or set the glow status of the face.</string>
+         </map>
+         <key>PRIM_HOLE_CIRCLE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x10</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_HOLE_DEFAULT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x00</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_HOLE_SQUARE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x20</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_HOLE_TRIANGLE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x30</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_LINK_TARGET</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>34</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_MATERIAL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_MATERIAL_FLESH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_MATERIAL_GLASS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_MATERIAL_LIGHT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>7</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_MATERIAL_METAL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_MATERIAL_PLASTIC</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_MATERIAL_RUBBER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_MATERIAL_STONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_MATERIAL_WOOD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_MEDIA_ALT_IMAGE_ENABLE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>description</key>
+            <string>Boolean. Gets/Sets the default image state (the image that the user sees before a piece of media is active) for the chosen face. The default image is specified by Second Life's server for that media type.</string>
+         </map>
+         <key>PRIM_MEDIA_AUTO_LOOP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>description</key>
+            <string>Boolean. Gets/Sets whether auto-looping is enabled.</string>
+         </map>
+         <key>PRIM_MEDIA_AUTO_PLAY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>description</key>
+            <string>Boolean. Gets/Sets whether the media auto-plays when a Resident can view it.</string>
+         </map>
+         <key>PRIM_MEDIA_AUTO_SCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>description</key>
+            <string>Boolean. Gets/Sets whether auto-scaling is enabled. Auto-scaling forces the media to the full size of the texture.</string>
+         </map>
+         <key>PRIM_MEDIA_AUTO_ZOOM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>7</integer>
+            <key>description</key>
+            <string>Boolean. Gets/Sets whether clicking the media triggers auto-zoom and auto-focus on the media.</string>
+         </map>
+         <key>PRIM_MEDIA_CONTROLS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>description</key>
+            <string>Integer. Gets/Sets the style of controls. Can be either PRIM_MEDIA_CONTROLS_STANDARD or PRIM_MEDIA_CONTROLS_MINI.</string>
+         </map>
+         <key>PRIM_MEDIA_CONTROLS_MINI</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>description</key>
+            <string>Mini web navigation controls; does not include an address bar.</string>
+         </map>
+         <key>PRIM_MEDIA_CONTROLS_STANDARD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>description</key>
+            <string>Standard web navigation controls.</string>
+         </map>
+         <key>PRIM_MEDIA_CURRENT_URL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>description</key>
+            <string>String. Gets/Sets the current url displayed on the chosen face. Changing this URL causes navigation. 1024 characters Maximum.</string>
+         </map>
+         <key>PRIM_MEDIA_FIRST_CLICK_INTERACT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>8</integer>
+            <key>description</key>
+            <string>Boolean. Gets/Sets whether the first click interaction is enabled.</string>
+         </map>
+         <key>PRIM_MEDIA_HEIGHT_PIXELS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>10</integer>
+            <key>description</key>
+            <string>Integer. Gets/Sets the height of the media in pixels.</string>
+         </map>
+         <key>PRIM_MEDIA_HOME_URL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>description</key>
+            <string>String. Gets/Sets the home URL for the chosen face. 1024 characters maximum.</string>
+         </map>
+         <key>PRIM_MEDIA_PERM_ANYONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_MEDIA_PERM_GROUP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_MEDIA_PERM_NONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_MEDIA_PERM_OWNER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_MEDIA_PERMS_CONTROL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>14</integer>
+            <key>description</key>
+            <string>Integer. Gets/Sets the permissions mask that control who can see the media control bar above the object:: PRIM_MEDIA_PERM_ANYONE, PRIM_MEDIA_PERM_GROUP, PRIM_MEDIA_PERM_NONE, PRIM_MEDIA_PERM_OWNER</string>
+         </map>
+         <key>PRIM_MEDIA_PERMS_INTERACT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>13</integer>
+            <key>description</key>
+            <string>Integer. Gets/Sets the permissions mask that control who can interact with the object: PRIM_MEDIA_PERM_ANYONE, PRIM_MEDIA_PERM_GROUP, PRIM_MEDIA_PERM_NONE, PRIM_MEDIA_PERM_OWNER</string>
+         </map>
+         <key>PRIM_MEDIA_WHITELIST</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>12</integer>
+            <key>description</key>
+            <string>String. Gets/Sets the white-list as a string of escaped, comma-separated URLs. This string can hold up to 64 URLs or 1024 characters, whichever comes first.</string>
+         </map>
+         <key>PRIM_MEDIA_WHITELIST_ENABLE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>11</integer>
+            <key>description</key>
+            <string>Boolean. Gets/Sets whether navigation is restricted to URLs in PRIM_MEDIA_WHITELIST.</string>
+         </map>
+         <key>PRIM_MEDIA_WIDTH_PIXELS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>9</integer>
+            <key>description</key>
+            <string>Integer. Gets/Sets the width of the media in pixels.</string>
+         </map>
+         <key>PRIM_NAME</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>27</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_OMEGA</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>32</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_PHANTOM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_PHYSICS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_PHYSICS_SHAPE_CONVEX</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>description</key>
+            <string>Use the convex hull of the prim shape for physics (this is the default for mesh objects).</string>
+         </map>
+         <key>PRIM_PHYSICS_SHAPE_NONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>description</key>
+            <string>Ignore this prim in the physics shape. NB: This cannot be applied to the root prim.</string>
+         </map>
+         <key>PRIM_PHYSICS_SHAPE_PRIM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>description</key>
+            <string>Use the normal prim shape for physics (this is the default for all non-mesh objects).</string>
+         </map>
+         <key>PRIM_PHYSICS_SHAPE_TYPE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>30</integer>
+            <key>description</key>
+            <string>Allows you to set the physics shape type of a prim via lsl. Permitted values are:
+			PRIM_PHYSICS_SHAPE_NONE, PRIM_PHYSICS_SHAPE_PRIM, PRIM_PHYSICS_SHAPE_CONVEX</string>
+         </map>
+         <key>PRIM_POINT_LIGHT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>23</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_POS_LOCAL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>33</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_POSITION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_ROT_LOCAL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>29</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_ROTATION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>8</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_SCULPT_FLAG_INVERT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>64</integer>
+            <key>description</key>
+            <string>Render inside out (inverts the normals).</string>
+         </map>
+         <key>PRIM_SCULPT_FLAG_MIRROR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>128</integer>
+            <key>description</key>
+            <string>Render an X axis mirror of the sculpty.</string>
+         </map>
+         <key>PRIM_SCULPT_TYPE_CYLINDER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_SCULPT_TYPE_MASK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>7</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_SCULPT_TYPE_PLANE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_SCULPT_TYPE_SPHERE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_SCULPT_TYPE_TORUS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_SHINY_HIGH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_SHINY_LOW</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_SHINY_MEDIUM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_SHINY_NONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_SIZE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>7</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_SLICE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>35</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_TEMP_ON_REZ</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_TEXGEN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>22</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_TEXGEN_DEFAULT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_TEXGEN_PLANAR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_TEXT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>26</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_TEXTURE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>17</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_TYPE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>9</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_TYPE_BOX</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_TYPE_CYLINDER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_TYPE_PRISM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_TYPE_RING</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_TYPE_SCULPT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>7</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_TYPE_SPHERE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_TYPE_TORUS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PRIM_TYPE_TUBE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PROFILE_NONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>description</key>
+            <string>Disables profiling</string>
+         </map>
+         <key>PROFILE_SCRIPT_MEMORY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>description</key>
+            <string>Enables memory profiling</string>
+         </map>
+         <key>PSYS_PART_BOUNCE_MASK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x4</integer>
+            <key>description</key>
+            <string>Particles bounce off of a plane at the objects Z height.</string>
+         </map>
+         <key>PSYS_PART_EMISSIVE_MASK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x100</integer>
+            <key>description</key>
+            <string>The particle glows.</string>
+         </map>
+         <key>PSYS_PART_END_ALPHA</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>description</key>
+            <string>A float which determines the ending alpha of the object.</string>
+         </map>
+         <key>PSYS_PART_END_COLOR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>description</key>
+            <string>A vector &lt;r, g, b&gt; which determines the ending colour of the object.</string>
+         </map>
+         <key>PSYS_PART_END_SCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>description</key>
+            <string>A vector &lt;sx, sy, z&gt;, which is the ending size of the particle billboard in meters (z is ignored).</string>
+         </map>
+         <key>PSYS_PART_FLAGS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>description</key>
+            <string>Each particle that is emitted by the particle system is simulated based on the following flags. To use multiple flags, bitwise or (|) them together.</string>
+         </map>
+         <key>PSYS_PART_FOLLOW_SRC_MASK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x10</integer>
+            <key>description</key>
+            <string>The particle position is relative to the source objects position.</string>
+         </map>
+         <key>PSYS_PART_FOLLOW_VELOCITY_MASK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x20</integer>
+            <key>description</key>
+            <string>The particle orientation is rotated so the vertical axis faces towards the particle velocity.</string>
+         </map>
+         <key>PSYS_PART_INTERP_COLOR_MASK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x1</integer>
+            <key>description</key>
+            <string>Interpolate both the colour and alpha from the start value to the end value.</string>
+         </map>
+         <key>PSYS_PART_INTERP_SCALE_MASK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x2</integer>
+            <key>description</key>
+            <string>Interpolate the particle scale from the start value to the end value.</string>
+         </map>
+         <key>PSYS_PART_MAX_AGE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>19</integer>
+            <key>description</key>
+            <string>Age in seconds of a particle at which it dies.</string>
+         </map>
+         <key>PSYS_PART_START_ALPHA</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>description</key>
+            <string>A float which determines the starting alpha of the object.</string>
+         </map>
+         <key>PSYS_PART_START_COLOR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>description</key>
+            <string>A vector &lt;r.r, g.g, b.b&gt; which determines the starting colour of the object.</string>
+         </map>
+         <key>PSYS_PART_START_SCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>description</key>
+            <string>A vector &lt;sx, sy, z&gt;, which is the starting size of the particle billboard in meters (z is ignored).</string>
+         </map>
+         <key>PSYS_PART_TARGET_LINEAR_MASK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x80</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PSYS_PART_TARGET_POS_MASK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x40</integer>
+            <key>description</key>
+            <string>The particle heads towards the location of the target object as defined by PSYS_SRC_TARGET_KEY.</string>
+         </map>
+         <key>PSYS_PART_WIND_MASK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x8</integer>
+            <key>description</key>
+            <string>Particles have their velocity damped towards the wind velocity.</string>
+         </map>
+         <key>PSYS_SRC_ACCEL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>8</integer>
+            <key>description</key>
+            <string>A vector &lt;x, y, z&gt; which is the acceleration to apply on particles.</string>
+         </map>
+         <key>PSYS_SRC_ANGLE_BEGIN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>22</integer>
+            <key>description</key>
+            <string>Area in radians specifying where particles will NOT be created (for ANGLE patterns)</string>
+         </map>
+         <key>PSYS_SRC_ANGLE_END</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>23</integer>
+            <key>description</key>
+            <string>Area in radians filled with particles (for ANGLE patterns) (if lower than PSYS_SRC_ANGLE_BEGIN, acts as PSYS_SRC_ANGLE_BEGIN itself, and PSYS_SRC_ANGLE_BEGIN acts as PSYS_SRC_ANGLE_END).</string>
+         </map>
+         <key>PSYS_SRC_BURST_PART_COUNT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>15</integer>
+            <key>description</key>
+            <string>How many particles to release in a burst.</string>
+         </map>
+         <key>PSYS_SRC_BURST_RADIUS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>16</integer>
+            <key>description</key>
+            <string>What distance from the center of the object to create the particles.</string>
+         </map>
+         <key>PSYS_SRC_BURST_RATE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>13</integer>
+            <key>description</key>
+            <string>How often to release a particle burst (float seconds).</string>
+         </map>
+         <key>PSYS_SRC_BURST_SPEED_MAX</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>18</integer>
+            <key>description</key>
+            <string>Maximum speed that a particle should be moving.</string>
+         </map>
+         <key>PSYS_SRC_BURST_SPEED_MIN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>17</integer>
+            <key>description</key>
+            <string>Minimum speed that a particle should be moving.</string>
+         </map>
+         <key>PSYS_SRC_INNERANGLE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>10</integer>
+            <key>description</key>
+            <string>Specifies the inner angle of the arc created by the PSYS_SRC_PATTERN_ANGLE or PSYS_SRC_PATTERN_ANGLE_CONE source pattern.
+			The area specified will NOT have particles in it.</string>
+         </map>
+         <key>PSYS_SRC_MAX_AGE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>19</integer>
+            <key>description</key>
+            <string>How long this particle system should last, 0.0 means forever.</string>
+         </map>
+         <key>PSYS_SRC_OMEGA</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>21</integer>
+            <key>description</key>
+            <string>Sets the angular velocity to rotate the axis that SRC_PATTERN_ANGLE and SRC_PATTERN_ANGLE_CONE use.</string>
+         </map>
+         <key>PSYS_SRC_OUTERANGLE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>11</integer>
+            <key>description</key>
+            <string>Specifies the outer angle of the arc created by the PSYS_SRC_PATTERN_ANGLE or PSYS_SRC_PATTERN_ANGLE_CONE source pattern.
+			The area between the outer and inner angle will be filled with particles.</string>
+         </map>
+         <key>PSYS_SRC_PATTERN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>9</integer>
+            <key>description</key>
+            <string>The pattern which is used to generate particles.
+			Use one of the following values: PSYS_SRC_PATTERN Values.</string>
+         </map>
+         <key>PSYS_SRC_PATTERN_ANGLE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x04</integer>
+            <key>description</key>
+            <string>Shoot particles across a 2 dimensional area defined by the arc created from PSYS_SRC_OUTERANGLE. There will be an open area defined by PSYS_SRC_INNERANGLE within the larger arc.</string>
+         </map>
+         <key>PSYS_SRC_PATTERN_ANGLE_CONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x08</integer>
+            <key>description</key>
+            <string>Shoot particles out in a 3 dimensional cone with an outer arc of PSYS_SRC_OUTERANGLE and an inner open area defined by PSYS_SRC_INNERANGLE.</string>
+         </map>
+         <key>PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x10</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PSYS_SRC_PATTERN_DROP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x01</integer>
+            <key>description</key>
+            <string>Drop particles at the source position.</string>
+         </map>
+         <key>PSYS_SRC_PATTERN_EXPLODE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x02</integer>
+            <key>description</key>
+            <string>Shoot particles out in all directions, using the burst parameters.</string>
+         </map>
+         <key>PSYS_SRC_TARGET_KEY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>20</integer>
+            <key>description</key>
+            <string>The key of a target object to move towards if PSYS_PART_TARGET_POS_MASK is enabled.</string>
+         </map>
+         <key>PSYS_SRC_TEXTURE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>12</integer>
+            <key>description</key>
+            <string>An asset name for the texture to use for the particles.</string>
+         </map>
+         <key>PU_EVADE_HIDDEN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x07</integer>
+            <key>description</key>
+            <string>Triggered when an llEvade character thinks it has hidden from its pursuer.</string>
+         </map>
+         <key>PU_EVADE_SPOTTED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x08</integer>
+            <key>description</key>
+            <string>Triggered when an llEvade character switches from hiding to running</string>
+         </map>
+         <key>PU_FAILURE_INVALID_GOAL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x03</integer>
+            <key>description</key>
+            <string>Goal is not on the navigation-mesh and cannot be reached.</string>
+         </map>
+         <key>PU_FAILURE_INVALID_START</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x02</integer>
+            <key>description</key>
+            <string>Character cannot navigate from the current location - e.g., the character is off the navmesh or too high above it.</string>
+         </map>
+         <key>PU_FAILURE_NO_NAVMESH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x09</integer>
+            <key>description</key>
+            <string>This is a fatal error reported to a character when there is no navmesh for the region. This usually indicates a server failure and users should file a bug report and include the time and region in which they received this message.</string>
+         </map>
+         <key>PU_FAILURE_NO_VALID_DESTINATION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x06</integer>
+            <key>description</key>
+            <string>There is no good place for the character to go - e.g., it is patrolling and all the patrol points are now unreachable.</string>
+         </map>
+         <key>PU_FAILURE_OTHER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1000000</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PU_FAILURE_TARGET_GONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x05</integer>
+            <key>description</key>
+            <string>Target (for llPursue or llEvade) can no longer be tracked - e.g., it left the region or is an avatar that is now more than about 30m outside the region.</string>
+         </map>
+         <key>PU_FAILURE_UNREACHABLE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x04</integer>
+            <key>description</key>
+            <string>Goal is no longer reachable for some reason - e.g., an obstacle blocks the path.</string>
+         </map>
+         <key>PU_GOAL_REACHED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x01</integer>
+            <key>description</key>
+            <string>Character has reached the goal and will stop or choose a new goal (if wandering).</string>
+         </map>
+         <key>PU_SLOWDOWN_DISTANCE_REACHED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x00</integer>
+            <key>description</key>
+            <string>Character is near current goal.</string>
+         </map>
+         <key>PUBLIC_CHANNEL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>description</key>
+            <string>PUBLIC_CHANNEL is an integer constant that, when passed to llSay, llWhisper, or llShout as a channel parameter, will print text to the publicly heard chat channel.</string>
+         </map>
+         <key>PURSUIT_FUZZ_FACTOR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>description</key>
+            <string>Selects a random destination near the offset.</string>
+         </map>
+         <key>PURSUIT_GOAL_TOLERANCE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>PURSUIT_INTERCEPT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>description</key>
+            <string>Define whether the character attempts to predict the target's location.</string>
+         </map>
+         <key>PURSUIT_OFFSET</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>description</key>
+            <string>Go to a position offset from the target.</string>
+         </map>
+         <key>RAD_TO_DEG</key>
+         <map>
+            <key>type</key>
+            <string>float</string>
+            <key>value</key>
+            <real>57.2957795</real>
+            <key>description</key>
+            <string>57.2957795 - Number of degrees per radian. You can use this number to convert radians to degrees by multiplying the radians by this number.</string>
+         </map>
+         <key>RC_DATA_FLAGS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>RC_DETECT_PHANTOM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>RC_GET_LINK_NUM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>RC_GET_NORMAL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>RC_GET_ROOT_KEY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>RC_MAX_HITS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>RC_REJECT_AGENTS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>RC_REJECT_LAND</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>8</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>RC_REJECT_NONPHYSICAL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>RC_REJECT_PHYSICAL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>RC_REJECT_TYPES</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>RCERR_CAST_TIME_EXCEEDED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-3</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>RCERR_SIM_PERF_LOW</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-2</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>RCERR_UNKNOWN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-1</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>REGION_FLAG_ALLOW_DAMAGE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x1</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>REGION_FLAG_ALLOW_DIRECT_TELEPORT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x100000</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>REGION_FLAG_BLOCK_FLY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x80000</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>REGION_FLAG_BLOCK_TERRAFORM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x40</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>REGION_FLAG_DISABLE_COLLISIONS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x1000</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>REGION_FLAG_DISABLE_PHYSICS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x4000</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>REGION_FLAG_FIXED_SUN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x10</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>REGION_FLAG_RESTRICT_PUSHOBJECT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x400000</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>REGION_FLAG_SANDBOX</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x100</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>REMOTE_DATA_CHANNEL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>REMOTE_DATA_REPLY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>REMOTE_DATA_REQUEST</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>REQUIRE_LINE_OF_SIGHT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>description</key>
+            <string>Define whether the character needs a line-of-sight to give chase.</string>
+         </map>
+         <key>RESTITUTION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>description</key>
+            <string>Used with llSetPhysicsMaterial to enable the density value. Must be between 0.0 and 1.0</string>
+         </map>
+         <key>REVERSE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x4</integer>
+            <key>description</key>
+            <string>Play animation in reverse direction.</string>
+         </map>
+         <key>ROTATE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x20</integer>
+            <key>description</key>
+            <string>Animate texture rotation.</string>
+         </map>
+         <key>SCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x40</integer>
+            <key>description</key>
+            <string>Animate the texture scale.</string>
+         </map>
+         <key>SCRIPTED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x8</integer>
+            <key>description</key>
+            <string>Scripted in-world objects.</string>
+         </map>
+         <key>SMOOTH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x10</integer>
+            <key>description</key>
+            <string>Slide in the X direction, instead of playing separate frames.</string>
+         </map>
+         <key>SQRT2</key>
+         <map>
+            <key>type</key>
+            <string>float</string>
+            <key>value</key>
+            <real>1.41421356</real>
+            <key>description</key>
+            <string>1.41421356 - The square root of 2.</string>
+         </map>
+         <key>STATUS_BLOCK_GRAB</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>64</integer>
+            <key>description</key>
+            <string>Controls whether the object can be grabbed.
+			A grab is the default action when in third person, and is available as the hand tool in build mode.
+			This is useful for physical objects that you don't want other people to be able to trivially disturb.
+			The default is FALSE</string>
+         </map>
+         <key>STATUS_BLOCK_GRAB_OBJECT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1024</integer>
+            <key>description</key>
+            <string>Prevent click-and-drag movement on all prims in the object.</string>
+         </map>
+         <key>STATUS_BOUNDS_ERROR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1002</integer>
+            <key>description</key>
+            <string>Argument(s) passed to function had a bounds error.</string>
+         </map>
+         <key>STATUS_CAST_SHADOWS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x200</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>STATUS_DIE_AT_EDGE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x80</integer>
+            <key>description</key>
+            <string>Controls whether the object is returned to the owners inventory if it wanders off the edge of the world. It is useful to set this status TRUE for things like bullets or rockets. The default is TRUE</string>
+         </map>
+         <key>STATUS_INTERNAL_ERROR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1999</integer>
+            <key>description</key>
+            <string>An internal error occurred.</string>
+         </map>
+         <key>STATUS_MALFORMED_PARAMS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1000</integer>
+            <key>description</key>
+            <string>Function was called with malformed parameters.</string>
+         </map>
+         <key>STATUS_NOT_FOUND</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1003</integer>
+            <key>description</key>
+            <string>Object or other item was not found.</string>
+         </map>
+         <key>STATUS_NOT_SUPPORTED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1004</integer>
+            <key>description</key>
+            <string>Feature not supported.</string>
+         </map>
+         <key>STATUS_OK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>description</key>
+            <string>Result of function call was a success</string>
+         </map>
+         <key>STATUS_PHANTOM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x10</integer>
+            <key>description</key>
+            <string>Controls/indicates whether the object collides or not.
+			Setting the value to TRUE makes the object non-colliding with
+			all objects. It is a good idea to use this for most objects
+			that move or rotate, but are non-physical. It is also
+			useful for simulating volumetric lighting. The default is FALSE.</string>
+         </map>
+         <key>STATUS_PHYSICS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x1</integer>
+            <key>description</key>
+            <string>Controls/indicates whether the object moves physically.
+			This controls the same flag that the UI check-box for Physical controls. The default is FALSE.</string>
+         </map>
+         <key>STATUS_RETURN_AT_EDGE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x100</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>STATUS_ROTATE_X</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x2</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>STATUS_ROTATE_Y</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x4</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>STATUS_ROTATE_Z</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x8</integer>
+            <key>description</key>
+            <string>Controls/indicates whether the object can physically rotate around
+			the specific axis or not. This flag has no meaning
+			for non-physical objects. Set the value to FALSE
+			if you want to disable rotation around that axis. The
+			default is TRUE for a physical object.
+			A useful example to think about when visualizing
+			the effect is a sit-and-spin device. They spin around the
+			Z axis (up) but not around the X or Y axis.</string>
+         </map>
+         <key>STATUS_SANDBOX</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x20</integer>
+            <key>description</key>
+            <string>Controls/indicates whether the object can cross region boundaries
+			and move more than 20 meters from its creation
+			point. The default if FALSE.</string>
+         </map>
+         <key>STATUS_TYPE_MISMATCH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1001</integer>
+            <key>description</key>
+            <string>Argument(s) passed to function had a type mismatch.</string>
+         </map>
+         <key>STATUS_WHITELIST_FAILED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2001</integer>
+            <key>description</key>
+            <string>Whitelist Failed.</string>
+         </map>
+         <key>STRING_TRIM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x03</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>STRING_TRIM_HEAD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x01</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>STRING_TRIM_TAIL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x02</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>TEXTURE_BLANK</key>
+         <map>
+            <key>type</key>
+            <string>key</string>
+            <key>value</key>
+            <uuid>5748decc-f629-461c-9a36-a35a221fe21f</uuid>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>TEXTURE_DEFAULT</key>
+         <map>
+            <key>type</key>
+            <string>key</string>
+            <key>value</key>
+            <uuid>89556747-24cb-43ed-920b-47caed15465f</uuid>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>TEXTURE_MEDIA</key>
+         <map>
+            <key>type</key>
+            <string>key</string>
+            <key>value</key>
+            <uuid>8b5fec65-8d8d-9dc5-cda8-8fdf2716e361</uuid>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>TEXTURE_PLYWOOD</key>
+         <map>
+            <key>type</key>
+            <string>key</string>
+            <key>value</key>
+            <uuid>89556747-24cb-43ed-920b-47caed15465f</uuid>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>TEXTURE_TRANSPARENT</key>
+         <map>
+            <key>type</key>
+            <string>key</string>
+            <key>value</key>
+            <uuid>8dcd4a48-2d37-4909-9f78-f7a9eb4ef903</uuid>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>TOUCH_INVALID_FACE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0xFFFFFFFF</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>TOUCH_INVALID_TEXCOORD</key>
+         <map>
+            <key>type</key>
+            <string>vector</string>
+            <key>value</key>
+            <string>&lt;-1.0, -1.0, 0.0&gt;</string>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>TOUCH_INVALID_VECTOR</key>
+         <map>
+            <key>type</key>
+            <string>vector</string>
+            <key>value</key>
+            <string>0.0, 0.0, 0.0</string>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>TRAVERSAL_TYPE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>7</integer>
+            <key>description</key>
+            <string>One of TRAVERSAL_TYPE_FAST, TRAVERSAL_TYPE_SLOW, and TRAVERSAL_TYPE_NONE.</string>
+         </map>
+         <key>TRAVERSAL_TYPE_FAST</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>TRAVERSAL_TYPE_NONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>TRAVERSAL_TYPE_SLOW</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>TRUE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>description</key>
+            <string>An integer constant for boolean comparisons. Has the value '1'.</string>
+         </map>
+         <key>TWO_PI</key>
+         <map>
+            <key>type</key>
+            <string>float</string>
+            <key>value</key>
+            <real>6.28318530</real>
+            <key>description</key>
+            <string>6.28318530 - The radians of a circle.</string>
+         </map>
+         <key>TYPE_FLOAT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>description</key>
+            <string>The list entry is a float.</string>
+         </map>
+         <key>TYPE_INTEGER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>description</key>
+            <string>The list entry is an integer.</string>
+         </map>
+         <key>TYPE_INVALID</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>description</key>
+            <string>The list entry is invalid.</string>
+         </map>
+         <key>TYPE_KEY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>description</key>
+            <string>The list entry is a key.</string>
+         </map>
+         <key>TYPE_ROTATION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>description</key>
+            <string>The list entry is a rotation.</string>
+         </map>
+         <key>TYPE_STRING</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>description</key>
+            <string>The list entry is a string.</string>
+         </map>
+         <key>TYPE_VECTOR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>description</key>
+            <string>The list entry is a vector.</string>
+         </map>
+         <key>URL_REQUEST_DENIED</key>
+         <map>
+            <key>type</key>
+            <string>string</string>
+            <key>value</key>
+            <string>URL_REQUEST_DENIED</string>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>URL_REQUEST_GRANTED</key>
+         <map>
+            <key>type</key>
+            <string>string</string>
+            <key>value</key>
+            <string>URL_REQUEST_GRANTED</string>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>32</integer>
+            <key>description</key>
+            <string>A slider between minimum (0.0) and maximum (1.0) deflection of angular orientation. That is, its a simple scalar for modulating the strength of angular deflection such that the vehicles preferred axis of motion points toward its real velocity.</string>
+         </map>
+         <key>VEHICLE_ANGULAR_DEFLECTION_TIMESCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>33</integer>
+            <key>description</key>
+            <string>The time-scale for exponential success of linear deflection deflection. Its another way to specify the strength of the vehicles tendency to reorient itself so that its preferred axis of motion agrees with its true velocity.</string>
+         </map>
+         <key>VEHICLE_ANGULAR_FRICTION_TIMESCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>17</integer>
+            <key>description</key>
+            <string>A vector of timescales for exponential decay of the vehicles angular velocity about its preferred axes of motion (at, left, up).
+			Range = [0.07, inf) seconds for each element of the vector.</string>
+         </map>
+         <key>VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>35</integer>
+            <key>description</key>
+            <string>The timescale for exponential decay of the angular motors magnitude.</string>
+         </map>
+         <key>VEHICLE_ANGULAR_MOTOR_DIRECTION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>19</integer>
+            <key>description</key>
+            <string>The direction and magnitude (in preferred frame) of the vehicles angular motor.The vehicle will accelerate (or decelerate if necessary) to match its velocity to its motor.</string>
+         </map>
+         <key>VEHICLE_ANGULAR_MOTOR_TIMESCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>34</integer>
+            <key>description</key>
+            <string>The timescale for exponential approach to full angular motor velocity.</string>
+         </map>
+         <key>VEHICLE_BANKING_EFFICIENCY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>38</integer>
+            <key>description</key>
+            <string>A slider between anti (-1.0), none (0.0), and maxmum (1.0) banking strength.</string>
+         </map>
+         <key>VEHICLE_BANKING_MIX</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>39</integer>
+            <key>description</key>
+            <string>A slider between static (0.0) and dynamic (1.0) banking. "Static" means the banking scales only with the angle of roll, whereas "dynamic" is a term that also scales with the vehicles linear speed.</string>
+         </map>
+         <key>VEHICLE_BANKING_TIMESCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>40</integer>
+            <key>description</key>
+            <string>The timescale for banking to exponentially approach its maximum effect. This is another way to scale the strength of the banking effect, however it affects the term that is proportional to the difference between what the banking behavior is trying to do, and what the vehicle is actually doing.</string>
+         </map>
+         <key>VEHICLE_BUOYANCY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>27</integer>
+            <key>description</key>
+            <string>A slider between minimum (0.0) and maximum anti-gravity (1.0).</string>
+         </map>
+         <key>VEHICLE_FLAG_CAMERA_DECOUPLED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x200</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x10</integer>
+            <key>description</key>
+            <string>Hover at global height.</string>
+         </map>
+         <key>VEHICLE_FLAG_HOVER_TERRAIN_ONLY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x8</integer>
+            <key>description</key>
+            <string>Ignore water height when hovering.</string>
+         </map>
+         <key>VEHICLE_FLAG_HOVER_UP_ONLY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x20</integer>
+            <key>description</key>
+            <string>Hover does not push down. Use this flag for hovering vehicles that should be able to jump above their hover height.</string>
+         </map>
+         <key>VEHICLE_FLAG_HOVER_WATER_ONLY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x4</integer>
+            <key>description</key>
+            <string>Ignore terrain height when hovering.</string>
+         </map>
+         <key>VEHICLE_FLAG_LIMIT_MOTOR_UP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x40</integer>
+            <key>description</key>
+            <string>Prevents ground vehicles from motoring into the sky.</string>
+         </map>
+         <key>VEHICLE_FLAG_LIMIT_ROLL_ONLY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x2</integer>
+            <key>description</key>
+            <string>For vehicles with vertical attractor that want to be able to climb/dive, for instance, aeroplanes that want to use the banking feature.</string>
+         </map>
+         <key>VEHICLE_FLAG_MOUSELOOK_BANK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x100</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>VEHICLE_FLAG_MOUSELOOK_STEER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x80</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>VEHICLE_FLAG_NO_DEFLECTION_UP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x1</integer>
+            <key>description</key>
+            <string>This flag prevents linear deflection parallel to world z-axis. This is useful for preventing ground vehicles with large linear deflection, like bumper cars, from climbing their linear deflection into the sky.</string>
+         </map>
+         <key>VEHICLE_FLAG_NO_FLY_UP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x1</integer>
+            <key>description</key>
+            <string>Old, changed to VEHICLE_FLAG_NO_DEFLECTION_UP</string>
+         </map>
+         <key>VEHICLE_HOVER_EFFICIENCY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>25</integer>
+            <key>description</key>
+            <string>A slider between minimum (0.0 = bouncy) and maximum (1.0 = fast as possible) damped motion of the hover behavior. </string>
+         </map>
+         <key>VEHICLE_HOVER_HEIGHT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>24</integer>
+            <key>description</key>
+            <string>The height (above the terrain or water, or global) at which the vehicle will try to hover.</string>
+         </map>
+         <key>VEHICLE_HOVER_TIMESCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>26</integer>
+            <key>description</key>
+            <string>Period of time (in seconds) for the vehicle to achieve its hover height.</string>
+         </map>
+         <key>VEHICLE_LINEAR_DEFLECTION_EFFICIENCY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>28</integer>
+            <key>description</key>
+            <string>A slider between minimum (0.0) and maximum (1.0) deflection of linear velocity. That is, its a simple scalar for modulating the strength of linear deflection.</string>
+         </map>
+         <key>VEHICLE_LINEAR_DEFLECTION_TIMESCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>29</integer>
+            <key>description</key>
+            <string>The timescale for exponential success of linear deflection deflection. It is another way to specify how much time it takes for the vehicles linear velocity to be redirected to its preferred axis of motion.</string>
+         </map>
+         <key>VEHICLE_LINEAR_FRICTION_TIMESCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>16</integer>
+            <key>description</key>
+            <string>A vector of timescales for exponential decay of the vehicles linear velocity along its preferred axes of motion (at, left, up).
+			Range = [0.07, inf) seconds for each element of the vector.</string>
+         </map>
+         <key>VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>35</integer>
+            <key>description</key>
+            <string>The timescale for exponential decay of the linear motors magnitude.</string>
+         </map>
+         <key>VEHICLE_LINEAR_MOTOR_DIRECTION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>18</integer>
+            <key>description</key>
+            <string>The direction and magnitude (in preferred frame) of the vehicles linear motor. The vehicle will accelerate (or decelerate if necessary) to match its velocity to its motor.
+			Range of magnitude = [0, 30] meters/second.</string>
+         </map>
+         <key>VEHICLE_LINEAR_MOTOR_OFFSET</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>20</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>VEHICLE_LINEAR_MOTOR_TIMESCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>30</integer>
+            <key>description</key>
+            <string>The timescale for exponential approach to full linear motor velocity.</string>
+         </map>
+         <key>VEHICLE_REFERENCE_FRAME</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>44</integer>
+            <key>description</key>
+            <string>A rotation of the vehicles preferred axes of motion and orientation (at, left, up) with respect to the vehicles local frame (x, y, z).</string>
+         </map>
+         <key>VEHICLE_TYPE_AIRPLANE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>description</key>
+            <string>Uses linear deflection for lift, no hover, and banking to turn.
+			// very little friction along forward-back axis
+			llSetVehicleVectorParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, &lt;200, 10, 5&gt; );
+			// uniform angular friction
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_FRICTION_TIMESCALE, 20 );
+			// linear motor
+			llSetVehicleVectorParam( VEHICLE_LINEAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
+			llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_TIMESCALE, 2 );
+			llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 60 );
+			// angular motor
+			llSetVehicleVectorParam( VEHICLE_ANGULAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_TIMESCALE, 4 );
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 8 );
+			// no hover
+			llSetVehicleFloatParam( VEHICLE_HOVER_HEIGHT, 0 );
+			llSetVehicleFloatParam( VEHICLE_HOVER_EFFICIENCY, 0.5 );
+			llSetVehicleFloatParam( VEHICLE_HOVER_TIMESCALE, 1000 );
+			llSetVehicleFloatParam( VEHICLE_BUOYANCY, 0 );
+			// linear deflection
+			llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 0.5 );
+			llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 0.5 );
+			// angular deflection
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 1.0 );
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 2.0 );
+			// vertical attractor
+			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 0.9 );
+			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 2 );
+			// banking
+			llSetVehicleFloatParam( VEHICLE_BANKING_EFFICIENCY, 1 );
+			llSetVehicleFloatParam( VEHICLE_BANKING_MIX, 0.7 );
+			llSetVehicleFloatParam( VEHICLE_BANKING_TIMESCALE, 2 );
+			// default rotation of local frame
+			llSetVehicleRotationParam( VEHICLE_REFERENCE_FRAME, &lt;0, 0, 0, 1&gt; );
+			// remove these flags
+			llRemoveVehicleFlags( VEHICLE_FLAG_NO_DEFLECTION_UP
+			| VEHICLE_FLAG_HOVER_WATER_ONLY
+			| VEHICLE_FLAG_HOVER_TERRAIN_ONLY
+			| VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT
+			| VEHICLE_FLAG_HOVER_UP_ONLY
+			| VEHICLE_FLAG_LIMIT_MOTOR_UP );
+			// set these flags
+			llSetVehicleFlags( VEHICLE_FLAG_LIMIT_ROLL_ONLY );</string>
+         </map>
+         <key>VEHICLE_TYPE_BALLOON</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>description</key>
+            <string>Hover, and friction, but no deflection.
+			// uniform linear friction
+			llSetVehicleFloatParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, 5 );
+			// uniform angular friction
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_FRICTION_TIMESCALE, 10 );
+			// linear motor
+			llSetVehicleVectorParam( VEHICLE_LINEAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
+			llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_TIMESCALE, 5 );
+			llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 60 );
+			// angular motor
+			llSetVehicleVectorParam( VEHICLE_ANGULAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_TIMESCALE, 6 );
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 10 );
+			// hover
+			llSetVehicleFloatParam( VEHICLE_HOVER_HEIGHT, 5 );
+			llSetVehicleFloatParam( VEHICLE_HOVER_EFFICIENCY, 0.8 );
+			llSetVehicleFloatParam( VEHICLE_HOVER_TIMESCALE, 10 );
+			llSetVehicleFloatParam( VEHICLE_BUOYANCY, 1 );
+			// no linear deflection
+			llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 0 );
+			llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 5 );
+			// no angular deflection
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 0 );
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 5 );
+			// no vertical attractor
+			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 1 );
+			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 1000 );
+			// no banking
+			llSetVehicleFloatParam( VEHICLE_BANKING_EFFICIENCY, 0 );
+			llSetVehicleFloatParam( VEHICLE_BANKING_MIX, 0.7 );
+			llSetVehicleFloatParam( VEHICLE_BANKING_TIMESCALE, 5 );
+			// default rotation of local frame
+			llSetVehicleRotationParam( VEHICLE_REFERENCE_FRAME, &lt;0, 0, 0, 1&gt; );
+			// remove all flags
+			llRemoveVehicleFlags( VEHICLE_FLAG_NO_DEFLECTION_UP
+			| VEHICLE_FLAG_HOVER_WATER_ONLY
+			| VEHICLE_FLAG_LIMIT_ROLL_ONLY
+			| VEHICLE_FLAG_HOVER_TERRAIN_ONLY
+			| VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT
+			| VEHICLE_FLAG_HOVER_UP_ONLY
+			| VEHICLE_FLAG_LIMIT_MOTOR_UP );</string>
+         </map>
+         <key>VEHICLE_TYPE_BOAT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>description</key>
+            <string>Hovers over water with lots of friction and some anglar deflection.
+			// least for forward-back, most friction for up-down
+			llSetVehicleVectorParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, &lt;10, 3, 2&gt; );
+			// uniform angular friction (setting it as a scalar rather than a vector)
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_FRICTION_TIMESCALE, 10 );
+			// linear motor wins after about five seconds, decays after about a minute
+			llSetVehicleVectorParam( VEHICLE_LINEAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
+			llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_TIMESCALE, 5 );
+			llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 60 );
+			// angular motor wins after four seconds, decays in same amount of time
+			llSetVehicleVectorParam( VEHICLE_ANGULAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_TIMESCALE, 4 );
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 4 );
+			// hover
+			llSetVehicleFloatParam( VEHICLE_HOVER_HEIGHT, 0 );
+			llSetVehicleFloatParam( VEHICLE_HOVER_EFFICIENCY, 0.5 );
+			llSetVehicleFloatParam( VEHICLE_HOVER_TIMESCALE, 2.0 );
+			llSetVehicleFloatParam( VEHICLE_BUOYANCY, 1 );
+			// halfway linear deflection with timescale of 3 seconds
+			llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 0.5 );
+			llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 3 );
+			// angular deflection
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 0.5 );
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 5 );
+			// somewhat bounscy vertical attractor
+			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 0.5 );
+			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 5 );
+			// weak negative damped banking
+			llSetVehicleFloatParam( VEHICLE_BANKING_EFFICIENCY, -0.3 );
+			llSetVehicleFloatParam( VEHICLE_BANKING_MIX, 0.8 );
+			llSetVehicleFloatParam( VEHICLE_BANKING_TIMESCALE, 1 );
+			// default rotation of local frame
+			llSetVehicleRotationParam( VEHICLE_REFERENCE_FRAME, &lt;0, 0, 0, 1&gt; );
+			// remove these flags
+			llRemoveVehicleFlags( VEHICLE_FLAG_HOVER_TERRAIN_ONLY
+			| VEHICLE_FLAG_LIMIT_ROLL_ONLY
+			| VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT);
+			// set these flags
+			llSetVehicleFlags( VEHICLE_FLAG_NO_DEFLECTION_UP
+			| VEHICLE_FLAG_HOVER_WATER_ONLY
+			| VEHICLE_FLAG_HOVER_UP_ONLY
+			| VEHICLE_FLAG_LIMIT_MOTOR_UP );</string>
+         </map>
+         <key>VEHICLE_TYPE_CAR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>description</key>
+            <string>Another vehicle that bounces along the ground but needs
+			the motors to be driven from external controls or
+			timer events.
+			// most friction for left-right, least for up-down
+			llSetVehicleVectorParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, &lt;100, 2, 1000&gt; );
+			// no angular friction
+			llSetVehicleVectorParam( VEHICLE_ANGULAR_FRICTION_TIMESCALE, &lt;1000, 1000, 1000&gt; );
+			// linear motor wins after about a second, decays after about a minute
+			llSetVehicleVectorParam( VEHICLE_LINEAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
+			llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_TIMESCALE, 1 );
+			llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 60 );
+			// angular motor wins after a second, decays in less time than that
+			llSetVehicleVectorParam( VEHICLE_ANGULAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_TIMESCALE, 1 );
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 0.8 );
+			// no hover
+			llSetVehicleFloatParam( VEHICLE_HOVER_HEIGHT, 0 );
+			llSetVehicleFloatParam( VEHICLE_HOVER_EFFICIENCY, 0 );
+			llSetVehicleFloatParam( VEHICLE_HOVER_TIMESCALE, 1000 );
+			llSetVehicleFloatParam( VEHICLE_BUOYANCY, 0 );
+			// maximum linear deflection with timescale of 2 seconds
+			llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 1 );
+			llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 2 );
+			// no angular deflection
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 0 );
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 10 );
+			// critically damped vertical attractor
+			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 1 );
+			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 10 );
+			// weak negative critically damped banking
+			llSetVehicleFloatParam( VEHICLE_BANKING_EFFICIENCY, -0.2 );
+			llSetVehicleFloatParam( VEHICLE_BANKING_MIX, 1 );
+			llSetVehicleFloatParam( VEHICLE_BANKING_TIMESCALE, 1 );
+			// default rotation of local frame
+			llSetVehicleRotationParam( VEHICLE_REFERENCE_FRAME, &lt;0, 0, 0, 1&gt; );
+			// remove these flags
+			llRemoveVehicleFlags( VEHICLE_FLAG_HOVER_WATER_ONLY
+			| VEHICLE_FLAG_HOVER_TERRAIN_ONLY
+			| VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT);
+			// set these flags
+			llSetVehicleFlags( VEHICLE_FLAG_NO_DEFLECTION_UP
+			| VEHICLE_FLAG_LIMIT_ROLL_ONLY
+			| VEHICLE_FLAG_HOVER_UP_ONLY
+			| VEHICLE_FLAG_LIMIT_MOTOR_UP );</string>
+         </map>
+         <key>VEHICLE_TYPE_NONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>VEHICLE_TYPE_SLED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>description</key>
+            <string>Simple vehicle that bumps along the ground,
+			and likes to move along its local x-axis.
+			// most friction for left-right, least for up-down
+			llSetVehicleVectorParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, &lt;30, 1, 1000&gt; );
+			// no angular friction
+			llSetVehicleVectorParam( VEHICLE_ANGULAR_FRICTION_TIMESCALE, &lt;1000, 1000, 1000&gt; );
+			// no linear motor
+			llSetVehicleVectorParam( VEHICLE_LINEAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
+			llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_TIMESCALE, 1000 );
+			llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 120 );
+			// no angular motor
+			llSetVehicleVectorParam( VEHICLE_ANGULAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_TIMESCALE, 1000 );
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 120 );
+			// no hover (but with timescale of 10 sec if enabled)
+			llSetVehicleFloatParam( VEHICLE_HOVER_HEIGHT, 0 );
+			llSetVehicleFloatParam( VEHICLE_HOVER_EFFICIENCY, 10 );
+			llSetVehicleFloatParam( VEHICLE_HOVER_TIMESCALE, 10 );
+			llSetVehicleFloatParam( VEHICLE_BUOYANCY, 0 );
+			// maximum linear deflection with timescale of 1 second
+			llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 1 );
+			llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 1 );
+			// no angular deflection
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 0 );
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 10 );
+			// no vertical attractor (doesnt mind flipping over)
+			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 1 );
+			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 1000 );
+			// no banking
+			llSetVehicleFloatParam( VEHICLE_BANKING_EFFICIENCY, 0 );
+			llSetVehicleFloatParam( VEHICLE_BANKING_MIX, 1 );
+			llSetVehicleFloatParam( VEHICLE_BANKING_TIMESCALE, 10 );
+			// default rotation of local frame
+			llSetVehicleRotationParam( VEHICLE_REFERENCE_FRAME, &lt;0, 0, 0, 1&gt; );
+			// remove these flags
+			llRemoveVehicleFlags( VEHICLE_FLAG_HOVER_WATER_ONLY
+			| VEHICLE_FLAG_HOVER_TERRAIN_ONLY
+			| VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT
+			| VEHICLE_FLAG_HOVER_UP_ONLY );
+			// set these flags (the limit_roll flag will have no effect
+			// until banking is enabled, if ever)
+			llSetVehicleFlags( VEHICLE_FLAG_NO_DEFLECTION_UP
+			| VEHICLE_FLAG_LIMIT_ROLL_ONLY
+			| VEHICLE_FLAG_LIMIT_MOTOR_UP );</string>
+         </map>
+         <key>VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>36</integer>
+            <key>description</key>
+            <string>A slider between minimum (0.0 = wobbly) and maximum (1.0 = firm as possible) stability of the vehicle to keep itself upright.</string>
+         </map>
+         <key>VEHICLE_VERTICAL_ATTRACTION_TIMESCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>37</integer>
+            <key>description</key>
+            <string>The period of wobble, or timescale for exponential approach, of the vehicle to rotate such that its preferred "up" axis is oriented along the worlds "up" axis.</string>
+         </map>
+         <key>VERTICAL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>WANDER_PAUSE_AT_WAYPOINTS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>ZERO_ROTATION</key>
+         <map>
+            <key>type</key>
+            <string>rotation</string>
+            <key>value</key>
+            <string>&lt;0.0, 0.0, 0.0, 1.0&gt;</string>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>ZERO_VECTOR</key>
+         <map>
+            <key>type</key>
+            <string>vector</string>
+            <key>value</key>
+            <string>&lt;0.0, 0.0, 0.0&gt;</string>
+            <key>description</key>
+            <string/>
+         </map>
+      </map>
+      <key>events</key>
+      <map>
+         <key>at_rot_target</key>
+         <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>TargetNumber</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>TargetRotation</string>
+                  <key>type</key>
+                  <string>rotation</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>CurrentRotation</string>
+                  <key>type</key>
+                  <string>rotation</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>description</key>
+            <string>This event is triggered when a script comes within a defined angle of a target rotation. The range and rotation, are set by a call to llRotTarget.</string>
+         </map>
+         <key>at_target</key>
+         <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>TargetNumber</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>TargetPosition</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>CurrentPosition</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>description</key>
+            <string>This event is triggered when the scripted object comes within a defined range of the target position, defined by the llTarget function call.</string>
+         </map>
+         <key>attach</key>
+         <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>AvatarID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>description</key>
+            <string>This event is triggered whenever an object is attached or detached from an avatar. If it is attached, the key of the avatar it is attached to is passed in, otherwise NULL_KEY is.</string>
+         </map>
+         <key>changed</key>
+         <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Changed</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>description</key>
+            <string>Triggered when various events change the object. The change argument will be a bit-field of CHANGED_* constants.</string>
+         </map>
+         <key>collision</key>
+         <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>NumberOfCollisions</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>description</key>
+            <string>This event is raised while another object, or avatar, is colliding with the object the script is attached to.
+			The number of detected objects is passed to the script. Information on those objects may be gathered via the llDetected* functions.</string>
+         </map>
+         <key>collision_end</key>
+         <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>NumberOfCollisions</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>description</key>
+            <string>This event is raised when another object, or avatar, stops colliding with the object the script is attached to.
+			The number of detected objects is passed to the script. Information on those objects may be gathered via the llDetected* library functions.</string>
+         </map>
+         <key>collision_start</key>
+         <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>NumberOfCollisions</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>description</key>
+            <string>This event is raised when another object, or avatar, starts colliding with the object the script is attached to.
+			The number of detected objects is passed to the script. Information on those objects may be gathered via the llDetected* library functions.</string>
+         </map>
+         <key>control</key>
+         <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>AvatarID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Levels</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Edges</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>description</key>
+            <string>Once a script has the ability to grab control inputs from the avatar, this event will be used to pass the commands into the script.
+			The levels and edges are bit-fields of control constants.</string>
+         </map>
+         <key>dataserver</key>
+         <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>RequestID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Data</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>description</key>
+            <string>This event is triggered when the requested data is returned to the script.
+			Data may be requested by the llRequestAgentData, llRequestInventoryData, and llGetNotecardLine function calls, for example.</string>
+         </map>
+         <key>email</key>
+         <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Time</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Address</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Subject</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Body</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>NumberRemaining</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>description</key>
+            <string>This event is triggered when an email sent to this script arrives.
+			The number remaining tells how many more emails are known to be still pending.</string>
+         </map>
+         <key>http_request</key>
+         <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>HTTPRequestID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string>HTTP request id for response use, and function response identification.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>HTTPMethod</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string>GET, POST, or PUT</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Body</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string>Contents of the request.</string>
+               </map>
+            </array>
+            <key>description</key>
+            <string>Triggered when task receives an HTTP request.</string>
+         </map>
+         <key>http_response</key>
+         <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>HTTPRequestID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Status</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Metadata</string>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Body</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>description</key>
+            <string>This event handler is invoked when an HTTP response is received for a pending llHTTPRequest request or if a pending request fails or times out.</string>
+         </map>
+         <key>land_collision</key>
+         <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Position</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>description</key>
+            <string>This event is raised when the object the script is attached to is colliding with the ground.</string>
+         </map>
+         <key>land_collision_end</key>
+         <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Position</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>description</key>
+            <string>This event is raised when the object the script is attached to stops colliding with the ground.</string>
+         </map>
+         <key>land_collision_start</key>
+         <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Position</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>description</key>
+            <string>This event is raised when the object the script is attached to begins to collide with the ground.</string>
+         </map>
+         <key>link_message</key>
+         <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>SendersLink</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Value</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Text</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>ID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>description</key>
+            <string>Triggered when object receives a link message via llMessageLinked function call.</string>
+         </map>
+         <key>listen</key>
+         <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Channel</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Name</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>ID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Text</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>description</key>
+            <string>This event is raised whenever a chat message matching the constraints set in the llListen command is received. The name and ID of the speaker, as well as the message, are passed in as parameters.
+			Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 through 2,147,483,648 are private channels that are not sent to avatars but other scripts can listen on those channels.</string>
+         </map>
+         <key>money</key>
+         <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Payer</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Amount</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>description</key>
+            <string>This event is triggered when a resident has given an amount of Linden dollars to the object.</string>
+         </map>
+         <key>moving_end</key>
+         <map>
+            <key>arguments</key>
+            <array/>
+            <key>description</key>
+            <string>Triggered whenever an object with this script stops moving.</string>
+         </map>
+         <key>moving_start</key>
+         <map>
+            <key>arguments</key>
+            <array/>
+            <key>description</key>
+            <string>Triggered whenever an object with this script starts moving.</string>
+         </map>
+         <key>no_sensor</key>
+         <map>
+            <key>arguments</key>
+            <array/>
+            <key>description</key>
+            <string>This event is raised when sensors are active, via the llSensor function call, but are not sensing anything.</string>
+         </map>
+         <key>not_at_rot_target</key>
+         <map>
+            <key>arguments</key>
+            <array/>
+            <key>description</key>
+            <string>When a target is set via the llRotTarget function call, but the script is outside the specified angle this event is raised.</string>
+         </map>
+         <key>not_at_target</key>
+         <map>
+            <key>arguments</key>
+            <array/>
+            <key>description</key>
+            <string>When a target is set via the llTarget library call, but the script is outside the specified range this event is raised.</string>
+         </map>
+         <key>object_rez</key>
+         <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>RezzedObjectsID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>description</key>
+            <string>Triggered when an object rezzes another object from its inventory via the llRezObject, or similar, functions. The id is the globally unique key for the object rezzed.</string>
+         </map>
+         <key>on_rez</key>
+         <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>StartParameter</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>description</key>
+            <string>Triggered whenever an object is rezzed from inventory or by another object. The start parameter is passed in from the llRezObject call, or zero if from inventory.</string>
+         </map>
+         <key>path_update</key>
+         <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Type</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>One of the PU* (Path Update) constants.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Reserved</string>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>description</key>
+            <string>This event is called to inform the script of changes within the object's path-finding status.</string>
+         </map>
+         <key>remote_data</key>
+         <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>EventType</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>ChannelID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>MessageID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Sender</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Data</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Data</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>description</key>
+            <string>Triggered by various XML-RPC calls with event_type specifying the type of data.</string>
+         </map>
+         <key>run_time_permissions</key>
+         <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>PermissionFlags</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>description</key>
+            <string>Scripts need permission from either the owner or the avatar they wish to act on before they may perform certain functions, such as debiting money from their owners account, triggering an animation on an avatar, or capturing control inputs. The llRequestPermissions library function is used to request these permissions and the various permissions integer constants can be supplied.
+			The integer returned to this event handler contains the current set of permissions flags, so if permissions equal 0 then no permissions are set.</string>
+         </map>
+         <key>sensor</key>
+         <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>NumberDetected</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>description</key>
+            <string>This event is raised whenever objects matching the constraints of the llSensor command are detected.
+			The number of detected objects is passed to the script in the parameter. Information on those objects may be gathered via the llDetected* functions.</string>
+         </map>
+         <key>state_entry</key>
+         <map>
+            <key>arguments</key>
+            <array/>
+            <key>description</key>
+            <string>The state_entry event occurs whenever a new state is entered, including at program start, and is always the first event handled.</string>
+         </map>
+         <key>state_exit</key>
+         <map>
+            <key>arguments</key>
+            <array/>
+            <key>description</key>
+            <string>The state_exit event occurs whenever the state command is used to transition to another state. It is handled before the new states state_entry event.</string>
+         </map>
+         <key>timer</key>
+         <map>
+            <key>arguments</key>
+            <array/>
+            <key>description</key>
+            <string>This event is raised at regular intervals set by the llSetTimerEvent library function.</string>
+         </map>
+         <key>touch</key>
+         <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>NumberOfTouches</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>description</key>
+            <string>This event is raised while a user is touching the object the script is attached to.
+			The number of touching objects is passed to the script in the parameter.
+			Information on those objects may be gathered via the llDetected* library functions.</string>
+         </map>
+         <key>touch_end</key>
+         <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>NumberOfTouches</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>description</key>
+            <string>This event is raised when a user stops touching the object the script is attached to. The number of touches is passed to the script in the parameter.
+			Information on those objects may be gathered via the llDetected* library functions.</string>
+         </map>
+         <key>touch_start</key>
+         <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>NumberOfTouches</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>description</key>
+            <string>This event is raised when a user first touches the object the script is attached to. The number of touches is passed to the script in the parameter.
+			Information on those objects may be gathered via the llDetected() library functions.</string>
+         </map>
+         <key>transaction_result</key>
+         <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>RequestID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string>The key returned by an llTransferLindenDollar call to identify the specific request.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Success</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Boolean value, indicating success of the transfer</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Message</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string>Message which depends on the result of the transaction. If iSuccess is true, this will contain &lt;destination_id&gt;,&lt;amount&gt;</string>
+               </map>
+            </array>
+            <key>description</key>
+            <string>Triggered by llTransferMoney() function.</string>
+         </map>
+      </map>
+      <key>functions</key>
+      <map>
+         <key>llAbs</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Value</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>An integer value.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the absolute (positive) version of Value.</string>
+            <key>description</key>
+            <string>Returns the absolute value of Value.</string>
+         </map>
+         <key>llAcos</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Value</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string>A floating-point value.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the arc-cosine of Value, in radians.</string>
+            <key>description</key>
+            <string>Returns the arc-cosine of Value, in radians.</string>
+         </map>
+         <key>llAddToLandBanList</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>ID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string>Agent UUID to add to ban-list.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Hours</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string>Period, in hours, to ban the avatar for.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Add avatar ID to the land ban list, for a duration of Hours.</string>
+            <key>description</key>
+            <string>Adds agent ID to the parcel ban list for the specified number of hours. A value of 0 for hours will add the agent indefinitely.\n
+			The smallest value that Hours will accept is 0.01; anything smaller will be seen as 0.\n
+			When values that small are used, it seems the function bans in 30 second increments (Probably 36 second increments, as 0.01 of an hour is 36 seconds).\n
+			Residents teleporting to a parcel where they are banned will be redirected to a neighbouring parcel.</string>
+         </map>
+         <key>llAddToLandPassList</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.1</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>ID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string>Agent UUID to add to pass-list.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Hours</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string>Period, in hours, to allow the avatar for.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Add avatar ID to the land pass list, for a duration of Hours.</string>
+            <key>description</key>
+            <string>Add avatar ID to the land pass list, for a duration of Hours.</string>
+         </map>
+         <key>llAdjustSoundVolume</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.1</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Volume</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string>The volume to set.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Adjusts the volume (0.0 - 1.0) of the currently playing attached sound started with llPlaySound or llLoopSound.</string>
+            <key>description</key>
+            <string>Adjusts the volume of the currently playing attached sound started with llPlaySound or llLoopSound.\n
+			This function has no effect on sounds started with llTriggerSound.</string>
+         </map>
+         <key>llAllowInventoryDrop</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Flag</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Boolean, If TRUE allows anyone to drop inventory on prim, FALSE revokes.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>If Flag == TRUE, users without object modify permissions can still drop inventory items into the object.</string>
+            <key>description</key>
+            <string>If Flag == TRUE, users that do not have object modify permissions can still drop inventory items into the object.</string>
+         </map>
+         <key>llAngleBetween</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Rot1</string>
+                  <key>type</key>
+                  <string>rotation</string>
+                  <key>description</key>
+                  <string>First rotation.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Rot2</string>
+                  <key>type</key>
+                  <string>rotation</string>
+                  <key>description</key>
+                  <string>Second rotation.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the angle, in radians, between rotations Rot1 and Rot2.</string>
+            <key>description</key>
+            <string>Returns the angle, in radians, between rotations Rot1 and Rot2.</string>
+         </map>
+         <key>llApplyImpulse</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Force</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string>Amount of impulse force to apply.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Local</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Boolean, if TRUE, force is treated as a local directional vector instead of region directional vector.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Applies impulse to object, in local coordinates if local == TRUE (if the script is physical).</string>
+            <key>description</key>
+            <string> 	Applies the Force in local coordinates if Local == TRUE. Otherwise the Force is applied in global coordinates.\n
+			This function only works on physical objects.</string>
+         </map>
+         <key>llApplyRotationalImpulse</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Force</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string>Amount of impulse force to apply.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Local</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Boolean, if TRUE, uses local axis, if FALSE, uses region axis.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Applies rotational impulse to object, in local coordinates if local == TRUE (if the script is physical).</string>
+            <key>description</key>
+            <string>Applies a rotational impulse force in local coordinates if Local == TRUE. Otherwise the impulse is applied in global coordinates.\n
+			This function only works on physical objects.</string>
+         </map>
+         <key>llAsin</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Value</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string>A floating-point value.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the arc-sine, in radians, of Value.</string>
+            <key>description</key>
+            <string>Returns the arc-sine, in radians, of Value.</string>
+         </map>
+         <key>llAtan2</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>y</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string>A floating-point value.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>x</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string>A floating-point value.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the arc-tangent2 of y, x.</string>
+            <key>description</key>
+            <string>Returns the arc-tangent2 of y, x.</string>
+         </map>
+         <key>llAttachToAvatar</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>AttachmentPoint</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Attach to avatar at point AttachmentPoint, if task has permissions to do so.</string>
+            <key>description</key>
+            <string>Attach to avatar at point iAttachmentPoint.\n
+			Requires the PERMISSION_ATTACH runtime permission.</string>
+         </map>
+         <key>llAvatarOnLinkSitTarget</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>LinkNumber</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>If an avatar is sitting on the link's sit target, return the avatar's key, NULL_KEY otherwise.</string>
+            <key>description</key>
+            <string>Returns a key that is the UUID of the user seated on the specified link's prim.</string>
+         </map>
+         <key>llAvatarOnSitTarget</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>If an avatar is seated on the sit target, returns the avatar's key, otherwise NULL_KEY.</string>
+            <key>description</key>
+            <string>If an avatar is sitting on the sit target, return the avatars key, NULL_KEY otherwise. This only will detect avatars sitting on sit targets defined with llSitTarget.</string>
+         </map>
+         <key>llAxes2Rot</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>rotation</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Forward</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string>Forward/Back part of rotation.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Left</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string>Left/Right part of rotation.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Up</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string>Up/Down part of rotation.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the rotation defined by the coordinate axes.</string>
+            <key>description</key>
+            <string>Returns the rotation represented by coordinate axes Forward, Left, and Up.</string>
+         </map>
+         <key>llAxisAngle2Rot</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>rotation</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Axis</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string>Axis.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Angle</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string>Angle in radians.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the rotation that is a generated Angle about Axis.</string>
+            <key>description</key>
+            <string>Returns the rotation generated Angle about Axis.</string>
+         </map>
+         <key>llBase64ToInteger</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Text</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns an integer that is the Text, Base64 decoded as a big endian integer.</string>
+            <key>description</key>
+            <string>Returns an integer that is the Text, Base64 decoded as a big endian integer.\n
+				Returns zero if Text is longer then 8 characters. If Text contains fewer then 6 characters, the return value is unpredictable.</string>
+         </map>
+         <key>llBase64ToString</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Text</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Converts a Base64 string to a conventional string.\n
+				If the conversion creates any unprintable characters, they are converted to spaces.</string>
+            <key>description</key>
+            <string>Converts a Base 64 string to a conventional string.\n
+			If the conversion creates any unprintable characters, they are converted to question marks (this behaviour is different than llUnescapeURL's).</string>
+         </map>
+         <key>llBreakAllLinks</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>De-links all tasks in the link set (requires permission PERMISSION_CHANGE_LINKS be set).</string>
+            <key>description</key>
+            <string>De-links all objects in the link set. Requires the permission PERMISSION_CHANGE_LINKS be set.</string>
+         </map>
+         <key>llBreakLink</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>LinkNumber</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>De-links the task with the given link number (requires permission PERMISSION_CHANGE_LINKS be set).</string>
+            <key>description</key>
+            <string>De-links the object with the given link number. Requires permission PERMISSION_CHANGE_LINKS be set.</string>
+         </map>
+         <key>llCastRay</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Start</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>End</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Options</string>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Casts a ray into the physics world from 'start' to 'end' and returns data according to details in Options.</string>
+            <key>description</key>
+            <string>Cast a ray from Start to End and report collision data for intersections with objects.\n
+			Return value: [UUID_1, {link_number_1}, hit_position_1, {hit_normal_1}, UUID_2, {link_number_2}, hit_position_2, {hit_normal_2}, ... , status_code] where {} indicates optional data.</string>
+         </map>
+         <key>llCeil</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Value</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns smallest integer value &gt;= Value.</string>
+            <key>description</key>
+            <string>Returns smallest integer value &gt;= Value.</string>
+         </map>
+         <key>llClearCameraParams</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Resets all camera parameters to default values and turns off scripted camera control.</string>
+            <key>description</key>
+            <string>Resets all camera parameters to default values and turns off scripted camera control.</string>
+         </map>
+         <key>llClearLinkMedia</key>
+         <map>
+            <key>energy</key>
+            <real>0.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Link</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Face</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Clears (deletes) the media and all parameters from the given Face on the linked prim.</string>
+            <key>description</key>
+            <string>Clears (deletes) the media and all parameters from the given from the given Face on the Linked prim(s).\n
+			Returns an integer that is a STATUS_* flag which details the success/failure of the operation.</string>
+         </map>
+         <key>llClearPrimMedia</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.1</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Face</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Number of side to clear.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Clears (deletes) the media and all parameters from the given face.</string>
+            <key>description</key>
+            <string>Clears (deletes) the media and all parameters from the given Face.\n
+			Returns an integer that is a STATUS_* flag which details the success/failure of the operation.</string>
+         </map>
+         <key>llCloseRemoteDataChannel</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>1.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>ChannelID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Closes XML-RPC channel.</string>
+            <key>description</key>
+            <string>Closes the specified XML-RPC channel.</string>
+         </map>
+         <key>llCloud</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Offset</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the cloud density at the object's position + Offset.</string>
+            <key>description</key>
+            <string>Returns the cloud density at the object's position + Offset.</string>
+         </map>
+         <key>llCollisionFilter</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>ObjectName</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>ObjectID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Accept</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>
+				If TRUE, only accept collisions with ObjectName name AND ObjectID (either is optional), otherwise with objects not ObjectName AND ObjectID.
+				</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>if Accept == TRUE, only accept collisions with specified name and id (either is optional), otherwise with objects not name or id.</string>
+            <key>description</key>
+            <string>If Accept == TRUE, only accept collisions with objects Name and ID, otherwise with objects not Name or ID.\n
+			Specify an empty string or NULL_KEY to not filter on the corresponding parameter.</string>
+         </map>
+         <key>llCollisionSound</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>ImpactSound</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>ImpactVolume</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Suppress default collision sounds, replace default impact sounds with ImpactSound (empty string to suppress).</string>
+            <key>description</key>
+            <string>Suppress default collision sounds, replace default impact sounds with ImpactSound, found in the object inventory.\n
+			Supply an empty string to suppress collision sounds.</string>
+         </map>
+         <key>llCollisionSprite</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>ImpactSprite</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Suppress default collision sprites, replace default impact sprite with impact_sprite (empty string to just suppress).</string>
+            <key>description</key>
+            <string>Suppress default collision sprites, replace default impact sprite with ImpactSprite, found in the object inventory.\n
+			Supply an empty string to just suppress.</string>
+         </map>
+         <key>llCos</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Theta</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the cosine of Theta (Theta in radians).</string>
+            <key>description</key>
+            <string>Returns the cosine of Theta radians.</string>
+         </map>
+         <key>llCreateCharacter</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Options</string>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Convert link-set to AI/Physics character.</string>
+            <key>description</key>
+            <string>Creates a path-finding entity, known as a "character", from the object containing the script. Required to activate use of path-finding functions.\n
+			Options is a list of key/value pairs.</string>
+         </map>
+         <key>llCreateLink</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>1.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>TargetPrim</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string>Object UUID that is in the same region.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Parent</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>If FALSE, then TargetPrim becomes the root. If TRUE, then the script's object becomes the root.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Attempt to link task script is attached to and target (requires permission PERMISSION_CHANGE_LINKS be set). If parent == TRUE, task script is attached to is the root.</string>
+            <key>description</key>
+            <string>Attempt to link the object that the script is attached to and the target object.\n
+			Requires permission PERMISSION_CHANGE_LINKS be set.</string>
+         </map>
+         <key>llCSV2List</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Text</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Creates a list, from a string of comma separated values.</string>
+            <key>description</key>
+            <string>Create a list from a string of comma separated values specified in Text.</string>
+         </map>
+         <key>llDeleteCharacter</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Convert link-set from AI/Physics character to Physics object.</string>
+            <key>description</key>
+            <string>Convert the current link-set back to a standard object, removing all path-finding properties.</string>
+         </map>
+         <key>llDeleteSubList</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Source</string>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Start</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>End</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Removes the slice from start to end and returns the remainder of the list.</string>
+            <key>description</key>
+            <string>Remove a slice from the list and return the remainder, start and end are inclusive.\n
+				Using negative numbers for start and/or end causes the index to count backwards from the length of the list, so 0, -1 would delete the entire list.\n
+				If Start is larger than End the list deleted is the exclusion of the entries; so 6, 4 would delete the entire list except for the 5th. list entry.</string>
+         </map>
+         <key>llDeleteSubString</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Source</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Start</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>End</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Removes the indicated sub-string and returns the result.</string>
+            <key>description</key>
+            <string>Removes the indicated sub-string and returns the result, start and end are inclusive.\n
+			Using negative numbers for start and/or end causes the index to count backwards from the length of the string, so 0, -1 would delete the entire string.\n
+			If start is larger than end, the sub string is the exclusion of the entries; so 6, 4 would delete the entire string except for the 5th. character.</string>
+         </map>
+         <key>llDetachFromAvatar</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Remove the object containing the script from the avatar.</string>
+            <key>description</key>
+            <string>Remove the object containing the script from the avatar.</string>
+         </map>
+         <key>llDetectedGrab</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Number</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the grab offset of the user touching object (returns &lt;0,0,0&gt; if number is not a valid sensed object).</string>
+            <key>description</key>
+            <string>Returns the grab offset of detected object number.\n
+			Returns &lt;0.0, 0.0, 0.0&gt; if Number is not a valid object.</string>
+         </map>
+         <key>llDetectedGroup</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Number</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns TRUE if detected object is part of same group as owner.</string>
+            <key>description</key>
+            <string>Returns TRUE if detected object or agent Number has the same user group active as this object.\n
+			It will return FALSE if the object or agent is in the group, but the group is not active.</string>
+         </map>
+         <key>llDetectedKey</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Number</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the key of detected object or avatar number (returns empty key if number is not a valid index).</string>
+            <key>description</key>
+            <string>Returns the key of detected object or avatar number.\n
+			Returns NULL_KEY if Number is not a valid index.</string>
+         </map>
+         <key>llDetectedLinkNumber</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Number</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the link position of the triggered event for touches and collisions only.</string>
+            <key>description</key>
+            <string>Returns the link position of the triggered event for touches.\n
+			0 for a non-linked object, 1 for the root of a linked object, 2 for the first child, etc.</string>
+         </map>
+         <key>llDetectedName</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Number</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the name of detected object or avatar number (returns empty string if number is not a valid index).</string>
+            <key>description</key>
+            <string>Returns the name of detected object number.\n
+			Returns empty string if number is not a valid index.</string>
+         </map>
+         <key>llDetectedOwner</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Number</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the key of detected object's owner (returns empty key if number is not a valid index).</string>
+            <key>description</key>
+            <string>Returns the key of detected number objects owner.\n
+			Returns invalid key if number is not a valid index.</string>
+         </map>
+         <key>llDetectedPos</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Number</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the position of detected object or avatar number (returns &lt;0,0,0&gt; if number is not a valid index).</string>
+            <key>description</key>
+            <string>Returns the position of detected object Number.\n
+			Returns &lt;0.0, 0.0, 0.0&gt; if number is not a valid index.</string>
+         </map>
+         <key>llDetectedRot</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>rotation</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Number</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the rotation of detected object or avatar number (returns &lt;0,0,0,1&gt; if number is not a valid index).</string>
+            <key>description</key>
+            <string>Returns the rotation of detected object or avatar number.\n
+			Returns &lt;0.0, 0.0, 0.0, 1.0&gt; if number is not a valid offset.</string>
+         </map>
+         <key>llDetectedTouchBinormal</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Index</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Index of detection information</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the surface bi-normal for a triggered touch event.</string>
+            <key>description</key>
+            <string>Returns a vector that is the surface bi-normal (tangent to the surface) where the touch event was triggered.</string>
+         </map>
+         <key>llDetectedTouchFace</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Index</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Index of detection information</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the index of the face where the avatar clicked in a triggered touch event.</string>
+            <key>description</key>
+            <string>Returns an integer that is the index of the face the avatar clicked on.</string>
+         </map>
+         <key>llDetectedTouchNormal</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Index</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Index of detection information</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the surface normal for a triggered touch event.</string>
+            <key>description</key>
+            <string>Returns a vector that is the surface normal (perpendicular to the surface) where the touch event was triggered.</string>
+         </map>
+         <key>llDetectedTouchPos</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Index</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Index of detected information</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the position where the object was touched in a triggered touch event.</string>
+            <key>description</key>
+            <string>Returns a vector that is the position of the touched object, in region coordinates; unless it is a HUD, in which case it returns the position relative to the attach point.</string>
+         </map>
+         <key>llDetectedTouchST</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Index</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Index of detection information</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the s and t coordinates, in the first two components of a vector, for the surface coordinates where the prim was touched in a triggered touch event.</string>
+            <key>description</key>
+            <string>Returns a vector that is the surface coordinates where the prim was touched.\n
+			The x and y vector positions contain the horizontal (s) and vertical (t) face coordinates respectively.\n
+			Each component is in the interval [0.0, 1.0].\n
+			TOUCH_INVALID_TEXCOORD is returned if the surface coordinates cannot be determined (e.g. when the viewer does not support this function).</string>
+         </map>
+         <key>llDetectedTouchUV</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Index</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Index of detection information</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the u and v coordinates in the first two components of a vector, for the texture coordinates where the prim was touched in a triggered touch event.</string>
+            <key>description</key>
+            <string>Returns a vector that is the texture coordinates for where the prim was touched. The x and y vector positions contain the u and v face coordinates respectively.\n
+			TOUCH_INVALID_TEXCOORD is returned if the touch UV coordinates cannot be determined (e.g. when the viewer does not support this function).</string>
+         </map>
+         <key>llDetectedType</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Number</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the type (AGENT, ACTIVE, PASSIVE, SCRIPTED) of detected object (returns 0 if number is not a valid index).</string>
+            <key>description</key>
+            <string>Returns the type (AGENT, ACTIVE, PASSIVE, SCRIPTED) of detected object number. Returns 0 if number is not a valid index.\n
+			Note that number is a bit-field, so comparisons need to be a bitwise checked. e.g.:\n
+			integer iType = llDetectedType(0);\n
+			if (iType &amp; AGENT)\n
+			{\n
+				// ...do stuff with the agent\n
+			}</string>
+         </map>
+         <key>llDetectedVel</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Number</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the velocity of detected object number (returns &lt;0,0,0&gt; if number is not a valid sensed object).</string>
+            <key>description</key>
+            <string>Returns the velocity of the detected object number.\n
+			Returns&lt;0.0, 0.0, 0.0&gt; if number is not a valid offset.</string>
+         </map>
+         <key>llDialog</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.1</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>AvatarID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Text</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Buttons</string>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Channel</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Shows a dialog box on the avatar's screen with the message.\n
+				Up to 12 strings in the list form buttons.\n
+				If a button is clicked, the name is chatted on Channel.</string>
+            <key>description</key>
+            <string>Opens a "notify box" in the given avatars screen displaying the message.\n
+			Up to twelve buttons can be specified in a list of strings. When the user clicks a button, the name of the button is said on the specified channel.\n
+			Channels work just like llSay(), so channel 0 can be heard by everyone.\n
+			The chat originates at the object's position, not the avatar's position, even though it is said as the avatar (uses avatar's UUID and Name etc.).\n
+			Examples:\n
+			llDialog(who, "Are you a boy or a girl?", [ "Boy", "Girl" ], -4913);\n
+			llDialog(who, "This shows only an OK button.", [], -192);\n
+			llDialog(who, "This chats so you can hear it.", ["Hooray"], 0);</string>
+         </map>
+         <key>llDie</key>
+         <map>
+            <key>energy</key>
+            <real>0.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Deletes the object.</string>
+            <key>description</key>
+            <string>Delete the object which holds the script.</string>
+         </map>
+         <key>llDumpList2String</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Source</string>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Separator</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the list as a single string, using Separator between the entries.</string>
+            <key>description</key>
+            <string>Write the list out as a single string, using Separator between values.</string>
+         </map>
+         <key>llEdgeOfWorld</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Position</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Direction</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Checks to see whether the border hit by Direction from Position is the edge of the world (has no neighboring region).</string>
+            <key>description</key>
+            <string>Returns TRUE if the line along Direction from Position hits the edge of the world in the current simulator, returns FALSE if that edge crosses into another simulator.</string>
+         </map>
+         <key>llEjectFromLand</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>AvatarID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Ejects AvatarID from land that you own.</string>
+            <key>description</key>
+            <string>Ejects AvatarID from land that the object owner (group or resident) owns.</string>
+         </map>
+         <key>llEmail</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>20.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Address</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Subject</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Text</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Sends email to Address with Subject and Message.</string>
+            <key>description</key>
+            <string>Sends an email to Address with Subject and Message.</string>
+         </map>
+         <key>llEscapeURL</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>URL</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns an escaped/encoded version of url, replacing spaces with %20 etc.</string>
+            <key>description</key>
+            <string>Returns the string that is the URL-escaped version of URL (replacing spaces with %20, etc.).\n
+			This function returns the UTF-8 encoded escape codes for selected characters.</string>
+         </map>
+         <key>llEuler2Rot</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>rotation</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Vector</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the rotation representation of the Euler angles.</string>
+            <key>description</key>
+            <string>Returns the rotation represented by the Euler Angle.</string>
+         </map>
+         <key>llEvade</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>TargetID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string>Agent or object to evade.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Options</string>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>description</key>
+                  <string>No options yet.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Evade a specified target.</string>
+            <key>description</key>
+            <string>Characters will (roughly) try to hide from their pursuers if there is a good hiding spot along their fleeing path. Hiding means no direct line of sight from the head of the character (centre of the top of its physics bounding box) to the head of its pursuer and no direct path between the two on the navigation-mesh.</string>
+         </map>
+         <key>llExecCharacterCmd</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Command</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Command to send.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Options</string>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>description</key>
+                  <string>Height for CHARACTER_CMD_JUMP.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Execute a character command.</string>
+            <key>description</key>
+            <string>Send a command to the path system.\n
+			Currently only supports stopping the current path-finding operation or causing the character to jump.</string>
+         </map>
+         <key>llFabs</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Value</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the positive version of Value.</string>
+            <key>description</key>
+            <string>Returns the absolute value of Value.</string>
+         </map>
+         <key>llFleeFrom</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Source</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string>Global coordinate from which to flee.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Distance</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string>Distance in meters to flee from the source.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Options</string>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>description</key>
+                  <string>No options available at this time.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Flee from a point.</string>
+            <key>description</key>
+            <string>Directs a character (llCreateCharacter) to keep away from a defined position in the region or adjacent regions.</string>
+         </map>
+         <key>llFloor</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Value</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns largest integer value &lt;= Value.</string>
+            <key>description</key>
+            <string>Returns largest integer value &lt;= Value.</string>
+         </map>
+         <key>llForceMouselook</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Enable</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Boolean, if TRUE when an avatar sits on the prim, the avatar will be forced into mouse-look mode.
+				FALSE is the default setting and will undo a previously set TRUE or do nothing.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>If Enable is TRUE any avatar that sits on this object is forced into mouse-look mode.</string>
+            <key>description</key>
+            <string>After calling this function with Enable set to TRUE, any agent sitting down on the prim will be forced into mouse-look.\n
+			Just like llSitTarget, this changes a permanent property of the prim (not the object) and needs to be reset by calling this function with Enable set to FALSE in order to disable it.</string>
+         </map>
+         <key>llFrand</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Magnitude</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns a pseudo random number in the range [0, Magnitude] or [Magnitude, 0].</string>
+            <key>description</key>
+            <string>Returns a pseudo-random number between [0, Magnitude].</string>
+         </map>
+         <key>llGetAccel</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Returns the acceleration of the object relative to the region's axes.</string>
+            <key>description</key>
+            <string>Gets the acceleration of the object.</string>
+         </map>
+         <key>llGetAgentInfo</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>AvatarID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns an integer bit-field containing the agent information about id.\n
+				Returns AGENT_FLYING, AGENT_ATTACHMENTS, AGENT_SCRIPTED, AGENT_SITTING, AGENT_ON_OBJECT, AGENT_MOUSELOOK, AGENT_AWAY, AGENT_BUSY, AGENT_TYPING, AGENT_CROUCHING, AGENT_ALWAYS_RUN, AGENT_WALKING and/or AGENT_IN_AIR.</string>
+            <key>description</key>
+            <string>Returns information about the given agent ID as a bit-field of agent info constants.</string>
+         </map>
+         <key>llGetAgentLanguage</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>AvatarID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the language code of the preferred interface language of the avatar.</string>
+            <key>description</key>
+            <string>Returns a string that is the language code of the preferred interface language of the resident.</string>
+         </map>
+         <key>llGetAgentList</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Scope</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>The scope (region, parcel, parcel same owner) to return agents for.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Options</string>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>description</key>
+                  <string>List of options to apply. Current unused.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Requests a list of agents currently in the region, limited by the scope parameter.</string>
+            <key>description</key>
+            <string>Returns a list [key UUID-0, key UUID-1, ..., key UUID-n] or [string error_msg] - returns avatar keys for all agents in the region limited to the area(s) specified by scope</string>
+         </map>
+         <key>llGetAgentSize</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>AvatarID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>If the avatar is in the same region, returns the size of the bounding box of the requested avatar by id, otherwise returns ZERO_VECTOR.</string>
+            <key>description</key>
+            <string>If the agent is in the same region as the object, returns the size of the avatar.</string>
+         </map>
+         <key>llGetAlpha</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Face</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the alpha value of Face.</string>
+            <key>description</key>
+            <string>Returns the 'alpha' of the given face. If face is ALL_SIDES the value returned is the mean average of all faces.</string>
+         </map>
+         <key>llGetAndResetTime</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Returns the script time in seconds and then resets the script timer to zero.</string>
+            <key>description</key>
+            <string>Gets the time in seconds since starting and resets the time to zero.</string>
+         </map>
+         <key>llGetAnimation</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>AvatarID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the name of the currently playing locomotion animation for the avatar id.</string>
+            <key>description</key>
+            <string>Returns the currently playing animation for the specified avatar ID.</string>
+         </map>
+         <key>llGetAnimationList</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>AvatarID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns a list of keys of playing animations for an avatar.</string>
+            <key>description</key>
+            <string>Returns a list of keys of all playing animations for the specified avatar ID.</string>
+         </map>
+         <key>llGetAttached</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Returns the object's attachment point, or 0 if not attached.</string>
+            <key>description</key>
+            <string>Returns the object attachment point, or 0 if not attached.</string>
+         </map>
+         <key>llGetBoundingBox</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>ID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the bounding box around the object (including any linked prims) relative to its root prim, as a list in the format [ (vector) min_corner, (vector) max_corner ].</string>
+            <key>description</key>
+            <string>Returns the bounding box around the object or avatar with the specified key (including any linked prims) relative to the\n
+			root prim, as a list: [ (vector) min_corner, (vector) max_corner ]</string>
+         </map>
+         <key>llGetCameraPos</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Returns the current camera position for the agent the task has permissions for.</string>
+            <key>description</key>
+            <string>Returns the position of the camera, of the user that granted the script PERMISSION_TRACK_CAMERA. If no user has granted the permission, it returns ZERO_VECTOR.</string>
+         </map>
+         <key>llGetCameraRot</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>rotation</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Returns the current camera orientation for the agent the task has permissions for.</string>
+            <key>description</key>
+            <string>Returns the rotation of the camera, of the user who has granted this script PERMISSION_TRACK_CAMERA. If no user has granted the permission, it returns ZERO_ROTATION.\n
+			The key of the user whose camera is being tracked, can be obtained using llGetPermissionsKey.</string>
+         </map>
+         <key>llGetCenterOfMass</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Returns the prim's centre of mass (unless called from the root prim, where it returns the object's centre of mass).</string>
+            <key>description</key>
+            <string>Returns the prim's centre of mass (unless called from the root prim, where it returns the object's centre of mass).</string>
+         </map>
+         <key>llGetClosestNavPoint</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Point</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string>A point in region-local space.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Options</string>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>description</key>
+                  <string>No options at this time.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Get the closest navigable point to the point provided.</string>
+            <key>description</key>
+            <string>The function accepts a point in region-local space (like all the other path-finding methods) and returns either an empty list or a list containing a single vector which is the closest point on the navigation-mesh to the point provided.</string>
+         </map>
+         <key>llGetColor</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Face</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the color on Face.</string>
+            <key>description</key>
+            <string>Returns the colour of Face as a vector of red, green, and blue values between 0 and 1. If face is ALL_SIDES the colour returned is the mean average of each channel.</string>
+         </map>
+         <key>llGetCreator</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Returns a key for the creator of the prim.</string>
+            <key>description</key>
+            <string>Returns the key of the object's original creator. Similar to llGetOwner.</string>
+         </map>
+         <key>llGetDate</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Returns the current date in the UTC time zone in the format YYYY-MM-DD.</string>
+            <key>description</key>
+            <string>Returns the current UTC date as YYYY-MM-DD.</string>
+         </map>
+         <key>llGetDisplayName</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>AvatarID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string>Avatar UUID that is in the same region, or is otherwise known to the region.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the name of an avatar, if the avatar is in the current region, and the name has been cached, otherwise the same as llGetUsername.	Use llRequestDisplayName if you absolutely must have the display name.</string>
+            <key>description</key>
+            <string>Returns a string that is the non-unique display name of the avatar specified by AvatarID.\n
+			AvatarID must specify a valid avatar key, present in or otherwise known to the region in which the script is running, otherwise an empty string is returned.\n
+			This function will still return a valid display name if the avatar is a child agent of the region (i.e., in an adjacent region, but presently able to see into the one the script is in), or for a short period after the avatar leaves the region (specifically, when the client completely disconnects from the region, either as a main or child agent).</string>
+         </map>
+         <key>llGetEnergy</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Returns how much energy is in the object as a percentage of maximum.</string>
+            <key>description</key>
+            <string>Returns how much energy is in the object as a percentage of maximum.</string>
+         </map>
+         <key>llGetEnv</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>DataRequest</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string>The type of data to request. Any other string will cause an empty string to be returned.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns a string with the requested data about the region.</string>
+            <key>description</key>
+            <string>Returns a string with the requested data about the region.</string>
+         </map>
+         <key>llGetForce</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Returns the force (if the script is physical).</string>
+            <key>description</key>
+            <string>Returns the current force if the script is physical.</string>
+         </map>
+         <key>llGetFreeMemory</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Returns the number of free bytes of memory the script can use.</string>
+            <key>description</key>
+            <string>Returns the available free space for the current script. This is inaccurate with LSO.</string>
+         </map>
+         <key>llGetFreeURLs</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Returns the number of available URLs for the current script.</string>
+            <key>description</key>
+            <string>Returns an integer that is the number of available URLs.</string>
+         </map>
+         <key>llGetGeometricCenter</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Returns the geometric center of the linked set the script is attached to.</string>
+            <key>description</key>
+            <string>Returns the geometric centre of the linked set the script is in relative to the object's position (the position of the root prim of a linked set).\n
+			To get the object's position, use llGetPos.</string>
+         </map>
+         <key>llGetGMTclock</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Returns the time in seconds since midnight GMT.</string>
+            <key>description</key>
+            <string>Gets the time in seconds since midnight in GMT/UTC.</string>
+         </map>
+         <key>llGetHTTPHeader</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>HTTPRequestID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string>A valid HTTP request key</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Header</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string>Header value name</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the value for header for request_id.</string>
+            <key>description</key>
+            <string>Returns a string that is the value of the Header for HTTPRequestID.</string>
+         </map>
+         <key>llGetInventoryCreator</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>InventoryItem</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns a key for the creator of the inventory item.</string>
+            <key>description</key>
+            <string>This function returns the UUID of the creator of item. If item is not found in inventory, the object says "No item named 'name' ".</string>
+         </map>
+         <key>llGetInventoryKey</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>InventoryItem</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the key that is the UUID of the inventory named.</string>
+            <key>description</key>
+            <string>Returns the key of the inventory named.</string>
+         </map>
+         <key>llGetInventoryName</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>InventoryType</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>inventory item type</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Index</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Index number of inventory item.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the name of the inventory item number of a given type.</string>
+            <key>description</key>
+            <string>Get the name of the inventory Index number of InventoryType.\n
+			Use the inventory constants INVENTORY_* to specify the type.</string>
+         </map>
+         <key>llGetInventoryNumber</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>InventoryType</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Inventory item type</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the number of items of a given type (INVENTORY_* flag) in the prim's inventory.</string>
+            <key>description</key>
+            <string>Get the number of items of InventoryType in the object inventory.\n
+			Use the inventory constants INVENTORY_* to specify the type.</string>
+         </map>
+         <key>llGetInventoryPermMask</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>InventoryItem</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string>Inventory item name.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>BitMask</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>MASK_BASE, MASK_OWNER, MASK_GROUP, MASK_EVERYONE or MASK_NEXT</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the requested permission mask for the inventory item.</string>
+            <key>description</key>
+            <string>Returns the requested permission mask for the inventory item defined by InventoryItem. If item is not in the object's inventory, llGetInventoryPermMask returns FALSE and causes the object to say "No item named '&lt;item&gt;'", where "&lt;item&gt;" is item.\n
+			If this is used to determine whether or not an inventory item exists within the object, it will have the side effect of spamming chat. So please don't ;-)</string>
+         </map>
+         <key>llGetInventoryType</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>InventoryItem</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the type of the inventory item named.</string>
+            <key>description</key>
+            <string>Returns the type of the inventory item named.\n
+			Remember, like all inventory functions, llGetInventoryType is case-sensitive.</string>
+         </map>
+         <key>llGetKey</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Returns the key of the prim the script is attached to.</string>
+            <key>description</key>
+            <string>Get the key for the object which has this script.</string>
+         </map>
+         <key>llGetLandOwnerAt</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Position</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the key of the land owner, returns NULL_KEY if public.</string>
+            <key>description</key>
+            <string>Returns the key of the land owner at Position, or NULL_KEY if public.</string>
+         </map>
+         <key>llGetLinkKey</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>LinkNumber</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the key of the linked prim LinkNumber.</string>
+            <key>description</key>
+            <string>Returns the key of LinkNumber in the link set.</string>
+         </map>
+         <key>llGetLinkMedia</key>
+         <map>
+            <key>energy</key>
+            <real>0.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>LinkNumber</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Face</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>The prim's side number</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Parameters</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>A list of PRIM_* property constants to return values of.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Get the media parameters for a particular face on linked prim, given the desired list of parameter names. Returns a list of values in the order requested.	Returns an empty list if no media exists on the face.</string>
+            <key>description</key>
+            <string>Get the desired list of named media parameters, for a particular face, of a linked prim.\n
+				Returns a list of values in the order requested.</string>
+         </map>
+         <key>llGetLinkName</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>LinkNumber</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the name of LinkNumber in a link set.</string>
+            <key>description</key>
+            <string>Returns the name of LinkNumber the link set.</string>
+         </map>
+         <key>llGetLinkNumber</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Returns the link number of the prim containing the script (0 means not linked, 1 the prim is the root, 2 the prim is the first child, etc.).</string>
+            <key>description</key>
+            <string>Returns the link number of the prim containing the script. 0 means no link, 1 the root, 2 for first child, etc.</string>
+         </map>
+         <key>llGetLinkNumberOfSides</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>LinkNumber</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the number of sides of the specified linked prim.</string>
+            <key>description</key>
+            <string>Returns an integer that is the number of faces (or sides) of the prim link.</string>
+         </map>
+         <key>llGetLinkPrimitiveParams</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>LinkNumber</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Parameters</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>PRIM_* flags.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Get primitive parameters for LinkNumber based on rules.</string>
+            <key>description</key>
+            <string>Identical to llGetPrimitiveParams except that it acts on the prim specified by the link number given.\n
+			Returns the list of primitive attributes requested in the Parameters list for link.\n
+			PRIM_* flags can be broken into three categories, face flags, prim flags, and object flags.\n
+			* Supplying a prim or object flag will return that flags attributes.\n
+			* Face flags require the user to also supply a side parameter.</string>
+         </map>
+         <key>llGetListEntryType</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>ListVariable</string>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Index</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the type of the index entry in the list (TYPE_INTEGER, TYPE_FLOAT, TYPE_STRING, TYPE_KEY, TYPE_VECTOR, TYPE_ROTATION, or TYPE_INVALID if index is off list).</string>
+            <key>description</key>
+            <string>Returns the type of the variable at Index in ListVariable.</string>
+         </map>
+         <key>llGetListLength</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>ListVariable</string>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the number of elements in the list.</string>
+            <key>description</key>
+            <string>Returns the number of elements in ListVariable.</string>
+         </map>
+         <key>llGetLocalPos</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Returns the position relative to the root.</string>
+            <key>description</key>
+            <string>Returns the local position of a child object relative to the root.</string>
+         </map>
+         <key>llGetLocalRot</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>rotation</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Returns the rotation local to the root.</string>
+            <key>description</key>
+            <string>Returns the local rotation of a child object relative to the root.</string>
+         </map>
+         <key>llGetMass</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Returns the mass of object that the script is attached to.</string>
+            <key>description</key>
+            <string>Returns the scripted object's mass. When called from a script in a link-set, the parent will return the sum of the link-set weights, while a child will return just its own mass. When called from a script inside an attachment, this function will return the mass of the avatar it's attached to, not its own.</string>
+         </map>
+         <key>llGetMassMKS</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Acts as llGetMass(), except that the units of the value returned are Kg.</string>
+            <key>description</key>
+            <string>Acts as llGetMass(), except that the units of the value returned are Kg.</string>
+         </map>
+         <key>llGetMemoryLimit</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Get the maximum memory a script can use, in bytes.</string>
+            <key>description</key>
+            <string>Get the maximum memory a script can use.\n
+			Returns the integer amount of memory the script can use in bytes.</string>
+         </map>
+         <key>llGetNextEmail</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Address</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Subject</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Get the next waiting email with appropriate address and/or subject (if blank they are ignored).</string>
+            <key>description</key>
+            <string>Get the next waiting email with appropriate address and/or subject.\n
+				If the parameters are blank, they are not used for filtering.</string>
+         </map>
+         <key>llGetNotecardLine</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.1</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>NotecardName</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>LineNumber</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns line from NotecardName via the dataserver event.</string>
+            <key>description</key>
+            <string>This function fetches LineNumber from NotecardName and returns the data through the dataserver event. The line count starts at zero.\n
+				If the requested line is passed the end of the note-card the dataserver event will return the constant EOF string.\n
+				The key returned by this function is a unique identifier which will be supplied to the dataserver event in the requested parameter.</string>
+         </map>
+         <key>llGetNumberOfNotecardLines</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.1</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>NotecardName</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns number of lines in NotecardName via the dataserver event (cast return value to integer).</string>
+            <key>description</key>
+            <string>Returns the number of lines in the note-card sNotecardName via the dataserver event. (Cast the value returned by the dataserver to an integer.)\n
+			The key returned is a query ID for identifying the dataserver reply.</string>
+         </map>
+         <key>llGetNumberOfPrims</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Returns the number of prims in a link set the script is attached to.</string>
+            <key>description</key>
+            <string>Returns the number of prims in (and avatars seated on) the object the script is in.</string>
+         </map>
+         <key>llGetNumberOfSides</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Returns the number of faces (or sides) of the prim.</string>
+            <key>description</key>
+            <string>Returns the number of sides of the prim which has the script.</string>
+         </map>
+         <key>llGetObjectDesc</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Returns the description of the prim the script is attached to.</string>
+            <key>description</key>
+            <string>Returns the description of the scripted object/prim. You can set the description using llSetObjectDesc.</string>
+         </map>
+         <key>llGetObjectDetails</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>ID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string>Prim or avatar UUID that is in the same region.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Parameters</string>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>description</key>
+                  <string>List of OBJECT_* flags.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the object details specified in Parameters for the object with key ID.\n
+				Parameters are OBJECT_NAME, _DESC, _POS, _ROT, _VELOCITY, _OWNER, _GROUP, _CREATOR.</string>
+            <key>description</key>
+            <string>Returns a list of the details specified in Parameters for the object with key ID.</string>
+         </map>
+         <key>llGetObjectMass</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>ID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the mass of the avatar or object in the region.</string>
+            <key>description</key>
+            <string>Gets the mass of the object or avatar corresponding to ID.</string>
+         </map>
+         <key>llGetObjectName</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Returns the name of the prim which the script is attached to.</string>
+            <key>description</key>
+            <string>Returns the name of the prim (not object) which contains the script.</string>
+         </map>
+         <key>llGetObjectPermMask</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>PermissionMask</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the requested permission mask for the root object the task is attached to.</string>
+            <key>description</key>
+            <string>Returns the requested permission mask for the root object the task is attached to.</string>
+         </map>
+         <key>llGetObjectPrimCount</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>ObjectID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the total number of prims for an object in the region.</string>
+            <key>description</key>
+            <string>Returns the prim count for any object id in the same region.</string>
+         </map>
+         <key>llGetOmega</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Returns the rotation velocity in radians per second.</string>
+            <key>description</key>
+            <string>Returns a vector that is the rotation velocity of the object in radians per second.</string>
+         </map>
+         <key>llGetOwner</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Returns the object owner's UUID.</string>
+            <key>description</key>
+            <string>Returns the key for the owner of the object.</string>
+         </map>
+         <key>llGetOwnerKey</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>ObjectID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the owner of ObjectID.</string>
+            <key>description</key>
+            <string>Returns the key for the owner of object ObjectID.</string>
+         </map>
+         <key>llGetParcelDetails</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Position</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string>Location within the region.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>ParcelDetails</string>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>description</key>
+                  <string>List of details requested for the specified parcel location.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the parcel details specified in ParcelDetails for the parcel at Position.\n
+ 				Parameters is one or more of: PARCEL_DETAILS_NAME, _DESC, _OWNER, _GROUP, _AREA, _ID, _SEE_AVATARS.</string>
+            <key>description</key>
+            <string>Returns a list that is the parcel details specified in ParcelDetails (in the same order) for the parcel at Position.</string>
+         </map>
+         <key>llGetParcelFlags</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Position</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns a mask of the parcel flags (PARCEL_FLAG_*) for the parcel that includes the point Position.</string>
+            <key>description</key>
+            <string>Returns a bit-field specifying the parcel flags (PARCEL_FLAG_*) for the parcel at Position.</string>
+         </map>
+         <key>llGetParcelMaxPrims</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Position</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string>Region coordinates (z is ignored) of parcel.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>SimWide</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Boolean. If FALSE then the return is the maximum prims supported by the parcel. If TRUE then it is the combined number of prims on all parcels in the region owned by the specified parcel's owner.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the maximum number of prims allowed on the parcel at Position.</string>
+            <key>description</key>
+            <string>Returns an integer that is the maximum number of prims allowed on the parcel at Position.</string>
+         </map>
+         <key>llGetParcelMusicURL</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Gets the streaming audio URL for the parcel object is on.</string>
+            <key>description</key>
+            <string>Returns a string containing the parcel streaming audio URL.\n
+				The object owner, avatar or group, must also be the land owner.</string>
+         </map>
+         <key>llGetParcelPrimCount</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Position</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string>region coordinate</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Category</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>A PARCEL_COUNT_* flag.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>SimWide</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Boolean. If FALSE then the return is the maximum prims supported by the parcel. If TRUE then it is the combined number of prims on all parcels in the region owned by the specified parcel's owner.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the number of prims on the parcel at Position of the given category.
+				Categories: PARCEL_COUNT_TOTAL, _OWNER, _GROUP, _OTHER, _SELECTED, _TEMP.</string>
+            <key>description</key>
+            <string>Returns the number of prims used on the parcel at Position which are in Category.\n
+				If SimWide is TRUE, it returns the number of objects for the entire region in the category specified.\n
+				If SimWide is FALSE, it returns the number of objects on this specific parcel in the category specified</string>
+         </map>
+         <key>llGetParcelPrimOwners</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>2.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Position</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns a list of all residents who own objects on the parcel at Position, with individual prim counts.
+				Requires owner-like permissions for the parcel.</string>
+            <key>description</key>
+            <string>Returns a strided list of keys and integers of up to 100 agents who own objects in the parcel at Position.\n
+				The list is formatted as [ key agentKey1, integer agentCount1, key agentKey2, integer agentCount2, ... ], sorted by agent key.\n
+				The integers are counts of the number of prims (not objects) owned by the corresponding agents.\n
+				Only works when the object owner is in the region (likely the reason it doesn't work when deeded to group).</string>
+         </map>
+         <key>llGetPermissions</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Returns an integer bit-field with the permissions that have been granted.</string>
+            <key>description</key>
+            <string>Returns an integer bit-field with the script permissions granted. e.g.:\n
+				integer iPerms = llGetPermissions();\n
+				if (iPerms &amp; PERMISSION_DEBIT) {\n
+					llOwnerSay("Yay, I can steal your money!!");\n
+				} else {\n
+					llOwnerSay("Damn, your money is safe from me!");\n
+				}</string>
+         </map>
+         <key>llGetPermissionsKey</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Returns the key of the avatar that last granted permissions to the script.</string>
+            <key>description</key>
+            <string>Returns the key of the avatar that last granted or declined permissions to the script.\n
+				Returns NULL_KEY if permissions were never granted or declined.</string>
+         </map>
+         <key>llGetPhysicsMaterial</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Returns a list of the form [float gravity_multiplier, float restitution, float friction, float density].</string>
+            <key>description</key>
+            <string>Returns a list of the form [float gravity_multiplier, float restitution, float friction, float density].</string>
+         </map>
+         <key>llGetPos</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Returns the position of the task in region coordinates.</string>
+            <key>description</key>
+            <string>Returns the vector position of the task in region coordinates.</string>
+         </map>
+         <key>llGetPrimitiveParams</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.2</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Parameters</string>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>description</key>
+                  <string>PRIM_* flags</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the primitive parameters specified in the parameters list.</string>
+            <key>description</key>
+            <string>Returns primitive parameters specified in the Parameters list.</string>
+         </map>
+         <key>llGetPrimMediaParams</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.1</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Face</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>face number</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Parameters</string>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>description</key>
+                  <string>a set PRIM_* flags (in no particular order)</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the media parameters for a particular face on an object, given the desired list of parameter names, in the order requested. Returns an empty list if no media exists on the face.</string>
+            <key>description</key>
+            <string>Get the media parameters for a particular face on an object, given the desired list of Parameters.\n
+				Returns a list of values in the order requested.\n
+				Returns an empty list if no media exists on the face.</string>
+         </map>
+         <key>llGetRegionAgentCount</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Returns the number of avatars in the region.</string>
+            <key>description</key>
+            <string>Returns an integer that is the number of avatars in the region.</string>
+         </map>
+         <key>llGetRegionCorner</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Returns a vector, in meters, that is the global location of the south-west corner of the region which the object is in.</string>
+            <key>description</key>
+            <string>Returns the Region-Corner of the simulator containing the task. The region-corner is a vector (values in meters) representing distance from the first region.</string>
+         </map>
+         <key>llGetRegionFlags</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Returns the region flags (REGION_FLAG_*) for the region the object is in.</string>
+            <key>description</key>
+            <string>Returns a bit-field specifying the region flags (REGION_FLAG_*) for the region the object is in.</string>
+         </map>
+         <key>llGetRegionFPS</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Returns the mean region frames per second.</string>
+            <key>description</key>
+            <string>Returns the mean region frames per second.</string>
+         </map>
+         <key>llGetRegionName</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Returns the current region name.</string>
+            <key>description</key>
+            <string>Returns the current region name.</string>
+         </map>
+         <key>llGetRegionTimeDilation</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Returns the current time dilation as a float between 0.0 (full dilation) and 1.0 (no dilation).</string>
+            <key>description</key>
+            <string>Returns the current time dilation as a float between 0.0 and 1.0.</string>
+         </map>
+         <key>llGetRootPosition</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Returns the position (in region coordinates) of the root prim of the object which the script is attached to.</string>
+            <key>description</key>
+            <string>Gets the position (in region coordinates) of the root/parent prim of the object containing the script.\n
+			This is used to allow a child prim to determine where the root is.</string>
+         </map>
+         <key>llGetRootRotation</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>rotation</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Returns the rotation (relative to the region) of the root prim of the object which the script is attached to.</string>
+            <key>description</key>
+            <string>Gets the global rotation of the root object of the object script is attached to.</string>
+         </map>
+         <key>llGetRot</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>rotation</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Returns the rotation relative to the region's axes.</string>
+            <key>description</key>
+            <string>Returns the rotation.</string>
+         </map>
+         <key>llGetScale</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Returns the scale of the prim.</string>
+            <key>description</key>
+            <string>Returns a vector that is the scale (dimensions) of the prim.</string>
+         </map>
+         <key>llGetScriptName</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Returns the name of the script that this function is used in.</string>
+            <key>description</key>
+            <string>Returns the name of this script.</string>
+         </map>
+         <key>llGetScriptState</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>ScriptName</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns TRUE if the script named is running.</string>
+            <key>description</key>
+            <string>Returns TRUE if ScriptName is running.</string>
+         </map>
+         <key>llGetSimulatorHostname</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Returns the host-name of the machine which the script is running on (same as string in viewer Help dialog).</string>
+            <key>description</key>
+            <string>Returns the host name (server) of the region in which the scripted object is located.\n
+			For example, "sim225.agni.lindenlab.com".</string>
+         </map>
+         <key>llGetSPMaxMemory</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Returns the maximum used memory for the current script. Only valid after using PROFILE_SCRIPT_MEMORY. Non-mono scripts always use 16k.</string>
+            <key>description</key>
+            <string>Returns the integer of the most bytes used while llScriptProfiler was last active.</string>
+         </map>
+         <key>llGetStartParameter</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Returns an integer that is the script start parameter.</string>
+            <key>description</key>
+            <string>Returns the start parameter passed to llRezObject.\n
+			If the object was created from agent inventory, this function returns 0.</string>
+         </map>
+         <key>llGetStatus</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>StatusFlag</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>A STATUS_* flag</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns value of status (STATUS_PHYSICS, STATUS_PHANTOM, STATUS_BLOCK_GRAB, STATUS_ROTATE_X, STATUS_ROTATE_Y, and/or STATUS_ROTATE_Z).</string>
+            <key>description</key>
+            <string>Returns the value of specified status.</string>
+         </map>
+         <key>llGetSubString</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>String</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Start</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>End</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the indicated substring.</string>
+            <key>description</key>
+            <string>Returns the indicated sub-string from String. The start and end are inclusive.\n
+				Using negative numbers for start and/or end causes the index to count backwards from the length of the string, so 0, -1 would capture the entire string.\n
+				If start is larger than end, the sub string is the exclusion of the entries, so 6, 4 would give the entire string except for the 5th. character.</string>
+         </map>
+         <key>llGetSunDirection</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Returns a normalized vector of the direction of the sun in the region.</string>
+            <key>description</key>
+            <string>Returns the sun's direction on the simulator.</string>
+         </map>
+         <key>llGetTexture</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Face</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns a string that is the texture on face (the inventory name if it is a texture in the prim's inventory, otherwise the key).</string>
+            <key>description</key>
+            <string>Returns the texture of a face, if it is found in object inventory, its key otherwise.</string>
+         </map>
+         <key>llGetTextureOffset</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Face</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the texture offset of face in the x and y components of a vector.</string>
+            <key>description</key>
+            <string>Returns the texture offset of Face in the x and y components of a vector.</string>
+         </map>
+         <key>llGetTextureRot</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Face</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the texture rotation of side.</string>
+            <key>description</key>
+            <string>Returns the texture rotation of side.</string>
+         </map>
+         <key>llGetTextureScale</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Face</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the texture scale of side in the x and y components of a vector.</string>
+            <key>description</key>
+            <string>Returns the texture scale of a side in the x and y components of a vector.</string>
+         </map>
+         <key>llGetTime</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Returns the time in seconds since the last region reset, script reset, or call to either llResetTime or llGetAndResetTime.</string>
+            <key>description</key>
+            <string>Returns the time in seconds since the last region reset, script reset, or call to either llResetTime or llGetAndResetTime.</string>
+         </map>
+         <key>llGetTimeOfDay</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Returns the time in seconds since [SECOND_LIFE] server midnight or since region up-time, whichever is smaller.</string>
+            <key>description</key>
+            <string>Gets the time in seconds since midnight in Second Life.</string>
+         </map>
+         <key>llGetTimestamp</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Returns a time-stamp (UTC time zone) in the format: YYYY-MM-DDThh:mm:ss.ff..fZ.</string>
+            <key>description</key>
+            <string>Returns the current time-and-date (a time-stamp) in the format YYYY-MM-DDThh:mm:ss.ff..fZ, for example: 2004-08-27T00:56:21.785886Z\n
+				The letter Z is the zone designator for the zero UTC offset, and is why UTC is sometimes referred to as Zulu time (Zulu being the name of Z in the phonetic alphabet. T is just a separator between date and time.</string>
+         </map>
+         <key>llGetTorque</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Returns the torque (if the script is physical).</string>
+            <key>description</key>
+            <string>Returns a vector that is the torque (if the script is physical).</string>
+         </map>
+         <key>llGetUnixTime</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Returns the number of seconds elapsed since 00:00 hours, Jan 1, 1970 UTC from the system clock.</string>
+            <key>description</key>
+            <string>Returns the number of seconds elapsed since 00:00 hours, Jan 1, 1970 UTC from the system clock.\n
+				In UNIX terms, time_t. This is great for a monotonic source of time that ticks once a second.</string>
+         </map>
+         <key>llGetUsedMemory</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Returns the current used memory for the current script. Non-mono scripts always use 16K.</string>
+            <key>description</key>
+            <string>Returns the integer of the number of bytes of memory currently in use by the script. Non-mono scripts always use 16K.</string>
+         </map>
+         <key>llGetUsername</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>AvatarID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the single-word user-name of an avatar, if the avatar is in the current region, otherwise the empty string.</string>
+            <key>description</key>
+            <string>Returns a string that is the unique user-name of the avatar specified.\n
+				AvatarID must specify a valid avatar key present in, or otherwise known to, the region in which the script is running, otherwise an empty string is returned. This function will still return a valid user-name if the avatar is a child agent of the region (i.e., in an adjacent region, but presently able to see into the one the script is in), or for a short period after the avatar leaves the region (specifically, when the client completely disconnects from the region, either as a main or child agent).</string>
+         </map>
+         <key>llGetVel</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Returns the velocity of the object.</string>
+            <key>description</key>
+            <string>Returns a vector that is the velocity of the object.</string>
+         </map>
+         <key>llGetWallclock</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Returns the time in seconds since midnight California Pacific time (PST/PDT).</string>
+            <key>description</key>
+            <string>Returns the time in seconds since simulator's time-zone midnight (Pacific Time).</string>
+         </map>
+         <key>llGiveInventory</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>TargetID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>InventoryItem</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Give InventoryItem to destination represented by TargetID.</string>
+            <key>description</key>
+            <string>Give the named inventory item to the avatar or object in the same simulator as the giver.\n
+			If the recipient is an avatar, the avatar then follows the normal procedure of accepting or denying the offer. If the recipient is an object, the same permissions apply as if you were dragging inventory onto the object by hand, i.e. if llAllowInventoryDrop has been called with TRUE, any other object can pass objects to its inventory.</string>
+         </map>
+         <key>llGiveInventoryList</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>3.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>TargetID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>FolderName</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>InventoryItems</string>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Give InventoryItems to destination (represented by TargetID) as a new folder of items.</string>
+            <key>description</key>
+            <string>Give the list of named inventory items to the keyed avatar or object in the same simulator as the giver.\n
+			If the recipient is an avatar, the avatar then follows the normal procedure of accepting or denying the offer. The offered inventory is then placed in a folder named category in the recipients inventory.\n
+			If the recipient is an object, the same permissions apply as if you were dragging inventory onto the object by hand, i.e. if llAllowInventoryDrop has been called with TRUE, any other object can pass objects to its inventory. If the recipient is an object, the sFolderName parameter is ignored.</string>
+         </map>
+         <key>llGiveMoney</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>AvatarID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Amount</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Transfers Amount of L from script owner to AvatarID.</string>
+            <key>description</key>
+            <string>Transfer Amount from the script owner to AvatarID.\n
+				This call will (silently) fail if PERMISSION_DEBIT has not been set.</string>
+         </map>
+         <key>llGodLikeRezObject</key>
+         <map>
+            <key>god-mode</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>InventoryItemID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Position</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Rez directly off of a UUID if owner has dog-bit set.</string>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>llGround</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Offset</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the ground height at the object position + offset.</string>
+            <key>description</key>
+            <string>Returns the ground height at the object's position + Offset.</string>
+         </map>
+         <key>llGroundContour</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Offset</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the ground contour direction below the object position + Offset.</string>
+            <key>description</key>
+            <string>Returns the ground contour at the object's position + Offset.</string>
+         </map>
+         <key>llGroundNormal</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Offset</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the ground normal below the object position + offset.</string>
+            <key>description</key>
+            <string>Returns the ground contour at the object's position + Offset.</string>
+         </map>
+         <key>llGroundRepel</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Height</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string>.Distance above the ground.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Water</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Boolean, if TRUE then hover above water too.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Tau</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string>Seconds to critically damp in.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Critically damps to height if within height * 0.5 of level (either above ground level or above the higher of land and water if water == TRUE).</string>
+            <key>description</key>
+            <string>Critically damps to fHeight if within fHeight * 0.5 of ground or water level.\n
+				The height is above ground level if iWater is FALSE or above the higher of land and water if iWater is TRUE.\n
+				Do not use with vehicles. Only works in physics-enabled objects.</string>
+         </map>
+         <key>llGroundSlope</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Offset</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the ground slope below the object position + Offset.</string>
+            <key>description</key>
+            <string>Returns the ground slope at the object position + Offset.</string>
+         </map>
+         <key>llHTTPRequest</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>URL</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string>A valid HTTP/HTTPS URL.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Parameters</string>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>description</key>
+                  <string>Configuration parameters, specified as HTTP_* flag-value pairs.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Body</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string>Contents of the request.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Sends an HTTP request to the specified URL with the Body of the request and Parameters.</string>
+            <key>description</key>
+            <string>Sends an HTTP request to URL with the specified body and parameters.\n
+				Returns a key that is a handle identifying the HTTP request made.</string>
+         </map>
+         <key>llHTTPResponse</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>HTTPRequestID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string>A valid HTTP request key.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Status</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>HTTP Status (200, 400, 404, etc.).</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Body</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string>Contents of the response.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Responds to HTTPRequestID with Status and Body.</string>
+            <key>description</key>
+            <string>Responds to HTTPRequestID with Status code and Body.</string>
+         </map>
+         <key>llInsertString</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>TargetVariable</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Position</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>SourceVariable</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Inserts SourceVariable into TargetVariable at Position, and returns the result.</string>
+            <key>description</key>
+            <string>Inserts SourceVariable into TargetVariable at Position and returns the result. Note this does not alter TargetVariable.</string>
+         </map>
+         <key>llInstantMessage</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>2.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>AvatarID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Text</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>IMs Text to the user identified.</string>
+            <key>description</key>
+            <string>Send Text to the user as an instant message.</string>
+         </map>
+         <key>llIntegerToBase64</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Value</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns a string that is a Base64 big endian encode of Value.</string>
+            <key>description</key>
+            <string>Encodes the Value as an 8-character Base64 string.</string>
+         </map>
+         <key>llKey2Name</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>ID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string>Avatar or rezzed prim UUID.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the name of the prim or avatar specified by ID. The ID must be a valid rezzed prim or avatar key in the current simulator, otherwise an empty string is returned.</string>
+            <key>description</key>
+            <string>Returns the name of a rezzed prim or avatar, present in or otherwise known, to the region in which the script is running. If the key is invalid (not in region, or not a prim or avatar's key), returns an empty string.</string>
+         </map>
+         <key>llLinkParticleSystem</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>LinkNumber</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Rules</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Particle system rules list in the format [ rule1, data1, rule2, data2 . . . ruleN, dataN ]</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Creates a particle system based on Rules. An empty list removes a particle system from object.\n
+				List format is [ rule-1, data-1, rule-2, data-2 ... rule-n, data-n ].</string>
+            <key>description</key>
+            <string>A particle system defined by a list of rules is set for the prim(s) link. This is identical to llParticleSystem except that it applies to a specified linked prim and not just the prim the script is in.</string>
+         </map>
+         <key>llLinkSitTarget</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>LinkNumber</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag of the prim.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Offset</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string>Position for the sit target, relative to the prim's position.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Rotation</string>
+                  <key>type</key>
+                  <string>rotation</string>
+                  <key>description</key>
+                  <string>Rotation (relative to the prim's rotation) for the avatar.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Set the sit location for the linked prim(s). If Offset == &lt;0,0,0&gt; clear it.</string>
+            <key>description</key>
+            <string>Set the sit location for the linked prim(s). The sit location is relative to the prim's position and rotation.</string>
+         </map>
+         <key>llList2CSV</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>ListVariable</string>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Creates a string of comma separated values from the list.</string>
+            <key>description</key>
+            <string>Create a string of comma separated values from the specified list.</string>
+         </map>
+         <key>llList2Float</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>ListVariable</string>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Index</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Copies the float at Index in the list.</string>
+            <key>description</key>
+            <string>Returns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to a float, then zero is returned.</string>
+         </map>
+         <key>llList2Integer</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>ListVariable</string>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Index</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Copies the integer at Index in the list.</string>
+            <key>description</key>
+            <string>Returns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to an integer, then zero is returned.</string>
+         </map>
+         <key>llList2Key</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>ListVariable</string>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Index</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Copies the key at Index in the list.</string>
+            <key>description</key>
+            <string>Returns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to a key, then null string is returned.</string>
+         </map>
+         <key>llList2List</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>ListVariable</string>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Start</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>End</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Copies the slice of the list from Start to End.</string>
+            <key>description</key>
+            <string>Returns the slice of the list from start to end from the list as a new list. The start and end parameters are inclusive.\n
+				Using negative numbers for start and/or end causes the index to count backwards from the length of the list, so 0, -1 would capture the entire list.\n
+				If start is larger than end the list returned is the exclusion of the entries, so 6, 4 would give the entire list except for the 5th. entry.</string>
+         </map>
+         <key>llList2ListStrided</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>ListVariable</string>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Start</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>End</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Stride</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Copies the strided slice of the list from Start to End.</string>
+            <key>description</key>
+            <string>Returns a copy of the strided slice of the specified list from Start to End.</string>
+         </map>
+         <key>llList2Rot</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>rotation</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>ListVariable</string>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Index</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Copies the rotation at Index in the list.</string>
+            <key>description</key>
+            <string>Returns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to rotation, thenZERO_ROTATION is returned.</string>
+         </map>
+         <key>llList2String</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>ListVariable</string>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Index</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Copies the string at Index in the list.</string>
+            <key>description</key>
+            <string>Returns the value at Index in the specified list as a string. If Index describes a location not in the list then null string is returned.</string>
+         </map>
+         <key>llList2Vector</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>ListVariable</string>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Index</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Copies the vector at Index in the list.</string>
+            <key>description</key>
+            <string>Returns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to a vector, then ZERO_VECTOR is returned.</string>
+         </map>
+         <key>llListen</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Channel</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>SpeakersName</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>SpeakersID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Text</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Sets a callback for Text on Channel from SpeakersName and SpeakersID (SpeakersName, SpeakersID, and/or Text can be empty) and returns an identifier that can be used to deactivate or remove the listen.</string>
+            <key>description</key>
+            <string>Sets a listen event callback on the specified channel. Specifying values for speakername, speakerID, and message will filter the results accordingly, which is advisable or your listen event will respond to every thing said on the channel potentially causing a great deal of lag.\n
+				Returns an identifier that can be used to deactivate or remove the listen. The name, id and/or msg parameters\n
+				Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 to 2,147,483,648 are hidden channels that are not sent to avatars.</string>
+         </map>
+         <key>llListenControl</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>ChannelHandle</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Active</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Makes a listen event callback active or inactive.</string>
+            <key>description</key>
+            <string>Make a listen event callback active or inactive. Pass in the value returned from llListen to the iChannelHandle parameter to specify which event you are controlling.\n
+				Use boolean values to specify Active</string>
+         </map>
+         <key>llListenRemove</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>ChannelHandle</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Removes listen event callback number.</string>
+            <key>description</key>
+            <string>Removes a listen event callback. Pass in the value returned from llListen to the iChannelHandle parameter to specify which event to remove.</string>
+         </map>
+         <key>llListFindList</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>ListVariable</string>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Find</string>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the index of the first instance of Find in ListVariable. Returns -1 if not found.</string>
+            <key>description</key>
+            <string>Returns the position of the first instance of the Find list in the ListVariable. Returns -1 if not found.</string>
+         </map>
+         <key>llListInsertList</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Target</string>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>ListVariable</string>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Position</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns a list that contains all the elements from Target but with the elements from ListVariable inserted at Position start.</string>
+            <key>description</key>
+            <string>Returns a new list, created by inserting ListVariable into the Target list at Position. Note this does not alter the Target.</string>
+         </map>
+         <key>llListRandomize</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>ListVariable</string>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Stride</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns a randomized list of blocks of size Stride.</string>
+            <key>description</key>
+            <string>Returns the specified list randomized into blocks of size stride.\n
+				If the remainder from the length of the list, divided by the stride is non-zero, this function does not randomize the list.</string>
+         </map>
+         <key>llListReplaceList</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Target</string>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>ListVariable</string>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Start</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>End</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns a list that is Target with Start through End removed and ListVariable inserted at Start.</string>
+            <key>description</key>
+            <string>Returns a list replacing the slice of the Target list from Start to End with the specified ListVariable. Start and End are inclusive, so 0, 1 would replace the first two entries and 0, 0 would replace only the first list entry.</string>
+         </map>
+         <key>llListSort</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>ListVariable</string>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>description</key>
+                  <string>List to sort.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Stride</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Stride length.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Ascending</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Boolean. TRUE = result in ascending order, FALSE = result in descending order.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Sorts the list into blocks of stride, in Ascending order if Ascending == TRUE. The sort order is affected by type.</string>
+            <key>description</key>
+            <string>Returns the specified list, sorted into blocks of stride in ascending order (if Ascending is TRUE, otherwise descending). Note that sort only works if the first entry of each block is the same type.</string>
+         </map>
+         <key>llListStatistics</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Operation</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string> One of LIST_STAT_* values </string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>ListVariable</string>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>description</key>
+                  <string>Variable to analyse.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Performs statistical aggregate functions on ListVariable using LIST_STAT_* Operations.</string>
+            <key>description</key>
+            <string>This function allows a script to perform a statistical operation as defined by operation on a list composed of integers and floats.</string>
+         </map>
+         <key>llLoadURL</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>AvatarID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Text</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>URL</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Shows dialog to avatar AvatarID offering to load web page at URL.	If user clicks yes, launches their web browser.</string>
+            <key>description</key>
+            <string>llLoadURL displays a dialogue box to the user, offering to load the specified web page using the default web browser.</string>
+         </map>
+         <key>llLog</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Value</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the natural logarithm of Value. Returns zero if Value &lt;= 0.</string>
+            <key>description</key>
+            <string>Returns the base e (natural) logarithm of the specified Value.</string>
+         </map>
+         <key>llLog10</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Value</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the base 10 logarithm of Value. Returns zero if Value &lt;= 0.</string>
+            <key>description</key>
+            <string>Returns the base 10 (common) logarithm of the specified Value.</string>
+         </map>
+         <key>llLookAt</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Target</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Strength</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Damping</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Cause object name to point it's forward axis towards Target.</string>
+            <key>description</key>
+            <string>Cause object to point the forward axis toward Target.\n
+				Good Strength values are around half the mass of the object and good Damping values are less than 1/10th of the Strength.\n
+				Asymmetrical shapes require smaller Damping. A Strength of 0.0 cancels the look at.</string>
+         </map>
+         <key>llLoopSound</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Sound</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Volume</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Plays attached Sound, looping indefinitely, at Volume (0.0 - 1.0).</string>
+            <key>description</key>
+            <string>Similar to llPlaySound, this function plays a sound attached to an object, but will continuously repeat that sound until llStopSound or llPlaySound is called.\n
+			Only one sound may be attached to an object at a time. A second call to llLoopSound with the same key will not restart the sound, but the new volume will be used. This allows control over the volume of already playing sounds.\n
+			Setting the volume to 0 is not the same as calling llStopSound; a sound with 0 volume will continue to loop.\n
+			To restart the sound from the beginning, call llStopSound before calling llLoopSound again.</string>
+         </map>
+         <key>llLoopSoundMaster</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Sound</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Volume</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Plays attached Sound, looping at volume (0.0 - 1.0), and declares it a sync master.</string>
+            <key>description</key>
+            <string>Behaviour is identical to llLoopSound, with the addition of marking the source as a "Sync Master", causing "Slave" sounds to sync to it. If there are multiple masters within a viewers interest area, the most audible one (a function of both distance and volume) will win out as the master.\n
+				The use of multiple masters within a small area is unlikely to produce the desired effect.</string>
+         </map>
+         <key>llLoopSoundSlave</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Sound</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Volume</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Plays attached sound looping at volume (0.0 - 1.0), synced to most audible sync master.</string>
+            <key>description</key>
+            <string>Behaviour is identical to llLoopSound, unless there is a "Sync Master" present.\n
+				If a Sync Master is already playing the Slave sound will begin playing from the same point the master is in its loop synchronizing the loop points of both sounds.\n
+				If a Sync Master is started when the Slave is already playing, the Slave will skip to the correct position to sync with the Master.</string>
+         </map>
+         <key>llMakeExplosion</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.1</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Particles</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Scale</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Velocity</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Lifetime</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Arc</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Texture</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Offset</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Make a round explosion of particles. Deprecated: Use llParticleSystem instead.</string>
+            <key>description</key>
+            <string>Make a round explosion of particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.</string>
+         </map>
+         <key>llMakeFire</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.1</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Particles</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Scale</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Velocity</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Lifetime</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Arc</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Texture</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Offset</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Make fire like particles. Deprecated: Use llParticleSystem instead.</string>
+            <key>description</key>
+            <string>Make fire particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.</string>
+         </map>
+         <key>llMakeFountain</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.1</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Particles</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Scale</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Velocity</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Lifetime</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Arc</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Texture</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Offset</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Make a fountain of particles. Deprecated: Use llParticleSystem instead.</string>
+            <key>description</key>
+            <string>Make a fountain of particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.</string>
+         </map>
+         <key>llMakeSmoke</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.1</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Particles</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Scale</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Velocity</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Lifetime</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Arc</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Texture</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Offset</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Make smoke like particles. Deprecated: Use llParticleSystem instead.</string>
+            <key>description</key>
+            <string>Make smoky particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.</string>
+         </map>
+         <key>llManageEstateAccess</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Action</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>One of the ESTATE_ACCESS_ALLOWED_* actions.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>AvatarID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string>UUID of the avatar or group to act upon.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Use to add or remove agents from the estate's agent access or ban lists or groups from the estate's group access list.</string>
+            <key>description</key>
+            <string>Use to add or remove agents from the estate's agent access or ban lists or groups from the estate's group access list.\n
+			Returns an integer representing a boolean, TRUE if the call was successful; FALSE if throttled, invalid action, invalid or null id or object owner is not allowed to manage the estate.</string>
+         </map>
+         <key>llMapDestination</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>1.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>RegionName</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Position</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Direction</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Opens world map centred on region with Position highlighted. Only works for scripts attached to avatar, or during touch events. NOTE: Direction currently does nothing.</string>
+            <key>description</key>
+            <string>Shows a given location on the map, opening the map window whenever it is called.\n
+				There is no way to simply set the map position without opening the window.\n
+				Only works in attachments, or during touch events.</string>
+         </map>
+         <key>llMD5String</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Text</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Nonce</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns a string of 32 hex characters that is an RSA Data Security Inc., MD5 Message-Digest Algorithm of Text with Nonce.</string>
+            <key>description</key>
+            <string>Performs an RSA Data Security, Inc. MD5 Message-Digest Algorithm on the specified string using the nonce (also known as salt).\n
+				Returns a 32-character hex string. (128-bit in binary.)</string>
+         </map>
+         <key>llMessageLinked</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>LinkNumber</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Number</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Text</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>ID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Sends Number, Text, and ID to members of the link set identified by LinkNumber (LINK_ROOT sends to root task in a linked set, LINK_SET sends to all tasks, LINK_ALL_OTHERS to all other tasks, LINK_ALL_CHILDREN to all children, LINK_THIS to the task the script it is in).</string>
+            <key>description</key>
+            <string>Sends the specified number, string, and key to members of the link set.\n
+				The LinkNumber parameter is either a linked number available through llGetLinkNumber or a LINK_* constant.</string>
+         </map>
+         <key>llMinEventDelay</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Delay</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Set the minimum time between events being handled.</string>
+            <key>description</key>
+            <string>Set the minimum time between events being handled.</string>
+         </map>
+         <key>llModifyLand</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Action</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>LAND_LEVEL, LAND_RAISE, LAND_LOWER, LAND_SMOOTH, LAND_NOISE or LAND_REVERT</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Area</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>LAND_SMALL_BRUSH, LAND_MEDIUM_BRUSH or LAND_LARGE_BRUSH</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Modify land with action (LAND_LEVEL, LAND_RAISE, LAND_LOWER, LAND_SMOOTH, LAND_NOISE, LAND_REVERT) on size (LAND_SMALL_BRUSH, LAND_MEDIUM_BRUSH, LAND_LARGE_BRUSH).</string>
+            <key>description</key>
+            <string>Modify land with action on size area. The parameters can be chosen from the land constants.</string>
+         </map>
+         <key>llModPow</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>1.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Value</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Power</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Modulus</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns a Value raised to the Power, mod Modulus. ((a**b)%c) b is capped at 0xFFFF (16 bits).</string>
+            <key>description</key>
+            <string>Returns (Value ^ Power) % Modulus. (Value raised to the Power, Modulus). Value is capped at 0xFFFF (16 bits).</string>
+         </map>
+         <key>llMoveToTarget</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Target</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Tau</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Critically damp to Target in Tau seconds (if the script is physical).</string>
+            <key>description</key>
+            <string>Critically damp to position target in tau-seconds if the script is physical. Good tau-values are greater than 0.2. A tau of 0.0 stops the critical damping.</string>
+         </map>
+         <key>llNavigateTo</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Location</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string>Region coordinates for the character to navigate to.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Options</string>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>description</key>
+                  <string>List of parameters to control the type of path-finding used. Currently only FORCE_DIRECT_PATH supported.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Navigate to destination.</string>
+            <key>description</key>
+            <string>Directs an object to travel to a defined position in the region or adjacent regions.</string>
+         </map>
+         <key>llOffsetTexture</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.2</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>OffsetS</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>OffsetT</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Face</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Sets the texture S and T offsets for the chosen Face.</string>
+            <key>description</key>
+            <string>Sets the texture s and t offsets of face.\n
+			If Face is ALL_SIDES this function sets the texture offsets for all faces.</string>
+         </map>
+         <key>llOpenRemoteDataChannel</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>1.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Requests a channel to listen for XML-RPC calls. Will trigger a remote_data event with channel ID once it is available.</string>
+            <key>description</key>
+            <string>Requests a channel to listen for XML-RPC calls. (Deprecated: XML-RPC should not be used. Use http-in instead.)\n
+				Will trigger a remote_data event with type = REMOTE_DATA_CHANNEL and a channel ID (key) once it is available.\n
+				This channel ID must be referenced in the XML-RPC call to the script (from the internet) -- so the key must somehow get to the scripter's XML-RPC client, most often via llEmail, llHttpRequest or llLoadUrl.</string>
+         </map>
+         <key>llOverMyLand</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>ID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns TRUE if id ID over land owned by the script owner, otherwise FALSE.</string>
+            <key>description</key>
+            <string>Returns TRUE if key ID is over land owned by the object owner, FALSE otherwise.</string>
+         </map>
+         <key>llOwnerSay</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Text</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>says Text to owner only (if owner is in region).</string>
+            <key>description</key>
+            <string>Says Text to the owner of the object running the script, if the owner has been within the object's simulator since logging into Second Life, regardless of where they may be in-world.</string>
+         </map>
+         <key>llParcelMediaCommandList</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>2.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>CommandList</string>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>description</key>
+                  <string>A list of PARCEL_MEDIA_COMMAND_* flags and their parameters </string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Sends a list of commands, some with arguments, to a parcel.</string>
+            <key>description</key>
+            <string>Controls the playback of multimedia resources on a parcel or for an agent.</string>
+         </map>
+         <key>llParcelMediaQuery</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>2.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>QueryList</string>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns a list containing results of the sent query.</string>
+            <key>description</key>
+            <string>Queries the texture and/or URL for QuickTime-playable video on the land parcel.\n
+				This function will only work if the script is contained within an object owned by the land-owner (or if the land is owned by a group, only if the object has been deeded to the group). It will not work for group land if the object owner is a member of the group. The object actually has to be owned by the group.</string>
+         </map>
+         <key>llParseString2List</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Text</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Separators</string>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Spacers</string>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Breaks Text into a list, discarding Separators, keeping Spacers (Separators and Spacers must be lists of strings, maximum of 8 each).</string>
+            <key>description</key>
+            <string>Breaks the Text into a list using Separators and Spacers to delimit entries. Separators are discarded, while Spacers are kept. Any empty entries are ignored.\n
+				The separators and spacers must be lists of strings with a maximum of 8 entries each. So, if you had made the call:\n
+				llParseString2List("Parsethisnow! I dare:you to.", ["this", "!", " "], [":"]);\n
+				You would get the list: ["Parse", "now", "I", "dare", ":", "you", "to"].</string>
+         </map>
+         <key>llParseStringKeepNulls</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Text</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Separators</string>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Spacers</string>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Breaks Text into a list, discarding separators, keeping spacers, keeping any null values generated. (separators and spacers must be lists of strings, maximum of 8 each).</string>
+            <key>description</key>
+            <string>llParseStringKeepNulls works almost exactly like llParseString2List, except that if a null is found it will add a null-string instead of discarding it like llParseString2List does.</string>
+         </map>
+         <key>llParticleSystem</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Parameters</string>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Creates a particle system based on Parameters.	An empty list removes particle system from object.
+				List format is [ rule-1, data-1, rule-2, data-2 . . . rule-n, data-n ].</string>
+            <key>description</key>
+            <string>Makes a particle system based on the parameter list.\n
+				The parameters are specified as an ordered list of parameter and value. Valid parameters and their expected values can be found in the particle system constants.\n
+				Here is a simple example:\n
+				llParticleSystem([PSYS_PART_FLAGS, PSYS_PART_WIND_MASK, PSYS_PART_START_COLOR, &lt;1, 0, 0&gt;, PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_EXPLODE]);</string>
+         </map>
+         <key>llPassCollisions</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Pass</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Boolean, if TRUE, collisions are passed from children on to parents.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>If Pass == TRUE, collisions are passed from children on to parents (default is FALSE).</string>
+            <key>description</key>
+            <string>If pass is TRUE, land and object collisions are passed from children on to parents.\n
+				The default is FALSE if there is no script to handle the collision events.</string>
+         </map>
+         <key>llPassTouches</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Pass</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Boolean, if TRUE, touches are passed from children on to parents.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>If pass == TRUE, touches are passed from children on to parents (default is FALSE).</string>
+            <key>description</key>
+            <string>If pass is TRUE, touches are passed from children on to parents.\n
+				The default is TRUE if there is no script to handle the touch events.</string>
+         </map>
+         <key>llPatrolPoints</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Points</string>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>description</key>
+                  <string>A list of vectors for the character to travel through sequentially. The list must contain at least two entries.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Options</string>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>description</key>
+                  <string>No options available at this time.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Patrol a list of points.</string>
+            <key>description</key>
+            <string>Sets the points for a character (llCreateCharacter) to patrol along.</string>
+         </map>
+         <key>llPlaySound</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Sound</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Volume</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Plays attached Sound once, at Volume (0.0 - 1.0).</string>
+            <key>description</key>
+            <string>Plays a sound once. The sound will be attached to the object and follow object's movement. Only one sound may be attached to an object at a time, and attaching a new sound or calling llStopSound will stop the previously attached sound.\n
+				A second call to llPlaySound with the same sound will not restart the sound, but the new volume will be used, which allows control over the volume of already playing sounds.\n
+				To restart the sound from the beginning, call llStopSound before calling llPlaySound again.</string>
+         </map>
+         <key>llPlaySoundSlave</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Sound</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Volume</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Plays attached Sound once, at Volume (0.0 - 1.0), synced to next loop of most audible sync master.</string>
+            <key>description</key>
+            <string>Behaviour is identical to llPlaySound, unless there is a "Sync Master" present. If a Sync Master is already playing, the Slave sound will not be played until the Master hits its loop point and returns to the beginning.\n
+				llPlaySoundSlave will play the sound exactly once; if it is desired to have the sound play every time the Master loops, either use llLoopSoundSlave with extra silence padded on the end of the sound or ensure that llPlaySoundSlave is called at least once per loop of the Master.</string>
+         </map>
+         <key>llPow</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Value</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Exponent</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the Value raised to the power Exponent, or returns 0 and triggers Math Error for imaginary results.</string>
+            <key>description</key>
+            <string>Returns the Value raised to the Exponent.</string>
+         </map>
+         <key>llPreloadSound</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>1.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Sound</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Preloads a sound on viewers within range.</string>
+            <key>description</key>
+            <string>Causes nearby viewers to preload the Sound from the object's inventory. This is intended to prevent delays in starting new sounds when called upon.</string>
+         </map>
+         <key>llPursue</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>TargetID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string>Agent or object to pursue.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Options</string>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>description</key>
+                  <string>Parameters for pursuit.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Chase after a target.</string>
+            <key>description</key>
+            <string>Causes the character (llCharacter) to pursue the target defined by TargetID.</string>
+         </map>
+         <key>llPushObject</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>ObjectID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Impulse</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>AngularImpulse</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Local</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Applies Impulse and AngularImpulse to ObjectID.</string>
+            <key>description</key>
+            <string>Applies the supplied impulse and angular impulse to the object specified.</string>
+         </map>
+         <key>llRefreshPrimURL</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>20.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Reloads the web page shown on the sides of the object.</string>
+            <key>description</key>
+            <string>Reloads the web page shown on the sides of the object.</string>
+         </map>
+         <key>llRegionSay</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Channel</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Any integer value except zero.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Text</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Message to be transmitted.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Broadcasts Text to entire region on Channel (not 0.).</string>
+            <key>description</key>
+            <string>Says the Text on the specified non-zero Channel, so that it can be heard anywhere in the region by a script listening on that channel.</string>
+         </map>
+         <key>llRegionSayTo</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>TargetID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string>Avatar or object to say to.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Channel</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Output channel, any integer value.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Text</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string>Message to be transmitted.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Says Text, on Channel, to avatar or object indicated by TargetID (if within region).</string>
+            <key>description</key>
+            <string>Says the Text on the supplied channel number, to the object or avatar specified.</string>
+         </map>
+         <key>llReleaseCamera</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>AvatarID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Return camera to agent.</string>
+            <key>description</key>
+            <string>Deprecated: Use llClearCameraParams instead.</string>
+         </map>
+         <key>llReleaseControls</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Stop taking inputs.</string>
+            <key>description</key>
+            <string>Stop taking inputs from the avatar.</string>
+         </map>
+         <key>llReleaseURL</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>URL</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string>URL to release.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Releases the specified URL, it will no longer be usable.</string>
+            <key>description</key>
+            <string>Releases the specified URL, it will no longer be usable.</string>
+         </map>
+         <key>llRemoteDataReply</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>3.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>ChannelID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>MessageID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Data</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Data</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Send an XML-RPC reply to MessageID on ChannelID with payload of string sData and integer iData. Deprecated: Use HTTP functions/events instead.</string>
+            <key>description</key>
+            <string>Deprecated: Use HTTP functions/events instead.\n
+				Send an XML-RPC reply to the request with kMessageID on kChannelID with payload of string sData and integer iData.\n
+				The size of sData is limited to 254 characters.</string>
+         </map>
+         <key>llRemoteDataSetRegion</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Deprecated: Use HTTP functions/events instead.\n
+				If an object using remote data channels changes regions, you must call this function to re-register the remote data channels.
+				You do not need to make this call if you don't change regions.</string>
+            <key>description</key>
+            <string>Deprecated: Use HTTP functions/events instead.\n
+				Does not work! Use llOpenRemoteDataChannel instead.</string>
+         </map>
+         <key>llRemoteLoadScript</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>3.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>TargetID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Name</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Running</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>StartParameter</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Deprecated. Please use llRemoteLoadScriptPin instead.</string>
+            <key>description</key>
+            <string>Deprecated: Use llRemoteLoadScriptPin instead.</string>
+         </map>
+         <key>llRemoteLoadScriptPin</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>3.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>ObjectID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string>Target prim to attempt copying into.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>ScriptName</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string>Name of the script in current inventory to copy.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>PIN</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Integer set on target prim as a Personal Information Number code.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Running</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>If the script should be set running in the target prim.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>StartParameter</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Integer. Parameter passed to the script if set to be running.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>If the owner of the object this script is attached to can modify ObjectID,
+				they are in the same region, and the matching PIN is used, copy ScriptName into target, if Running == TRUE, start the script with StartParameter.</string>
+            <key>description</key>
+            <string>If the owner of the object containing this script can modify the object identified by the specified object key, and if the PIN matches the PIN previously set using llSetRemoteScriptAccessPin (on the target prim), then the script will be copied into target.</string>
+         </map>
+         <key>llRemoveFromLandBanList</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>AvatarID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Remove avatar from the land ban list.</string>
+            <key>description</key>
+            <string>Remove specified avatar from the land parcel ban list.</string>
+         </map>
+         <key>llRemoveFromLandPassList</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>AvatarID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Remove avatar from the land pass list.</string>
+            <key>description</key>
+            <string>Remove specified avatar from the land parcel pass list.</string>
+         </map>
+         <key>llRemoveInventory</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>InventoryItem</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Remove the named inventory item.</string>
+            <key>description</key>
+            <string>Remove the named inventory item from the object inventory.</string>
+         </map>
+         <key>llRemoveVehicleFlags</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Vehiclelags</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Removes the enabled bits in 'flags'.</string>
+            <key>description</key>
+            <string>Sets the vehicle flags to FALSE. Valid parameters can be found in the vehicle flags constants section.</string>
+         </map>
+         <key>llRequestAgentData</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.1</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>AvatarID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Data</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Requests data about AvatarID. When data is available the dataserver event will be raised.</string>
+            <key>description</key>
+            <string>This function requests data about an avatar. If and when the information is collected, the dataserver event is triggered with the key returned from this function passed in the requested parameter. See the agent data constants (DATA_*) for details about valid values of data and what each will return in the dataserver event.</string>
+         </map>
+         <key>llRequestDisplayName</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>AvatarID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string>Avatar UUID</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Requests name of an avatar. When data is available, the dataserver event will be raised.</string>
+            <key>description</key>
+            <string>Requests the Display Name of the agent. When the Display Name is available the dataserver event will be raised.\n
+				The avatar identified does not need to be in the same region or online at the time of the request.\n
+				Returns a key that is used to identify the dataserver event when it is raised.</string>
+         </map>
+         <key>llRequestInventoryData</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>1.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>InventoryItem</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Requests data from object's inventory object. When data is available the dataserver event will be raised.</string>
+            <key>description</key>
+            <string>Requests data for the object inventory item named.\n
+				When data is available the dataserver event will be raised with the key returned from this function in the requested parameter.\n
+				The only request currently implemented is to request data from landmarks, where the data returned is in the form "&lt;float, float, float&gt;" which can be cast to a vector. This position is in region local coordinates.</string>
+         </map>
+         <key>llRequestPermissions</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>AvatarID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>PermmissionMask</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Ask AvatarID to allow the script to do PermmissionMask (NB: Debit, ownership, link, joint, and permission requests can only go to the task's owner).</string>
+            <key>description</key>
+            <string>Ask avatar to allow the script to perform certain actions. The permission flag should be one or more PERMISSION_* constants.\n
+				Multiple permissions can be requested simultaneously by ORing the constants together. Many of the permissions requests can only go to object owner.\n
+				This call will not stop script execution. If the avatar grants the requested permissions, the run_time_permissions event will be called.\n
+				Permissions for a single avatar are granted to a script, not to an object. So multiple scripts can hold permissions for multiple avatars.</string>
+         </map>
+         <key>llRequestSecureURL</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Requests one HTTPS:// (SSL) URL for use by this object. An http_request event is triggered with the results.</string>
+            <key>description</key>
+            <string>Requests one HTTPS:// (SSL) URL for use by this object. The http_request event is triggered with results.\n
+				Returns a key that is the handle used for identifying the request in the http_request event.</string>
+         </map>
+         <key>llRequestSimulatorData</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>1.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>RegionName</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Data</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Requests data about a simulator. When data is available the dataserver event will be raised.</string>
+            <key>description</key>
+            <string>Requests data about the region named. Data should use one of the DATA_SIM_* constants.\n
+			Returns a dataserver query ID and triggers the dataserver event when data is found. The region name is usually not case-sensitive, but sometimes will return data for a similarly-named region if the supplied case doesn't match the intended region's actual name.</string>
+         </map>
+         <key>llRequestURL</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Requests one HTTP:// URL for use by this object. An http_request event is triggered with the results.</string>
+            <key>description</key>
+            <string>Requests one HTTP:// URL for use by this script. The http_request event is triggered with the result of the request.\n
+				Returns a key that is the handle used for identifying the result in the http_request event.</string>
+         </map>
+         <key>llRequestUsername</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>AvatarID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Requests single-word user-name of an avatar. When data is available the dataserver event will be raised.</string>
+            <key>description</key>
+            <string>Requests the user-name of the identified agent. When the user-name is available the dataserver event will be raised.\n
+				The agent identified does not need to be in the same region or online at the time of the request.\n
+				Returns a key that is used to identify the dataserver event when it is raised.</string>
+         </map>
+         <key>llResetLandBanList</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Removes all residents from the land ban list.</string>
+            <key>description</key>
+            <string>Removes all entries from the land ban list.</string>
+         </map>
+         <key>llResetLandPassList</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Removes all residents from the land access/pass list.</string>
+            <key>description</key>
+            <string>Removes all entries from the land access/pass list.</string>
+         </map>
+         <key>llResetOtherScript</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>ScriptName</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Resets script name.</string>
+            <key>description</key>
+            <string>Resets the named script.</string>
+         </map>
+         <key>llResetScript</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Resets the script.</string>
+            <key>description</key>
+            <string>Resets this script.</string>
+         </map>
+         <key>llResetTime</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Sets the time to zero.</string>
+            <key>description</key>
+            <string>Sets the internal timer to zero.</string>
+         </map>
+         <key>llRezAtRoot</key>
+         <map>
+            <key>energy</key>
+            <real>200.0</real>
+            <key>sleep</key>
+            <real>0.1</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>InventoryItem</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Position</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Velocity</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Rotation</string>
+                  <key>type</key>
+                  <string>rotation</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>StartParameter</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Instantiate owner's InventoryItem at Position with Velocity, Rotation and with StartParameter. The last selected root object's location will be set to Position.</string>
+            <key>description</key>
+            <string>Creates object's inventory item at the given Position, with Velocity, Rotation, and StartParameter.</string>
+         </map>
+         <key>llRezObject</key>
+         <map>
+            <key>energy</key>
+            <real>200</real>
+            <key>sleep</key>
+            <real>0.1</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>InventoryItem</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Position</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Velocity</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Rotation</string>
+                  <key>type</key>
+                  <string>rotation</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>StartParameter</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Instantiate owners InventoryItem at Position with Velocity, Rotation and with start StartParameter.</string>
+            <key>description</key>
+            <string>Creates object's inventory item at Position with Velocity and Rotation supplied. The StartParameter value will be available to the newly created object in the on_rez event or through the llGetStartParameter function.\n
+				The Velocity parameter is ignored if the rezzed object is not physical.</string>
+         </map>
+         <key>llRot2Angle</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Rotation</string>
+                  <key>type</key>
+                  <string>rotation</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the rotation angle represented by Rotation.</string>
+            <key>description</key>
+            <string>Returns the angle represented by the Rotation.</string>
+         </map>
+         <key>llRot2Axis</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Rotation</string>
+                  <key>type</key>
+                  <string>rotation</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the rotation axis represented by Rotation.</string>
+            <key>description</key>
+            <string>Returns the axis represented by the Rotation.</string>
+         </map>
+         <key>llRot2Euler</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Rotation</string>
+                  <key>type</key>
+                  <string>rotation</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the Euler representation (roll, pitch, yaw) of Rotation.</string>
+            <key>description</key>
+            <string>Returns the Euler Angle representation of the Rotation.</string>
+         </map>
+         <key>llRot2Fwd</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Rotation</string>
+                  <key>type</key>
+                  <string>rotation</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the forward vector defined by Rotation.</string>
+            <key>description</key>
+            <string>Returns the forward axis represented by the Rotation.</string>
+         </map>
+         <key>llRot2Left</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Rotation</string>
+                  <key>type</key>
+                  <string>rotation</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the left vector defined by Rotation.</string>
+            <key>description</key>
+            <string>Returns the left axis represented by the Rotation.</string>
+         </map>
+         <key>llRot2Up</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Rotation</string>
+                  <key>type</key>
+                  <string>rotation</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the up vector defined by Rotation.</string>
+            <key>description</key>
+            <string>Returns the up axis represented by the Rotation.</string>
+         </map>
+         <key>llRotateTexture</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.2</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Radians</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Face</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Sets the texture rotation for the chosen face.</string>
+            <key>description</key>
+            <string>Sets the rotation of the texture on the given side.\n
+				If face is ALL_SIDES, rotates the texture of all sides.</string>
+         </map>
+         <key>llRotBetween</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>rotation</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Vector1</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Vector2</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the rotation to rotate Vector1 to Vector2.</string>
+            <key>description</key>
+            <string>Returns the rotation needed to rotate Vector1 to Vector2.</string>
+         </map>
+         <key>llRotLookAt</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Rotation</string>
+                  <key>type</key>
+                  <string>rotation</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Strength</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Damping</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Cause object to point it's forward axis towards Rotation.</string>
+            <key>description</key>
+            <string>Cause object to rotate to Rotation. Good strength values are around half the mass of the object and good damping values are less than 1/10th of the strength.\n
+				Asymmetrical shapes require smaller damping.\n
+				A strength of 0.0 cancels the look at.</string>
+         </map>
+         <key>llRotTarget</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Rotation</string>
+                  <key>type</key>
+                  <string>rotation</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>LeeWay</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Set rotations with error of LeeWay as a rotational target and return an ID for the rotational target.</string>
+            <key>description</key>
+            <string>Set object rotation within the given lee way of rotation as a rotational target and return an integer number for the target.\n
+				The returned number is a handle that can be used in llRotTargetRemove.</string>
+         </map>
+         <key>llRotTargetRemove</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Handle</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Removes rotational target number.</string>
+            <key>description</key>
+            <string>Remove rotational target indicated by the handle.</string>
+         </map>
+         <key>llRound</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Value</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns Value rounded to the nearest integer.</string>
+            <key>description</key>
+            <string>Returns the Value rounded to the nearest integer.</string>
+         </map>
+         <key>llSameGroup</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>ID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns TRUE if avatar ID is in the same region and has the same active group, otherwise FALSE.</string>
+            <key>description</key>
+            <string>Returns TRUE if the object or agent identified is in the same simulator and has the same active group as this object. Otherwise, returns FALSE.</string>
+         </map>
+         <key>llSay</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Channel</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Channel to use to say text on.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Text</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string>Text to say.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Says Text on Channel.</string>
+            <key>description</key>
+            <string>Say Text on channel.\n
+			Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 to 2,147,483,648 are private channels that are not sent to avatars but other scripts can listen for through the llListen/listen event system.</string>
+         </map>
+         <key>llScaleTexture</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.2</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Horizontal</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Vertical</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Face</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Sets the texture's S and T scales for the chosen Face.</string>
+            <key>description</key>
+            <string>Sets the Horizontal and Vertical repeats per Face on Face.\n
+				If Face == ALL_SIDES, all sides are set in one call.\n
+				Negative values for horizontal and vertical will flip the texture.</string>
+         </map>
+         <key>llScriptDanger</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Position</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns TRUE if Position is over public land, sandbox land, land that doesn't allow everyone to edit and build, or land that doesn't allow outside scripts.</string>
+            <key>description</key>
+            <string>Returns true if the position is over public land, land that doesn't allow everyone to edit and build, or land that doesn't allow outside scripts.</string>
+         </map>
+         <key>llScriptProfiler</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>State</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>PROFILE_NONE or PROFILE_SCRIPT_MEMORY flags to control the state.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Enables or disables script profiling options. Currently only supports PROFILE_SCRIPT_MEMORY (Mono only) and PROFILE_NONE.\n
+				MAY SIGNIFICANTLY REDUCE SCRIPT PERFORMANCE!.</string>
+            <key>description</key>
+            <string>Enables or disables the scripts profiling state.. Currently only supports PROFILE_SCRIPT_MEMORY (Mono only) and PROFILE_NONE.\n
+				MAY SIGNIFICANTLY REDUCE SCRIPT PERFORMANCE!.</string>
+         </map>
+         <key>llSendRemoteData</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>3.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>ChannelID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Destination</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Value</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Text</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Deprecated: use HTTP instead.\n
+				Sends an XML-RPC request to Destination through ChannelID with payload of ChannelID (in a string), integer Value and string Text.
+				Returns a key that is the message_id for the resulting remote_data events.</string>
+            <key>description</key>
+            <string>Send an XML-RPC request to the Destination (probably an URL) through the ChannelID, with a payload of ChannelID (in a string), integer Value and string Text.</string>
+         </map>
+         <key>llSensor</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Name</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string>Object or avatar name.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>ID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string>Object or avatar UUID.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Type</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Bit-field mask of AGENT, AGENT_BY_LEGACY_NAME, AGENT_BY_USERNAME, ACTIVE, PASSIVE, and/or SCRIPTED</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Range</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string>Distance to scan. 0.0 - 96.0m.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Arc</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string>Angle, in radians, from the local x-axis of the prim to scan.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Performs a single scan for Name and ID with Type (AGENT, ACTIVE, PASSIVE, and/or SCRIPTED) within Range meters and Arc radians of forward vector (Name, ID, and/or Type can be empty or 0).</string>
+            <key>description</key>
+            <string>Performs a single scan for Name and ID with Type within Range meters and Arc radians of the forward vector.\n
+				Specifying a blank Name or NULL_KEY ID will prevent filtering results for a particular Name or ID. A range of 0.0 does not perform a scan. The Type parameter should be an object type constant value.</string>
+         </map>
+         <key>llSensorRemove</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>removes sensor.</string>
+            <key>description</key>
+            <string>Removes the sensor set by llSensorRepeat.</string>
+         </map>
+         <key>llSensorRepeat</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Name</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string>Object or avatar name.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>ID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string>Object or avatar UUID.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Type</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Bit-field mask of AGENT, AGENT_BY_LEGACY_NAME, AGENT_BY_USERNAME, ACTIVE, PASSIVE, and/or SCRIPTED</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Range</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string>Distance to scan. 0.0 - 96.0m.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Arc</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string>Angle, in radians, from the local x-axis of the prim to scan.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Rate</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string>Period, in seconds, between scans.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Sets a callback for Name and ID with Type (AGENT, ACTIVE, PASSIVE, and/or SCRIPTED) within Range meters and Arc radians of forward vector (Name, ID, and/or Type can be empty or 0) and repeats every Rate seconds.</string>
+            <key>description</key>
+            <string>Performs a repeating sensor scan for Name and ID with Type within Range meters and Arc radians of the forward vector (Name and/or ID can be empty or NULL_KEY).\n
+				A range of 0.0m does not perform a scan. The parameters have the same function as llSensor, except Rate, which defines the number of seconds between repeated scans and subsequent sensor or no_sensor events.</string>
+         </map>
+         <key>llSetAlpha</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Opacity</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Face</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Sets the alpha (opacity) of Face.</string>
+            <key>description</key>
+            <string>Sets the alpha (opacity) value for Face. If Face is ALL_SIDES, sets the alpha for all faces. The alpha value is interpreted as an opacity percentage (1.0 is fully opaque, and 0.2 is mostly transparent). This function will clamp alpha values less than 0.1 to 0.1 and greater than 1.0 to 1.</string>
+         </map>
+         <key>llSetAngularVelocity</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Force</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string>The force to apply.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Local</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>If TRUE, the Force is treated as a local directional vector instead of a regional directional vector.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Sets an object's angular velocity, in local coordinates if local == TRUE (if the script is physical).</string>
+            <key>description</key>
+            <string>Applies angular (rotational) velocity to a physical object. Has no effect on non-physical objects.</string>
+         </map>
+         <key>llSetBuoyancy</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Buoyancy</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Set the tasks buoyancy (0 is none, &lt; 1.0 sinks, 1.0 floats, &gt; 1.0 rises).</string>
+            <key>description</key>
+            <string>Set the object buoyancy. A value of 0 is none, less than 1.0 sinks, 1.0 floats, and greater than 1.0 rises.</string>
+         </map>
+         <key>llSetCameraAtOffset</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Offset</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Sets the camera used in this object, at offset, if an avatar sits on it.</string>
+            <key>description</key>
+            <string>Sets the offset that an avatar's camera will be moved to if the avatar sits on the object.</string>
+         </map>
+         <key>llSetCameraEyeOffset</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Offset</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Sets the camera eye offset used in this object if an avatar sits on it.</string>
+            <key>description</key>
+            <string>Sets the camera eye offset used in this object if an avatar sits on it.</string>
+         </map>
+         <key>llSetCameraParams</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Parameters</string>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Sets multiple camera parameters at once. List format is [ rule-1, data-1, rule-2, data-2 . . . rule-n, data-n ].</string>
+            <key>description</key>
+            <string>Sets multiple camera parameters at once.\n
+				List format is [rule-1, value-1, rule-2, value-2 ... rule-N, value-N]</string>
+         </map>
+         <key>llSetClickAction</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Action</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>A CLICK_ACTION_* flag</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Sets the action performed when a prim is clicked upon.</string>
+            <key>description</key>
+            <string>Sets the Action performed when a prim is clicked upon.</string>
+         </map>
+         <key>llSetColor</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Colour</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Face</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Sets the color, for the face.</string>
+            <key>description</key>
+            <string>Sets the colour of the side specified. If Face is ALL_SIDES, sets the colour on all faces.</string>
+         </map>
+         <key>llSetContentType</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>HTTPRequestID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string>A valid http_request() key</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>ContentType</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Media type to use with any following llHTTPResponse(HTTPRequestID, ...)</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Set the media type of an LSL HTTP server response.</string>
+            <key>description</key>
+            <string>Set the media type of an LSL HTTP server response.</string>
+         </map>
+         <key>llSetDamage</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Damage</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Sets the amount of damage that will be done to an avatar that this task hits.	Task will be killed.</string>
+            <key>description</key>
+            <string>Sets the amount of damage that will be done to an avatar that this object hits. This object will be destroyed on damaging an avatar, and no collision event is triggered.</string>
+         </map>
+         <key>llSetForce</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Force</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string>Directional force.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Local</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Boolean, if TRUE uses local axis, if FALSE uses region axis.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Sets Force on object, in local coordinates if Local == TRUE (if the script is physical).</string>
+            <key>description</key>
+            <string>If the object is physical, this function sets the force.\n
+				The vector is in local coordinates if local is TRUE, global if FALSE.</string>
+         </map>
+         <key>llSetForceAndTorque</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Force</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string>Directional force.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Torque</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string>Torque force.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Local</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Boolean, if TRUE uses local axis, if FALSE uses region axis.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Sets the Force and Torque of object, in local coordinates if Local == TRUE (if the script is physical).</string>
+            <key>description</key>
+            <string>If the object is physical, this function sets the Force and Torque. The vectors are in local coordinates if Local is TRUE, global if FALSE.</string>
+         </map>
+         <key>llSetHoverHeight</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Height</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string>Distance above the ground.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Water</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Boolean, if TRUE then hover above water too.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Tau</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string>Seconds to critically damp in.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Critically damps to a Height (either above ground level or above the higher of land and water if water == TRUE).</string>
+            <key>description</key>
+            <string>Critically damps to a Height. The height is above ground and water (which ever is greater) if water is TRUE. Only works with physics-enabled objects.\n
+				Do not use with vehicles. Use llStopHover to stop hovering.</string>
+         </map>
+         <key>llSetInventoryPermMask</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>InventoryItem</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string>An item in the prim's inventory</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>PermissionFlag</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>MASK_* flag</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>PermissionMask</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Permission bit-field (PERM_* flags)</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Sets the given permission mask to the new value on the inventory item.</string>
+            <key>description</key>
+            <string>Sets the given permission mask to the new value on the inventory item.</string>
+         </map>
+         <key>llSetKeyframedMotion</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Keyframes</string>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>description</key>
+                  <string>Strided keyframe list of the form: position, orientation, time. Each keyframe is interpreted relative to the previous transform of the object.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Options</string>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Requests that a non-physical object be key-framed according to key-frame list.</string>
+            <key>description</key>
+            <string>Specify a list of times, positions, and orientations to be followed by an object. The object will be smoothly moved between key-frames by the simulator. Collisions with other non-physical or key-framed objects will be ignored (no script events will fire and collision processing will not occur). Collisions with physical objects will be computed and reported, but the key-framed object will be unaffected by those collisions.</string>
+         </map>
+         <key>llSetLinkAlpha</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>LinkNumber</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Opacity</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Face</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>If a prim exists in the link chain at LinkNumber, set Face to Opacity.</string>
+            <key>description</key>
+            <string>Sets the Face, on the linked prim specified, to the Opacity.</string>
+         </map>
+         <key>llSetLinkCamera</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>LinkNumber</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Prim link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>EyeOffset</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string>Offset, relative to the object's centre and expressed in local coordinates, that the camera looks from.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>LookOffset</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string>Offset, relative to the object's centre and expressed in local coordinates, that the camera looks toward.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Sets the camera eye offset, and the offset that camera is looking at, for avatars that sit on the linked prim.</string>
+            <key>description</key>
+            <string>Sets the camera eye offset, and the offset that camera is looking at, for avatars that sit on the linked prim.</string>
+         </map>
+         <key>llSetLinkColor</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>LinkNumber</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Colour</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string>Colour in RGB &lt;R.R, G.G, B.B&gt;</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Face</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Side number or ALL_SIDES.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>If a task exists in the link chain at LinkNumber, set the Face to color.</string>
+            <key>description</key>
+            <string>Sets the colour of the linked child's side, specified by LinkNumber.</string>
+         </map>
+         <key>llSetLinkMedia</key>
+         <map>
+            <key>energy</key>
+            <real>0.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Link</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims).</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Face</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Face number.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Parameters</string>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>description</key>
+                  <string>A set of name/value pairs (in no particular order)</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Set the media parameters for a particular face on linked prim.	Parameters is a list of name/value pairs (in no particular order). If media is not already on this object, add it. Parameters not specified are unchanged, or if new media is added set to the default specified.</string>
+            <key>description</key>
+            <string>Set the media parameters for a particular face on the linked prim(s) without a delay.\n
+				Returns an integer that is a STATUS_* flag which details the success/failure of the operation(s).</string>
+         </map>
+         <key>llSetLinkPrimitiveParams</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.2</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>LinkNumber</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Parameters</string>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Set primitive parameters for LinkNumber based on Parameters.</string>
+            <key>description</key>
+            <string>Sets the parameters (or properties) of any linked prim in one step.</string>
+         </map>
+         <key>llSetLinkPrimitiveParamsFast</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>LinkNumber</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Parameters</string>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Set primitive parameters for LinkNumber based on Parameters, without a delay.</string>
+            <key>description</key>
+            <string>Set parameters for link number, from the list of Parameters, with no built-in script sleep. This function is identical to llSetLinkPrimitiveParams, except without the delay.</string>
+         </map>
+         <key>llSetLinkTexture</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.2</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>LinkNumber</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Texture</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Face</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Sets the Texture of Face for LinkNumber.</string>
+            <key>description</key>
+            <string>Sets the Texture of linked prims.</string>
+         </map>
+         <key>llSetLinkTextureAnim</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>LinkNumber</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag to effect</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Mode</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Mask of Mode flags.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Face</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Face number or ALL_SIDES.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>SizeX</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Horizontal frames (ignored for ROTATE and SCALE).</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>SizeY</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Vertical frames (ignored for ROTATE and SCALE).</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Start</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string>Start position/frame number (or radians for ROTATE).</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Length</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string>number of frames to display (or radians for ROTATE).</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Rate</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string>Frames per second (must not greater than zero).</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Animate the texture on the specified prim's face/faces.</string>
+            <key>description</key>
+            <string>Animate the texture on the specified face/faces of the specified prim/prims by setting the texture scale and offset.\n
+				Identical to llSetTextureAnim except able to modify any prim in the link set.</string>
+         </map>
+         <key>llSetLocalRot</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.2</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Rotation</string>
+                  <key>type</key>
+                  <string>rotation</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Sets the rotation of a child prim relative to the root prim.</string>
+            <key>description</key>
+            <string>Sets the rotation of a child prim relative to the root prim.</string>
+         </map>
+         <key>llSetMemoryLimit</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Limit</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>The amount to reserve, which must be less than the allowed maximum (currently 64KB) and not already have been exceeded.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Request Limit bytes to be reserved for this script. This function has no effect if the script is running in the LSO VM.</string>
+            <key>description</key>
+            <string>Request Limit bytes to be reserved for this script. This function has no effect if the script is running in the LSO VM.\n
+				Return TRUE or FALSE indicating whether the limit was set successfully.</string>
+         </map>
+         <key>llSetObjectDesc</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Description</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Sets the object's description.</string>
+            <key>description</key>
+            <string>Sets the description of the scripted prim. You can get the description using llGetObjectDesc.\n
+				The description is limited to 127 characters.</string>
+         </map>
+         <key>llSetObjectName</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Name</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Sets the object's name.</string>
+            <key>description</key>
+            <string>Sets the object's name.</string>
+         </map>
+         <key>llSetObjectPermMask</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>PermissionFlag</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>MASK_* flag</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>PermissionMask</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Permission bit-field (PERM_* flags)</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Sets the given permission mask to the new value on the root object the task is attached to.</string>
+            <key>description</key>
+            <string>Sets the given permission mask to the new value on the root object the task is attached to.</string>
+         </map>
+         <key>llSetParcelMusicURL</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>2.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>URL</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Sets the streaming audio URL for the parcel object is on.</string>
+            <key>description</key>
+            <string>Sets the streaming audio URL for the parcel the scripted object is on (the object must be owned by the owner of the parcel, if the parcel is group owned the object must be owned by that group).</string>
+         </map>
+         <key>llSetPayPrice</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Price</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>QuickButtons</string>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Sets the default amount when someone chooses to pay this object.</string>
+            <key>description</key>
+            <string>Sets the values of the buttons and the text box default for the Pay dialogue, when a user right-clicks on the object and selects "Pay".\n
+				llSetPayPrice will affect what buttons exist, what their values are, and whether or not there is a manual payment text entry box.</string>
+         </map>
+         <key>llSetPhysicsMaterial</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>MaterialBits</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>GravityMultiplier</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Restitution</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Friction</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Density</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Sets the requested attributes of the root object's physics material.</string>
+            <key>description</key>
+            <string>Sets the requested attributes of the root object's physics material.</string>
+         </map>
+         <key>llSetPos</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.2</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Position</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Sets the position (if the script isn't physical).</string>
+            <key>description</key>
+            <string>If the object is not physical, this function sets the position in region coordinates. If the object is a child prim, the position is treated as root relative and the link-set is adjusted.</string>
+         </map>
+         <key>llSetPrimitiveParams</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.2</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Parameters</string>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Set primitive parameters.</string>
+            <key>description</key>
+            <string>This function changes the many properties (or "parameters") of a prim in one operation. The Parameters are a list of changes.</string>
+         </map>
+         <key>llSetPrimMediaParams</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.1</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Face</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Face number</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>MediaParameters</string>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>description</key>
+                  <string>A set of name/value pairs (in no particular order)</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Sets the MediaParameters for a particular Face on an object. If media is not already on this object, add it.
+				MediaParameters is a set of name/value pairs in no particular order. Parameters not specified are unchanged, or if new media is added then set to the default specified.</string>
+            <key>description</key>
+            <string>Set the MediaParameters for a particular face.\n
+				Returns an integer that is a STATUS_* flag which details the success/failure of the operation(s).</string>
+         </map>
+         <key>llSetPrimURL</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>20.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>URL</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Deprecated: Use llSetPrimMediaParams instead.</string>
+            <key>description</key>
+            <string>Deprecated: Use llSetPrimMediaParams instead. Updates the URL for the web page shown on the sides of the object.</string>
+         </map>
+         <key>llSetRegionPos</key>
+         <map>
+            <key>energy</key>
+            <real>0.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Position</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string>Vector. The location to move to, in region coordinates.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Sets the Position anywhere within the region (if the object isn't physical).</string>
+            <key>description</key>
+            <string>Tries to moves the entire object so that the root prim is within 0.1m of Position.\n
+				Returns an integer boolean, TRUE if the object is successfully placed within 0.1 m of Position, FALSE otherwise.\n
+				The object with the script will move the root prim position to the given location. The position is any position within the region. If the position is below ground, it will be set to the ground level at that x,y location. The function has no delay or throttle.</string>
+         </map>
+         <key>llSetRemoteScriptAccessPin</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.2</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>PIN</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>If PIN is set to a non-zero number, the task will accept remote script loads via llRemoteLoadScriptPin if it passes in the correct PIN. Othersise, llRemoteLoadScriptPin is ignored.</string>
+            <key>description</key>
+            <string>If PIN is set to a non-zero number, the task will accept remote script loads via llRemoteLoadScriptPin if passed the matching PIN. Otherwise llRemoteLoadScriptPin is ignored</string>
+         </map>
+         <key>llSetRot</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.2</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Rotation</string>
+                  <key>type</key>
+                  <string>rotation</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Sets the rotation (if the script isn't physical).</string>
+            <key>description</key>
+            <string>If the object is not physical, this function sets the rotation.\n
+				If the script is in a child prim, the position is treated as root relative and the linked set is adjusted.</string>
+         </map>
+         <key>llSetScale</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Scale</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Sets the scale.</string>
+            <key>description</key>
+            <string>Sets the prim's scale (size).</string>
+         </map>
+         <key>llSetScriptState</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>ScriptName</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Running</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Control the state of a named script.</string>
+            <key>description</key>
+            <string>Control the state of a script in the prim.</string>
+         </map>
+         <key>llSetSitText</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Text</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Displays Text rather than "Sit" in context menu.</string>
+            <key>description</key>
+            <string>Displays Text rather than 'Sit' in the viewer's menu.</string>
+         </map>
+         <key>llSetSoundQueueing</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>QueueEnable</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Boolean, sound queuing: TRUE enables, FALSE disables (default).</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Determines whether attached sound calls wait for the current sound to finish (0 = no [default], non-zero = yes).</string>
+            <key>description</key>
+            <string>Sets whether successive calls to llPlaySound, llLoopSound, etc., (attached sounds) interrupt the playing sound.\n
+				The default for objects is FALSE. Setting this value to TRUE will make the sound wait until the current playing sound reaches its end. The queue is one level deep.</string>
+         </map>
+         <key>llSetSoundRadius</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Radius</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Establishes a hard cut-off radius for audibility of scripted sounds (both attached and triggered).</string>
+            <key>description</key>
+            <string>Establishes a hard cut-off radius for audibility of scripted sounds (both attached and triggered).</string>
+         </map>
+         <key>llSetStatus</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Status</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Value</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Sets status (STATUS_PHYSICS, STATUS_PHANTOM, STATUS_BLOCK_GRAB, STATUS_ROTATE_X, STATUS_ROTATE_Y, and/or STATUS_ROTATE_Z) to value.</string>
+            <key>description</key>
+            <string>Sets the Status to Value. Use STATUS_* constants for the values of status.</string>
+         </map>
+         <key>llSetText</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Text</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Colour</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Opacity</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Set text floating over object.</string>
+            <key>description</key>
+            <string>Sets the text that floats above the object, using the specified colour and opacity level.</string>
+         </map>
+         <key>llSetTexture</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.2</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Texture</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Face</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Sets the Texture of Face.</string>
+            <key>description</key>
+            <string>Sets the Texture of Face. If Face is ALL_SIDES, set the texture on all faces.</string>
+         </map>
+         <key>llSetTextureAnim</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Mode</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Mask of Mode flags.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Face</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Face number or ALL_SIDES.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>SizeX</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Horizontal frames (ignored for ROTATE and SCALE).</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>SizeY</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Vertical frames (ignored for ROTATE and SCALE).</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Start</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string>Start position/frame number (or radians for ROTATE).</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Length</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string>number of frames to display (or radians for ROTATE).</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Rate</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string>Frames per second (must not greater than zero).</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Animate the texture on the specified face/faces.</string>
+            <key>description</key>
+            <string>Animates a texture by setting the texture scale and offset.</string>
+         </map>
+         <key>llSetTimerEvent</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Rate</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Cause the timer event to be triggered every Rate seconds.</string>
+            <key>description</key>
+            <string>Sets the timer event to be triggered at the specified Rate, in seconds.\n
+				Passing in 0.0 stops further timer events.</string>
+         </map>
+         <key>llSetTorque</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Torque</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string>Torque force.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Local</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Boolean, if TRUE uses local axis, if FALSE uses region axis.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Sets the Torque of object, in local coordinates if Local == TRUE (if the script is physical).</string>
+            <key>description</key>
+            <string>If the object is physical, this function sets the torque.\n
+			The vector is in local coordinates if Local is TRUE, global if FALSE.</string>
+         </map>
+         <key>llSetTouchText</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Text</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Displays Text in the menu that acts on a touch.</string>
+            <key>description</key>
+            <string>Displays Text in the viewer context menu that acts on a touch.</string>
+         </map>
+         <key>llSetVehicleFlags</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Flags</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Sets the enabled bits in 'flags'.</string>
+            <key>description</key>
+            <string>Sets the vehicle flags to TRUE.\nValid parameters can be found in the vehicle flags constants section.</string>
+         </map>
+         <key>llSetVehicleFloatParam</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>ParameterName</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>ParameterValue</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Sets the specified vehicle float parameter.</string>
+            <key>description</key>
+            <string>Sets the vehicle floating point parameter.\n
+				Valid parameters and their expected values can be found in the vehicle parameter constants section.</string>
+         </map>
+         <key>llSetVehicleRotationParam</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>ParameterName</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>ParameterValue</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Sets the specified vehicle rotation parameter.</string>
+            <key>description</key>
+            <string>Sets the vehicle rotation parameter.\n
+				Valid parameters can be found in the vehicle parameter constants section.</string>
+         </map>
+         <key>llSetVehicleType</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Type</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Sets vehicle to one of the default types.</string>
+            <key>description</key>
+            <string>Activates the vehicle action and choose vehicle Type.\n
+				Valid Types and an explanation of their characteristics can be found in the vehicle type constants section.</string>
+         </map>
+         <key>llSetVehicleVectorParam</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>ParameterName</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>ParameterValue</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Sets the specified vehicle vector parameter.</string>
+            <key>description</key>
+            <string>Sets the vehicle vector parameter.\nValid parameters can be found in the vehicle parameter constants section.</string>
+         </map>
+         <key>llSetVelocity</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Force</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string>The force to apply.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Local</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>If TRUE, the vForce is treated as a local directional vector instead of a regional directional vector.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Sets an objects velocity, in local coordinates if Local == TRUE (if the script is physical).</string>
+            <key>description</key>
+            <string>Applies Force to a physical object.</string>
+         </map>
+         <key>llSHA1String</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Text</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns a string of 40 hex characters that is the SHA1 security Hash of Text.</string>
+            <key>description</key>
+            <string>Returns a string of 40 hex characters that is the SHA1 security hash of the supplied string.</string>
+         </map>
+         <key>llShout</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Channel</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Text</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>shouts Text on Channel.</string>
+            <key>description</key>
+            <string>Shout Text on Channel. Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 to 2,147,483,648 are private channels that are not sent to avatars but other scripts can listen for through the llListen function.</string>
+         </map>
+         <key>llSin</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Theta</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the sine of Theta (Theta in radians).</string>
+            <key>description</key>
+            <string>Returns the sine of Theta in radians.</string>
+         </map>
+         <key>llSitTarget</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Offset</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Rotation</string>
+                  <key>type</key>
+                  <string>rotation</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Set the sit location for this object (if offset == &lt;0,0,0&gt; clear it).</string>
+            <key>description</key>
+            <string>Set the sit location for this object. If offset == ZERO_VECTOR, clears the sit target.</string>
+         </map>
+         <key>llSleep</key>
+         <map>
+            <key>energy</key>
+            <real>0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Time</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Put script to sleep for Time seconds.</string>
+            <key>description</key>
+            <string>Puts the script to sleep for time specified, in seconds.</string>
+         </map>
+         <key>llSound</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Sound</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Volume</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Queue</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Loop</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Deprecated: Use llPlaySound instead.</string>
+            <key>description</key>
+            <string>Deprecated: Use llPlaySound instead.\nPlays Sound at Volume and specifies whether it should loop or not.</string>
+         </map>
+         <key>llSoundPreload</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Sound</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Deprecated: Use llPreloadSound instead.</string>
+            <key>description</key>
+            <string>Deprecated: Use llPreloadSound instead.\nPreloads a sound on viewers within range.</string>
+         </map>
+         <key>llSqrt</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Value</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the square root of Value, or returns 0 and triggers a Math Error for imaginary results.</string>
+            <key>description</key>
+            <string>Returns the square root of the value. If the value is less than 0.0, this function returns 0.0 and raises a maths runtime error.</string>
+         </map>
+         <key>llStartAnimation</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Animation</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Start Animation for agent that owns object.</string>
+            <key>description</key>
+            <string>This function starts the animation for the last avatar that granted the object PERMISSION_TRIGGER_ANIMATION permission.</string>
+         </map>
+         <key>llStopAnimation</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Animation</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Stop Animation for agent that owns object.</string>
+            <key>description</key>
+            <string>This function stops the animation for the last avatar that granted the object PERMISSION_TRIGGER_ANIMATION permission.</string>
+         </map>
+         <key>llStopHover</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Stop hovering to a height.</string>
+            <key>description</key>
+            <string>Stop hovering at a height.</string>
+         </map>
+         <key>llStopLookAt</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Stop causing object to point at a target.</string>
+            <key>description</key>
+            <string>Stop causing object to look at target.</string>
+         </map>
+         <key>llStopMoveToTarget</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Stops critically damped motion.</string>
+            <key>description</key>
+            <string>Stops critically damped motion.</string>
+         </map>
+         <key>llStopSound</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array/>
+            <key>summary</key>
+            <string>Stops currently attached sound.</string>
+            <key>description</key>
+            <string>Stops the currently playing attached sound started with llPlaySound or llLoopSound. Has no effect on sounds started with llTriggerSound.</string>
+         </map>
+         <key>llStringLength</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Text</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the length of string.</string>
+            <key>description</key>
+            <string>Returns the number of characters in the specified text.</string>
+         </map>
+         <key>llStringToBase64</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Text</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Converts a string to the Base64 representation of the string.</string>
+            <key>description</key>
+            <string>Converts a string to the Base 64 representation of the string.</string>
+         </map>
+         <key>llStringTrim</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Text</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string>String to trim</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>TrimType</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>STRING_TRIM_HEAD, STRING_TRIM_TAIL, or STRING_TRIM.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Trims the leading and/or trailing white spaces from a string.\n
+				TrimType can be STRING_TRIM, STRING_TRIM_HEAD or STRING_TRIM_TAIL.</string>
+            <key>description</key>
+            <string>Outputs a string, eliminating white-space from the start and/or end of the specified string.\n
+				Constants for trim_type:\n
+				STRING_TRIM_HEAD: trim all leading spaces in text\n
+				STRING_TRIM_TAIL: trim all trailing spaces in text\n
+				STRING_TRIM: trim all leading and trailing spaces in text</string>
+         </map>
+         <key>llSubStringIndex</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Text</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Sequence</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns an integer that is the index in source where pattern first appears. Returns -1 if not found.</string>
+            <key>description</key>
+            <string>Returns an index of the text where the sequence of characters first appears.\n
+				Returns -1 if no match is found.</string>
+         </map>
+         <key>llTakeCamera</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>AvatarID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Deprecated: Use llSetCameraParams instead.</string>
+            <key>description</key>
+            <string>Deprecated: Use llSetCameraParams instead. Move avatar's viewpoint to task.</string>
+         </map>
+         <key>llTakeControls</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Controls</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Bit-field of CONTROL_* flags.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Accept</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Boolean, determines whether control events are generated.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>PassOn</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Boolean, determines whether controls are disabled.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Take controls from agent task has permissions for.	If (Accept == (controls &amp; input)), send input to task.	If PassOn send to agent also.</string>
+            <key>description</key>
+            <string>Requires the PERMISSION_TAKE_CONTROLS permission to run.</string>
+         </map>
+         <key>llTan</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Theta</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the tangent of Theta (Theta in radians).</string>
+            <key>description</key>
+            <string>Returns the tangent of Theta radians.</string>
+         </map>
+         <key>llTarget</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Position</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Range</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Sets positions within range of position as a target and return an ID for the target.</string>
+            <key>description</key>
+            <string>Set object position, within range of position, as a target and returns an integer ID for the target.</string>
+         </map>
+         <key>llTargetOmega</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Axis</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>SpinRate</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Gain</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Attempt to spin at SpinRate with strength Gain.</string>
+            <key>description</key>
+            <string>Attempt to spin at SpinRate with strength Gain on axis.\n
+			A spin-rate of 0.0 cancels the spin. This function always works in object local coordinates.</string>
+         </map>
+         <key>llTargetRemove</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Target</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Removes target number.</string>
+            <key>description</key>
+            <string>Remove target number.</string>
+         </map>
+         <key>llTeleportAgentHome</key>
+         <map>
+            <key>energy</key>
+            <real>100.0</real>
+            <key>sleep</key>
+            <real>5.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>AvatarID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Teleports agent on owner's land to agent's home location.</string>
+            <key>description</key>
+            <string>Teleport agent over the owner's land to agent's home location.</string>
+         </map>
+         <key>llTextBox</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>1.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>AvatarID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Text</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Channel</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Shows a dialog box on the avatar's screen with the message. A text box asks for input, and if entered the Text is chatted on Channel.</string>
+            <key>description</key>
+            <string>Shows a dialogue box on avatar's screen with the text message.\n
+				It contains a text box for input. Any text that is entered is said on the specified channel (as if by the avatar) when the "OK" button is clicked.</string>
+         </map>
+         <key>llToLower</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Text</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns a string that is Text with all lower-case characters.</string>
+            <key>description</key>
+            <string>Returns Text in all lower case.</string>
+         </map>
+         <key>llToUpper</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Text</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns a string that is Text with all upper-case characters.</string>
+            <key>description</key>
+            <string>Returns Text in all upper case.</string>
+         </map>
+         <key>llTransferLindenDollars</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>AvatarID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Amount</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Transfer Amount of linden dollars (L$) from script owner to AvatarID. Returns a key to a corresponding transaction_result event for the success of the transfer.</string>
+            <key>description</key>
+            <string>Attempts to send the amount of money to the specified avatar, and trigger a transaction_result event identified by the returned key.</string>
+         </map>
+         <key>llTriggerSound</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Sound</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Volume</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Plays Sound at Volume (0.0 - 1.0), centered at but not attached to object.</string>
+            <key>description</key>
+            <string>Plays a transient sound NOT attached to an object.\n
+				The sound plays from a stationary position located at the centre of the object at the time of the triggering.\n
+				There is no limit to the number of triggered sounds which can be generated by an object, and calling llTriggerSound does not affect the attached sounds created by llPlaySound and llLoopSound. This is very useful for things like collision noises, explosions, etc. There is no way to stop or alter the volume of a sound triggered by this function.</string>
+         </map>
+         <key>llTriggerSoundLimited</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Sound</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Volume</string>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>TNE</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>BSW</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Plays Sound at Volume (0.0 - 1.0), centered at but not attached to object, limited to axis-aligned bounding box defined by vectors top-north-east (TNE) and bottom-south-west (BSW).</string>
+            <key>description</key>
+            <string>Plays a transient sound NOT attached to an object, with its audible range limited by the axis-aligned bounding box define by TNE (top-north-east) and BSW (bottom-south-west).\n
+				The sound plays from a stationary position located at the centre of the object at the time of the triggering.\n
+				There is no limit to the number of triggered sounds which can be generated by an object, and calling llTriggerSound does not affect the attached sounds created by llPlaySound and llLoopSound. This is very useful for things like collision noises, explosions, etc. There is no way to stop or alter the volume of a sound triggered by this function.</string>
+         </map>
+         <key>llUnescapeURL</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>URL</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns an unescaped/ unencoded version of URL, replacing %20 with spaces etc.</string>
+            <key>description</key>
+            <string>Returns the string that is the URL unescaped, replacing "%20" with spaces, etc., version of URL.\n
+				The function can output raw UTF-8 strings.</string>
+         </map>
+         <key>llUnSit</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>AvatarID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>If agent identified by AvatarID is sitting on the object the script is attached to or is over land owned by the objects owner, the agent is forced to stand up.</string>
+            <key>description</key>
+            <string>If the agent identified is sitting on the object the script is attached to or is over land owned by the objects owner, the agent is forced to stand up.</string>
+         </map>
+         <key>llUpdateCharacter</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Options</string>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>description</key>
+                  <string>Character configuration options. Takes the same constants as llCreateCharacter().</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Change the character's settings.</string>
+            <key>description</key>
+            <string>Updates settings for a character.</string>
+         </map>
+         <key>llVecDist</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Location1</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Location2</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the 3D distance between Location1 and Location2.</string>
+            <key>description</key>
+            <string>Returns the distance from location 1 to location 2.</string>
+         </map>
+         <key>llVecMag</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Vector</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the magnitude of Vector.</string>
+            <key>description</key>
+            <string>Returns the magnitude of the vector.</string>
+         </map>
+         <key>llVecNorm</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Vector</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the v normalized.</string>
+            <key>description</key>
+            <string>Returns normalized vector.</string>
+         </map>
+         <key>llVolumeDetect</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>DetectEnabled</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>.TRUE enables, FALSE disables.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>If DetectEnabled = TRUE, object becomes phantom but triggers collision_start and collision_end events when other objects start and stop interpenetrating. Must be applied to the root object.</string>
+            <key>description</key>
+            <string>When detect = TRUE, this makes the entire link set the script is attached to phantom. If another object (including avatars) interpenetrates it, it will get a collision_start event.\n
+				When an object stops interpenetrating, a collision_end event is generated. While the other is inter-penetrating, collision events are NOT generated. The script must be applied to the root object of the link set to get the collision events.\n
+				Collision filters work normally.</string>
+         </map>
+         <key>llWanderWithin</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Origin</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string>Central point to wander about.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Area</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string>Half-extents of an area the character may wander within. (i.e., it can wander from the specified origin by up to +/-Distance.x in x, +/-Distance.y in y, etc.)</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Options</string>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>description</key>
+                  <string>No options available at this time.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Wander within a specified volume.</string>
+            <key>description</key>
+            <string>Sets a character to wander about a central spot within a specified area.</string>
+         </map>
+         <key>llWater</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Offset</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the water height below the object position + offset.</string>
+            <key>description</key>
+            <string>Returns the water height at the object's position + offset.</string>
+         </map>
+         <key>llWhisper</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Channel</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Text</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Whispers Text on Channel.</string>
+            <key>description</key>
+            <string>Whisper Text on Channel. Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 to 2,147,483,648 are private channels that are not sent to avatars but other scripts can listen for through the llListen function.</string>
+         </map>
+         <key>llWind</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Offset</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns the wind velocity at the object position + offset.</string>
+            <key>description</key>
+            <string>Returns the wind velocity at the object's position + offset.</string>
+         </map>
+         <key>llXorBase64Strings</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.3</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Text1</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Text2</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Deprecated: Please use llXorBase64StringsCorrect instead.\n
+				Incorrectly performs an exclusive OR on two Base64 strings and returns a Base64 string.	Text2 repeats if it is shorter than Text1.	Retained for backwards compatibility.</string>
+            <key>description</key>
+            <string>Deprecated: Use llXorBase64StringsCorrect instead.\nIncorrectly performs an exclusive OR on two Base64 strings and returns a Base64 string.</string>
+         </map>
+         <key>llXorBase64StringsCorrect</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>Text1</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Text2</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string/>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Correctly performs an exclusive OR on two Base64 strings and returns a Base64 string.\n
+				Text2 repeats if it is shorter than Text1.</string>
+            <key>description</key>
+            <string>Performs an exclusive-OR on two Base64 strings and returns a Base64 string. text-2 repeats if it is shorter than text-1.\n
+				This function is for encrypting data. Put your data in text-1 and your key in text-2 to encrypt or put the encrypted data into text-1 with the same key in text-2 to decrypt again.</string>
+         </map>
+      </map>
+   </map>
+</llsd>
\ No newline at end of file
diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp
index 9c25e69db0..45d92e6be0 100644
--- a/indra/newview/llpreviewscript.cpp
+++ b/indra/newview/llpreviewscript.cpp
@@ -50,11 +50,9 @@
 #include "llscrolllistctrl.h"
 #include "llscrolllistitem.h"
 #include "llscrolllistcell.h"
+#include "llsdserialize.h"
 #include "llslider.h"
 #include "lscript_rt_interface.h"
-#include "lscript_library.h"
-#include "lscript_export.h"
-#include "lltextbox.h"
 #include "lltooldraganddrop.h"
 #include "llvfile.h"
 
@@ -386,39 +384,11 @@ BOOL LLScriptEdCore::postBuild()
 
 	initMenu();
 
+	mEditor->mKeywords.initialise();
 
+	// FIX: Refactor LLTextEditor::loadKeywords so these can be removed.
 	std::vector<std::string> funcs;
 	std::vector<std::string> tooltips;
-	for (std::vector<LLScriptLibraryFunction>::const_iterator i = gScriptLibrary.mFunctions.begin();
-	i != gScriptLibrary.mFunctions.end(); ++i)
-	{
-		// Make sure this isn't a god only function, or the agent is a god.
-		if (!i->mGodOnly || gAgent.isGodlike())
-		{
-			std::string name = i->mName;
-			funcs.push_back(name);
-			
-			std::string desc_name = "LSLTipText_";
-			desc_name += name;
-			std::string desc = LLTrans::getString(desc_name);
-			
-			F32 sleep_time = i->mSleepTime;
-			if( sleep_time )
-			{
-				desc += "\n";
-				
-				LLStringUtil::format_map_t args;
-				args["[SLEEP_TIME]"] = llformat("%.1f", sleep_time );
-				desc += LLTrans::getString("LSLTipSleepTime", args);
-			}
-			
-			// A \n linefeed is not part of xml. Let's add one to keep all
-			// the tips one-per-line in strings.xml
-			LLStringUtil::replaceString( desc, "\\n", "\n" );
-			
-			tooltips.push_back(desc);
-		}
-	}
 	
 	LLColor3 color(0.5f, 0.0f, 0.15f);
 	mEditor->loadKeywords(gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS,"keywords.ini"), funcs, tooltips, color);
@@ -430,6 +400,7 @@ BOOL LLScriptEdCore::postBuild()
 	for (token_it = mEditor->keywordsBegin(); token_it != mEditor->keywordsEnd(); ++token_it)
 	{
 		token = token_it->second;
+		// FIX: change this to use the new Token Type enum entries.
 		if (token->getColor() == color) // Wow, what a disgusting hack.
 		{
 			primary_keywords.push_back( wstring_to_utf8str(token->getToken()) );
@@ -655,7 +626,7 @@ void LLScriptEdCore::updateDynamicHelp(BOOL immediate)
 	std::vector<LLTextSegmentPtr>::iterator segment_iter;
 	for (segment_iter = selected_segments.begin(); segment_iter != selected_segments.end(); ++segment_iter)
 	{
-		if((*segment_iter)->getToken() && (*segment_iter)->getToken()->getType() == LLKeywordToken::WORD)
+		if((*segment_iter)->getToken() && (*segment_iter)->getToken()->getType() == LLKeywordToken::TT_WORD)
 		{
 			segment = *segment_iter;
 			break;
@@ -666,7 +637,7 @@ void LLScriptEdCore::updateDynamicHelp(BOOL immediate)
 	if (!segment)
 	{
 		const LLTextSegmentPtr test_segment = mEditor->getPreviousSegment();
-		if(test_segment->getToken() && test_segment->getToken()->getType() == LLKeywordToken::WORD)
+		if(test_segment->getToken() && test_segment->getToken()->getType() == LLKeywordToken::TT_WORD)
 		{
 			segment = test_segment;
 		}
-- 
cgit v1.2.3


From f093b4ea486b8d0f83a16347ed79e5479ddc6c27 Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Wed, 6 Feb 2013 00:08:03 +0000
Subject: STORM-1831 Updating keywords_lsl_tokens.xml. This should bring all
 tokens available on agni up to date.

---
 indra/newview/app_settings/keywords_lsl_tokens.xml | 409 ++++++++++++++++++---
 1 file changed, 367 insertions(+), 42 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/app_settings/keywords_lsl_tokens.xml b/indra/newview/app_settings/keywords_lsl_tokens.xml
index f33426489b..211e844551 100644
--- a/indra/newview/app_settings/keywords_lsl_tokens.xml
+++ b/indra/newview/app_settings/keywords_lsl_tokens.xml
@@ -240,6 +240,15 @@
             <key>description</key>
             <string>Texture animation is on.</string>
          </map>
+         <key>ATTACH_AVATAR_CENTER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>40</integer>
+            <key>description</key>
+            <string/>
+         </map>
          <key>ATTACH_BACK</key>
          <map>
             <key>type</key>
@@ -247,7 +256,7 @@
             <key>value</key>
             <integer>9</integer>
             <key>description</key>
-            <string>Attach to the avatar back.</string>
+            <string>Attach to the avatar's back.</string>
          </map>
          <key>ATTACH_BELLY</key>
          <map>
@@ -256,7 +265,7 @@
             <key>value</key>
             <integer>28</integer>
             <key>description</key>
-            <string>Attach to the avatar belly.</string>
+            <string>Attach to the avatar's belly.</string>
          </map>
          <key>ATTACH_CHEST</key>
          <map>
@@ -265,7 +274,7 @@
             <key>value</key>
             <integer>1</integer>
             <key>description</key>
-            <string>Attach to the avatar chest.</string>
+            <string>Attach to the avatar's chest.</string>
          </map>
          <key>ATTACH_CHIN</key>
          <map>
@@ -274,7 +283,7 @@
             <key>value</key>
             <integer>12</integer>
             <key>description</key>
-            <string>Attach to the avatar chin.</string>
+            <string>Attach to the avatar's chin.</string>
          </map>
          <key>ATTACH_HEAD</key>
          <map>
@@ -283,7 +292,7 @@
             <key>value</key>
             <integer>2</integer>
             <key>description</key>
-            <string>Attach to the avatar head.</string>
+            <string>Attach to the avatar's head.</string>
          </map>
          <key>ATTACH_HUD_BOTTOM</key>
          <map>
@@ -364,7 +373,7 @@
             <key>value</key>
             <integer>13</integer>
             <key>description</key>
-            <string>Attach to the avatar left ear.</string>
+            <string>Attach to the avatar's left ear.</string>
          </map>
          <key>ATTACH_LEFT_PEC</key>
          <map>
@@ -373,7 +382,7 @@
             <key>value</key>
             <integer>29</integer>
             <key>description</key>
-            <string>Attach to the avatar left pectoral.</string>
+            <string>Attach to the avatar's left pectoral.</string>
          </map>
          <key>ATTACH_LEYE</key>
          <map>
@@ -382,7 +391,7 @@
             <key>value</key>
             <integer>15</integer>
             <key>description</key>
-            <string>Attach to the avatar left eye.</string>
+            <string>Attach to the avatar's left eye.</string>
          </map>
          <key>ATTACH_LFOOT</key>
          <map>
@@ -391,7 +400,7 @@
             <key>value</key>
             <integer>7</integer>
             <key>description</key>
-            <string>Attach to the avatar left foot.</string>
+            <string>Attach to the avatar's left foot.</string>
          </map>
          <key>ATTACH_LHAND</key>
          <map>
@@ -400,7 +409,7 @@
             <key>value</key>
             <integer>5</integer>
             <key>description</key>
-            <string>Attach to the avatar left hand.</string>
+            <string>Attach to the avatar's left hand.</string>
          </map>
          <key>ATTACH_LHIP</key>
          <map>
@@ -409,7 +418,7 @@
             <key>value</key>
             <integer>25</integer>
             <key>description</key>
-            <string>Attach to the avatar left hip.</string>
+            <string>Attach to the avatar's left hip.</string>
          </map>
          <key>ATTACH_LLARM</key>
          <map>
@@ -418,7 +427,7 @@
             <key>value</key>
             <integer>21</integer>
             <key>description</key>
-            <string>Attach to the avatar left lower arm.</string>
+            <string>Attach to the avatar's left lower arm.</string>
          </map>
          <key>ATTACH_LLLEG</key>
          <map>
@@ -427,7 +436,7 @@
             <key>value</key>
             <integer>27</integer>
             <key>description</key>
-            <string>Attach to the avatar lower left leg.</string>
+            <string>Attach to the avatar's lower left leg.</string>
          </map>
          <key>ATTACH_LPEC</key>
          <map>
@@ -436,7 +445,7 @@
             <key>value</key>
             <integer>30</integer>
             <key>description</key>
-            <string>Attach to the avatar right pectoral. (Deprecated, use ATTACH_RIGHT_PEC)</string>
+            <string>Attach to the avatar's right pectoral. (Deprecated, use ATTACH_RIGHT_PEC)</string>
          </map>
          <key>ATTACH_LSHOULDER</key>
          <map>
@@ -445,7 +454,7 @@
             <key>value</key>
             <integer>3</integer>
             <key>description</key>
-            <string>Attach to the avatar left shoulder.</string>
+            <string>Attach to the avatar's left shoulder.</string>
          </map>
          <key>ATTACH_LUARM</key>
          <map>
@@ -454,7 +463,7 @@
             <key>value</key>
             <integer>20</integer>
             <key>description</key>
-            <string>Attach to the avatar left upper arm.</string>
+            <string>Attach to the avatar's left upper arm.</string>
          </map>
          <key>ATTACH_LULEG</key>
          <map>
@@ -463,7 +472,7 @@
             <key>value</key>
             <integer>27</integer>
             <key>description</key>
-            <string>Attach to the avatar lower upper leg.</string>
+            <string>Attach to the avatar's lower upper leg.</string>
          </map>
          <key>ATTACH_MOUTH</key>
          <map>
@@ -472,7 +481,16 @@
             <key>value</key>
             <integer>11</integer>
             <key>description</key>
-            <string>Attach to the avatar mouth.</string>
+            <string>Attach to the avatar's mouth.</string>
+         </map>
+         <key>ATTACH_NECK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>39</integer>
+            <key>description</key>
+            <string>Attach to the avatar's neck.</string>
          </map>
          <key>ATTACH_NOSE</key>
          <map>
@@ -481,7 +499,7 @@
             <key>value</key>
             <integer>17</integer>
             <key>description</key>
-            <string>Attach to the avatar nose.</string>
+            <string>Attach to the avatar's nose.</string>
          </map>
          <key>ATTACH_PELVIS</key>
          <map>
@@ -490,7 +508,7 @@
             <key>value</key>
             <integer>10</integer>
             <key>description</key>
-            <string>Attach to the avatar pelvis.</string>
+            <string>Attach to the avatar's pelvis.</string>
          </map>
          <key>ATTACH_REAR</key>
          <map>
@@ -499,7 +517,7 @@
             <key>value</key>
             <integer>14</integer>
             <key>description</key>
-            <string>Attach to the avatar right ear.</string>
+            <string>Attach to the avatar's right ear.</string>
          </map>
          <key>ATTACH_REYE</key>
          <map>
@@ -508,7 +526,7 @@
             <key>value</key>
             <integer>16</integer>
             <key>description</key>
-            <string>Attach to the avatar right eye.</string>
+            <string>Attach to the avatar's right eye.</string>
          </map>
          <key>ATTACH_RFOOT</key>
          <map>
@@ -517,7 +535,7 @@
             <key>value</key>
             <integer>8</integer>
             <key>description</key>
-            <string>Attach to the avatar right foot.</string>
+            <string>Attach to the avatar's right foot.</string>
          </map>
          <key>ATTACH_RHAND</key>
          <map>
@@ -526,7 +544,7 @@
             <key>value</key>
             <integer>6</integer>
             <key>description</key>
-            <string>Attach to the avatar right hand.</string>
+            <string>Attach to the avatar's right hand.</string>
          </map>
          <key>ATTACH_RHIP</key>
          <map>
@@ -535,7 +553,7 @@
             <key>value</key>
             <integer>22</integer>
             <key>description</key>
-            <string>Attach to the avatar right hip.</string>
+            <string>Attach to the avatar's right hip.</string>
          </map>
          <key>ATTACH_RIGHT_PEC</key>
          <map>
@@ -544,7 +562,7 @@
             <key>value</key>
             <integer>30</integer>
             <key>description</key>
-            <string>Attach to the avatar right pectoral.</string>
+            <string>Attach to the avatar's right pectoral.</string>
          </map>
          <key>ATTACH_RLARM</key>
          <map>
@@ -553,7 +571,7 @@
             <key>value</key>
             <integer>19</integer>
             <key>description</key>
-            <string>Attach to the avatar right lower arm.</string>
+            <string>Attach to the avatar's right lower arm.</string>
          </map>
          <key>ATTACH_RLLEG</key>
          <map>
@@ -562,7 +580,7 @@
             <key>value</key>
             <integer>24</integer>
             <key>description</key>
-            <string>Attach to the avatar right lower leg.</string>
+            <string>Attach to the avatar's right lower leg.</string>
          </map>
          <key>ATTACH_RPEC</key>
          <map>
@@ -571,7 +589,7 @@
             <key>value</key>
             <integer>29</integer>
             <key>description</key>
-            <string>Attach to the avatar left pectoral. (deprecated, use ATTACH_LEFT_PEC)</string>
+            <string>Attach to the avatar's left pectoral. (deprecated, use ATTACH_LEFT_PEC)</string>
          </map>
          <key>ATTACH_RSHOULDER</key>
          <map>
@@ -580,7 +598,7 @@
             <key>value</key>
             <integer>4</integer>
             <key>description</key>
-            <string>Attach to the avatar right shoulder.</string>
+            <string>Attach to the avatar's right shoulder.</string>
          </map>
          <key>ATTACH_RUARM</key>
          <map>
@@ -589,7 +607,7 @@
             <key>value</key>
             <integer>18</integer>
             <key>description</key>
-            <string>Attach to the avatar right upper arm.</string>
+            <string>Attach to the avatar's right upper arm.</string>
          </map>
          <key>ATTACH_RULEG</key>
          <map>
@@ -598,7 +616,7 @@
             <key>value</key>
             <integer>23</integer>
             <key>description</key>
-            <string>Attach to the avatar right upper leg.</string>
+            <string>Attach to the avatar's right upper leg.</string>
          </map>
          <key>AVOID_CHARACTERS</key>
          <map>
@@ -852,6 +870,15 @@
             <key>description</key>
             <string>The texture offset, scale rotation, or simply the object texture has changed.</string>
          </map>
+         <key>CHARACTER_ACCOUNT_FOR_SKIPPED_FRAMES</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>14</integer>
+            <key>description</key>
+            <string>If set to false, character will not attempt to catch up on lost time when pathfinding performance is low, potentially providing more reliable movement (albeit while potentially appearing to be more stuttery). Default is true to match pre-existing behavior.</string>
+         </map>
          <key>CHARACTER_AVOIDANCE_MODE</key>
          <map>
             <key>type</key>
@@ -1399,15 +1426,6 @@
             <key>description</key>
             <string>Used with llSetPhysicsMaterial to enable the friction value. Must be between 0.0 and 255.0</string>
          </map>
-         <key>GET_NAV_POINT_RADIUS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>description</key>
-            <string/>
-         </map>
          <key>GRAVITY_MULTIPLIER</key>
          <map>
             <key>type</key>
@@ -1444,6 +1462,15 @@
             <key>description</key>
             <string/>
          </map>
+         <key>HTTP_CUSTOM_HEADER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>description</key>
+            <string>Add an extra custom HTTP header to the request. The first string is the name of the parameter to change, e.g. "Pragma", and the second string is the value, e.g. "no-cache". Up to 8 custom headers may be configured per request. Note that certain headers, such as the default headers, are blocked for security reasons.</string>
+         </map>
          <key>HTTP_METHOD</key>
          <map>
             <key>type</key>
@@ -1462,6 +1489,15 @@
             <key>description</key>
             <string/>
          </map>
+         <key>HTTP_PRAGMA_NO_CACHE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>description</key>
+            <string>Usage: [HTTP_PRAGMA_NO_CACHE, integer SendHeader]. When SendHeader is TRUE, the "Pragma: no-cache" header is sent by the script. This matches the default behavior. When SendHeader is FALSE, no "Pragma" header is sent by the script.</string>
+         </map>
          <key>HTTP_VERBOSE_THROTTLE</key>
          <map>
             <key>type</key>
@@ -1975,6 +2011,15 @@
             <key>description</key>
             <string/>
          </map>
+         <key>OBJECT_ATTACHED_POINT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>19</integer>
+            <key>description</key>
+            <string>Returns 0 if the object is not an attachment (or is an avatar, etc).</string>
+         </map>
          <key>OBJECT_CHARACTER_TIME</key>
          <map>
             <key>type</key>
@@ -1982,7 +2027,7 @@
             <key>value</key>
             <integer>17</integer>
             <key>description</key>
-            <string>units in seconds</string>
+            <string>Units in seconds</string>
          </map>
          <key>OBJECT_CREATOR</key>
          <map>
@@ -2029,6 +2074,33 @@
             <key>description</key>
             <string>Gets an object's owner's key. If id is group owned, a NULL_KEY is returned.</string>
          </map>
+         <key>OBJECT_PATHFINDING_TYPE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>20</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>OBJECT_PHANTOM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>22</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>OBJECT_PHYSICS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>21</integer>
+            <key>description</key>
+            <string/>
+         </map>
          <key>OBJECT_PHYSICS_COST</key>
          <map>
             <key>type</key>
@@ -2056,6 +2128,15 @@
             <key>description</key>
             <string/>
          </map>
+         <key>OBJECT_ROOT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>18</integer>
+            <key>description</key>
+            <string>If id is an avatar, return the id of the root prim of the linkset the avatar is sitting on (or the avatar's own id if the avatar is not sitting on an object within the region).</string>
+         </map>
          <key>OBJECT_ROT</key>
          <map>
             <key>type</key>
@@ -2110,6 +2191,15 @@
             <key>description</key>
             <string/>
          </map>
+         <key>OBJECT_TEMP_ON_REZ</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>23</integer>
+            <key>description</key>
+            <string/>
+         </map>
          <key>OBJECT_TOTAL_SCRIPT_COUNT</key>
          <map>
             <key>type</key>
@@ -2137,6 +2227,78 @@
             <key>description</key>
             <string>Gets the object's velocity.</string>
          </map>
+         <key>OPT_AVATAR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>OPT_CHARACTER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>OPT_EXCLUSION_VOLUME</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>OPT_LEGACY_LINKSET</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>OPT_MATERIAL_VOLUME</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>OPT_OTHER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-1</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>OPT_STATIC_OBSTACLE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>OPT_WALKABLE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>description</key>
+            <string/>
+         </map>
          <key>PARCEL_COUNT_GROUP</key>
          <map>
             <key>type</key>
@@ -2704,6 +2866,15 @@
             <key>description</key>
             <string>If this permission enabled, the object can successfully call the llTakeControls libray call.</string>
          </map>
+         <key>PERMISSION_TELEPORT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x1000</integer>
+            <key>description</key>
+            <string/>
+         </map>
          <key>PERMISSION_TRACK_CAMERA</key>
          <map>
             <key>type</key>
@@ -4454,6 +4625,15 @@
             <key>description</key>
             <string>Scripted in-world objects.</string>
          </map>
+         <key>SIM_STAT_PCT_CHARS_STEPPED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>description</key>
+            <string>The returned value corresponds to the "Characters Updated" stat in the viewer's Statistics Bar.</string>
+         </map>
          <key>SMOOTH</key>
          <map>
             <key>type</key>
@@ -6615,6 +6795,30 @@
             <string>Attach to avatar at point iAttachmentPoint.\n
 			Requires the PERMISSION_ATTACH runtime permission.</string>
          </map>
+         <key>llAttachToAvatarTemp</key>
+         <map>
+            <key>energy</key>
+            <real>0</real>
+            <key>sleep</key>
+            <real>0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>AttachPoint</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Valid attachment poit or ATTACH_* constant.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Follows the same convention as llAttachToAvatar, with the exception that the object will not create new inventory for the user, and will disappear on detach or disconnect.</string>
+            <key>description</key>
+            <string/>
+         </map>
          <key>llAvatarOnLinkSitTarget</key>
          <map>
             <key>energy</key>
@@ -10031,6 +10235,30 @@
             <key>description</key>
             <string>Returns TRUE if ScriptName is running.</string>
          </map>
+         <key>llGetSimStats</key>
+         <map>
+            <key>energy</key>
+            <real>0</real>
+            <key>sleep</key>
+            <real>0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>StatType</string>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>description</key>
+                  <string>Statistic type. Currently only SIM_STAT_PCT_CHARS_STEPPED is supported.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Returns a float that is the requested statistic.</string>
+            <key>description</key>
+            <string/>
+         </map>
          <key>llGetSimulatorHostname</key>
          <map>
             <key>energy</key>
@@ -16942,6 +17170,103 @@
             <key>description</key>
             <string>Remove target number.</string>
          </map>
+         <key>llTeleportAgent</key>
+         <map>
+            <key>energy</key>
+            <real>0</real>
+            <key>sleep</key>
+            <real>0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>AvatarID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string>UUID of avatar.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>LandmarkName</string>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>description</key>
+                  <string>Name of landmark (in object contents), or empty string, to use.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>Position</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string>If no landmark was provided, the position within the current region to teleport the avatar to.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>LookAtPoint</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string>The position within the target region that the avatar should be turned to face upon arrival.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Requests a teleport of avatar to a landmark stored in the object's inventory. If no landmark is provided (an empty string), the avatar is teleported to the location position in the current region. In either case, the avatar is turned to face the position given by look_at in local coordinates.
+				Requires the PERMISSION_TELEPORT permission. This function can only teleport the owner of the object.</string>
+            <key>description</key>
+            <string/>
+         </map>
+         <key>llTeleportAgentGlobalCoords</key>
+         <map>
+            <key>energy</key>
+            <real>0</real>
+            <key>sleep</key>
+            <real>0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>name</key>
+                  <string>AvatarID</string>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>description</key>
+                  <string>UUID of avatar.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>GlobalPosition</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string>Global coordinates of the destination region. Can be retrieved by using llRequestSimulatorData(region_name, DATA_SIM_POS).</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>RegionPosition</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string>The position within the target region to teleport the avatar to, if no landmark was provided.</string>
+               </map>
+               <map>
+                  <key>name</key>
+                  <string>LookAtPoint</string>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>description</key>
+                  <string>The position within the target region that the avatar should be turned to face upon arrival.</string>
+               </map>
+            </array>
+            <key>summary</key>
+            <string>Teleports an agent to set of a region_coordinates within a region at the specified global_coordinates. The agent lands facing the position defined by look_at local coordinates.</string>
+            <key>description</key>
+            <string/>
+         </map>
          <key>llTeleportAgentHome</key>
          <map>
             <key>energy</key>
-- 
cgit v1.2.3


From 582babac2f1acd7f558fa4bf13034c5f306fe115 Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Mon, 11 Feb 2013 21:50:38 +0000
Subject: STORM-1831 Changes to LLSD structure and corresponding processing in
 llkeywords. Plus some formating clean ups.

---
 indra/llui/llkeywords.cpp                          |   99 +-
 indra/llui/llkeywords.h                            |    2 +-
 indra/newview/app_settings/keywords_lsl_tokens.xml | 9258 +++++++++-----------
 3 files changed, 4001 insertions(+), 5358 deletions(-)

(limited to 'indra')

diff --git a/indra/llui/llkeywords.cpp b/indra/llui/llkeywords.cpp
index 2ff0298ba6..0481948a09 100644
--- a/indra/llui/llkeywords.cpp
+++ b/indra/llui/llkeywords.cpp
@@ -111,8 +111,8 @@ void LLKeywords::addToken(LLKeywordToken::TOKEN_TYPE type,
 	switch(type)
 	{
 	case LLKeywordToken::TT_CONSTANT:
+	case LLKeywordToken::TT_CONTROL:
 	case LLKeywordToken::TT_EVENT:
-	case LLKeywordToken::TT_FLOW:
 	case LLKeywordToken::TT_FUNCTION:
 	case LLKeywordToken::TT_LABEL:
 	case LLKeywordToken::TT_SECTION:
@@ -139,23 +139,23 @@ void LLKeywords::addToken(LLKeywordToken::TOKEN_TYPE type,
 std::string LLKeywords::getArguments(LLSD& arguments)
 {
 	std::string args = "";
-	if (arguments.isArray())
+	if (arguments.isMap())
 	{
-		int count = 0;
-		do
+		int count = arguments.size();
+		LLSD::map_iterator argsIt = arguments.beginMap();
+		for ( ; argsIt != arguments.endMap(); ++argsIt)
 		{
-			LLSD arg = arguments[count];
-			args += arg.get("type").asString() + " " + arg.get("name").asString();
-			++count;
-			if (arguments.size() - count > 0)
-			{
-				args += ", ";
-			}
-		} while (count < arguments.size());
+				LLSD arg = argsIt->second;
+				args += arg.get("type").asString() + " " + argsIt->first;
+				if (count-- > 1)
+				{
+					args += ", ";
+				}
+		}
 	}
-	else
+	else if (!arguments.isUndefined())
 	{
-		LL_WARNS("Arguments") << "Not an array! Invalid LLSD passed to function.\n" << arguments << LL_ENDL;
+		LL_WARNS("Arguments") << "Not a map! Invalid LLSD passed to function.\n" << arguments << LL_ENDL;
 	}
 	return args == "" ? " void " : args;
 }
@@ -305,7 +305,7 @@ void LLKeywords::processTokens()
 {
 	// Add 'standard' stuff: Quotes, Comments, Strings, Labels, etc. before processing the LLSD
 	std::string delimiter;
-	addToken(LLKeywordToken::TT_LINE, "@", getColorGroup("misc-flow-label"), "Label\nTarget for jump statement", delimiter );
+	addToken(LLKeywordToken::TT_LABEL, "@", getColorGroup("label"), "Label\nTarget for jump statement", delimiter );
 	addToken(LLKeywordToken::TT_ONE_SIDED_DELIMITER, "//", getColorGroup("misc-comments_1_sided"), "Comment\nNon-functional commentary or disabled code", delimiter );
 	addToken(LLKeywordToken::TT_TWO_SIDED_DELIMITER, "/*", getColorGroup("misc-comments_2_sided"), "Comment\nNon-functional commentary or disabled code (multi-line)", "*/" );
 	addToken(LLKeywordToken::TT_DOUBLE_QUOTATION_MARKS, "\"", getColorGroup("misc-double_quotation_marks"), "String literal", "\"" );
@@ -325,6 +325,17 @@ void LLKeywords::processTokens()
 				LL_ERRS("Tokens-Constants") << "No constants map to process!" << LL_ENDL;
 			}
 		}
+		else if (outerIt->first == "controls")
+		{
+			if (outerIt->second.isMap())
+			{
+				processTokensGroup(outerIt->second, "controls");
+			}
+			else
+			{
+				LL_ERRS("Tokens-Controls") << "No controls map to process!" << LL_ENDL;
+			}
+		}
 		else if(outerIt->first == "misc")
 		{
 			if (outerIt->second.isMap())
@@ -364,7 +375,7 @@ void LLKeywords::processTokens()
 		}
 		else if(outerIt->first == "types")
 		{
-			if (outerIt->second.isArray())
+			if (outerIt->second.isMap())
 			{
 				processTokensGroup(outerIt->second, "types");
 			}
@@ -392,50 +403,51 @@ void LLKeywords::processTokensGroup(LLSD& Tokens, const std::string Group)
 	{
 		token_type = LLKeywordToken::TT_CONSTANT;
 	}
-	else if (Group == "events")
+	else if (Group == "controls")
 	{
-		token_type = LLKeywordToken::TT_EVENT;
+		token_type = LLKeywordToken::TT_CONTROL;
 	}
-	else if (Group == "misc-flow-control")
+	else if (Group == "events")
 	{
-		token_type = LLKeywordToken::TT_FLOW;
+		token_type = LLKeywordToken::TT_EVENT;
 	}
 	else if (Group == "functions")
 	{
 		token_type = LLKeywordToken::TT_FUNCTION;
 	}
-	else if (Group == "misc-flow-label")
+	else if (Group == "label")
 	{
 		token_type = LLKeywordToken::TT_LABEL;
 	}
-	else if (Group == "misc-sections")
-	{
-		token_type = LLKeywordToken::TT_SECTION;
-	}
 	else if (Group == "types")
 	{
 		token_type = LLKeywordToken::TT_TYPE;
 	}
 
-	if (Tokens.isMap())		// constants, events, functions, and misc
+	if (Tokens.isMap())
 	{
 		LLSD::map_iterator outerIt = Tokens.beginMap();
 		for ( ; outerIt != Tokens.endMap(); ++outerIt)
 		{
+			Color = getColorGroup(Group);
 			if (outerIt->second.isMap())
 			{
 				mAttributes.clear();
+				bool deprecated = false;
 				LLSD arguments = LLSD ();
 				LLSD::map_iterator innerIt = outerIt->second.beginMap();
 				for ( ; innerIt != outerIt->second.endMap(); ++innerIt)
 				{
-					if (innerIt->first != "arguments")
-					{
-						mAttributes[innerIt->first] = innerIt->second.asString();
+					if (innerIt->first == "arguments")
+					{ 
+						if (innerIt->second.isMap())
+						{
+							arguments = innerIt->second;
+						}
 					}
-					else if (innerIt->second.isArray())
+					else
 					{
-						arguments = innerIt->second;
+						mAttributes[innerIt->first] = innerIt->second.asString();
 					}
 				}
 
@@ -449,10 +461,6 @@ void LLKeywords::processTokensGroup(LLSD& Tokens, const std::string Group)
 				{
 					tooltip = outerIt->first + "(" + getArguments(arguments) + ")";
 				}
-				else if (token_type == LLKeywordToken::TT_FLOW)
-				{
-					tooltip = "flow baby";
-				}
 				else if (token_type == LLKeywordToken::TT_FUNCTION)
 				{
 					tooltip = getAttribute("return") + " " + outerIt->first + "(" + getArguments(arguments) + ");";
@@ -463,25 +471,26 @@ void LLKeywords::processTokensGroup(LLSD& Tokens, const std::string Group)
 						tooltip += ", Sleep: " + getAttribute("sleep");
 					}
 				}
-				else if (token_type == LLKeywordToken::TT_SECTION)
-				{
-					tooltip = "section";
-				}
 
-				if (getAttribute("summry") != "")
+				if (getAttribute("tooltip") != "")
 				{
-					tooltip += "\n" + getAttribute("summary");
+					if (tooltip != "")
+					{
+						tooltip += "\n";
+					}
+					tooltip += getAttribute("tooltip");
 				}
-				else if (getAttribute("description") != "")
+
+				deprecated = getAttribute("deprecated") == "true" ? true : false;
+				if (deprecated)
 				{
-					tooltip += "\n" + getAttribute("description");
+					Color = getColorGroup("deprecated");
 				}
-
 				addToken(token_type, outerIt->first, Color, tooltip);
 			}
 		}
 	}
-	else if (Tokens.isArray())	// types
+	else if (Tokens.isArray())	// Currently nothing should need this, but it's here for completeness
 	{
 		for (int count = 0; count < Tokens.size(); ++count)
 		{
diff --git a/indra/llui/llkeywords.h b/indra/llui/llkeywords.h
index 87f65dc0bf..badbd2ae85 100644
--- a/indra/llui/llkeywords.h
+++ b/indra/llui/llkeywords.h
@@ -61,8 +61,8 @@ public:
 		TT_DOUBLE_QUOTATION_MARKS,
 		// Following constants are more specific versions of the preceding ones
 		TT_CONSTANT,						// WORD
+		TT_CONTROL,							// WORD
 		TT_EVENT,							// WORD
-		TT_FLOW,							// WORD
 		TT_FUNCTION,						// WORD
 		TT_LABEL,							// LINE
 		TT_SECTION,							// WORD
diff --git a/indra/newview/app_settings/keywords_lsl_tokens.xml b/indra/newview/app_settings/keywords_lsl_tokens.xml
index 211e844551..ebb63ef487 100644
--- a/indra/newview/app_settings/keywords_lsl_tokens.xml
+++ b/indra/newview/app_settings/keywords_lsl_tokens.xml
@@ -1,36 +1,97 @@
-<?xml version="1.0" encoding="utf-8"?>
-<?xml-model href="llsd-lsl-tokens.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
+<?xml version="1.0" encoding="utf-8"?><?xml-model href="llsd-lsl-syntax.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
 <llsd>
    <map>
-      <key>misc</key>
+      <key>controls</key>
       <map>
-         <key>flow-control</key>
-         <array>
-            <string>if</string>
-            <string>else</string>
-            <string>for</string>
-            <string>while</string>
-            <string>do</string>
-            <string>jump</string>
-            <string>return</string>
-         </array>
-         <key>sections</key>
-         <array>
-            <string>default</string>
-            <string>state</string>
-         </array>
+         <key>default</key>
+         <map>
+            <key>tooltip</key>
+            <string>All scripts must have a default state, which is the first state entered when the script starts.\nIf another state is defined before the default state, the compiler will report a syntax error.</string>
+         </map>
+         <key>do</key>
+         <map>
+            <key>tooltip</key>
+            <string>do / while loop\ndo {\n...\n} while (&lt;condition&gt;);</string>
+         </map>
+         <key>else</key>
+         <map>
+            <key>tooltip</key>
+            <string>if / else block\nif (&lt;condition&gt;) {\n...\n[} else [if (&lt;condition&gt;) {\n...]]\n}</string>
+         </map>
+         <key>for</key>
+         <map>
+            <key>tooltip</key>
+            <string>for loop\nfor (&lt;initialiser&gt;; &lt;condition&gt;; &lt;post-iteration-statement&gt;)\n{ ...\n}</string>
+         </map>
+         <key>if</key>
+         <map>
+            <key>tooltip</key>
+            <string>if / else block\nif (&lt;condition&gt;) {\n...\n[} else [if (&lt;condition&gt;) {\n...]]\n}</string>
+         </map>
+         <key>jump</key>
+         <map>
+            <key>tooltip</key>
+            <string>jump statement\njump &lt;label&gt;</string>
+         </map>
+         <key>return</key>
+         <map>
+            <key>tooltip</key>
+            <string>Leave current event or function.\nreturn [&lt;variable&gt;];\nOptionally pass back a variable's value, from a function.</string>
+         </map>
+         <key>state</key>
+         <map>
+            <key>tooltip</key>
+            <string>state &lt;target&gt;\nIf the target state is not the same as the current one, change to the target state.</string>
+         </map>
+         <key>while</key>
+         <map>
+            <key>tooltip</key>
+            <string>while loop\nwhile (&lt;condition&gt;) {\n,,,\n}</string>
+         </map>
       </map>
       <key>types</key>
-      <array>
-         <string>float</string>
-         <string>integer</string>
-         <string>key</string>
-         <string>list</string>
-         <string>quaternion</string>
-         <string>rotation</string>
-         <string>string</string>
-         <string>vector</string>
-      </array>
+      <map>
+         <key>float</key>
+         <map>
+            <key>tooltip</key>
+            <string>32 bit floating point value.\nThe range is 1.175494351E-38 to 3.402823466E+38.</string>
+         </map>
+         <key>integer</key>
+         <map>
+            <key>tooltip</key>
+            <string>32 bit integer value.\n−2,147,483,648 and +2,147,483,647 (that is 0x80000000 to 0x7FFFFFFF in hex).</string>
+         </map>
+         <key>key</key>
+         <map>
+            <key>tooltip</key>
+            <string>A 128 bit unique identifier (UUID).\nThe key is represented as hexidecimal characters (A-F and 0-9), grouped into sections (8,4,4,4,12 characters) and separated by hyphens (for a total of 36 characters). e.g. "A822FF2B-FF02-461D-B45D-DCD10A2DE0C2".</string>
+         </map>
+         <key>list</key>
+         <map>
+            <key>tooltip</key>
+            <string>A collection of other data types.\nLists are signified by square brackets surrounding their elements; the elements inside are separated by commas. e.g. [0, 1, 2, 3, 4] or ["Yes", "No", "Perhaps"].</string>
+         </map>
+         <key>quaternion</key>
+         <map>
+            <key>tooltip</key>
+            <string>The quaternion type is a left over from way back when LSL was created. It was later renamed to &lt;rotation&gt; to make it more user friendly, but it appears someone forgot to remove it ;-)</string>
+         </map>
+         <key>rotation</key>
+         <map>
+            <key>tooltip</key>
+            <string>The rotation type is one of several ways to represent an orientation in 3D.\nIt is a mathematical object called a quaternion. You can think of a quaternion as four numbers (x, y, z, w), three of which represent the direction an object is facing and a fourth that represents the object's banking left or right around that direction.</string>
+         </map>
+         <key>string</key>
+         <map>
+            <key>tooltip</key>
+            <string>Text data.\nThe editor accepts UTF-8 encoded text.</string>
+         </map>
+         <key>vector</key>
+         <map>
+            <key>tooltip</key>
+            <string>A vector is a data type that contains a set of three float values.\nVectors are used to represent colours (RGB), positions, and directions/velocities.</string>
+         </map>
+      </map>
       <key>constants</key>
       <map>
          <key>ACTIVE</key>
@@ -39,7 +100,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x2</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Objects in world that are running a script or currently physically moving.</string>
          </map>
          <key>AGENT</key>
@@ -48,7 +109,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Objects in world that are agents.</string>
          </map>
          <key>AGENT_ALWAYS_RUN</key>
@@ -57,7 +118,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x1000</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>AGENT_ATTACHMENTS</key>
@@ -66,7 +127,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x2</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>The agent has attachments.</string>
          </map>
          <key>AGENT_AUTOPILOT</key>
@@ -75,7 +136,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x2000</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>AGENT_AWAY</key>
@@ -84,7 +145,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x40</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>AGENT_BUSY</key>
@@ -93,7 +154,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x800</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>AGENT_BY_LEGACY_NAME</key>
@@ -102,7 +163,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>AGENT_BY_USERNAME</key>
@@ -111,7 +172,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x10</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>AGENT_CROUCHING</key>
@@ -120,7 +181,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x400</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>AGENT_FLYING</key>
@@ -129,7 +190,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>The agent is flying.</string>
          </map>
          <key>AGENT_IN_AIR</key>
@@ -138,7 +199,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x100</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>AGENT_LIST_PARCEL</key>
@@ -147,7 +208,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Agents on the same parcel where the script is running.</string>
          </map>
          <key>AGENT_LIST_PARCEL_OWNER</key>
@@ -156,7 +217,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>2</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Agents on any parcel in the region where the parcel owner is the same as the owner of the parcel under the scripted object.</string>
          </map>
          <key>AGENT_LIST_REGION</key>
@@ -165,7 +226,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>4</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>All agents in the region.</string>
          </map>
          <key>AGENT_MOUSELOOK</key>
@@ -174,7 +235,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x8</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>AGENT_ON_OBJECT</key>
@@ -183,7 +244,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x20</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>AGENT_SCRIPTED</key>
@@ -192,7 +253,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x4</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>The agent has scripted attachments.</string>
          </map>
          <key>AGENT_SITTING</key>
@@ -201,7 +262,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x10</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>AGENT_TYPING</key>
@@ -210,7 +271,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x200</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>AGENT_WALKING</key>
@@ -219,7 +280,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x80</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>ALL_SIDES</key>
@@ -228,7 +289,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>-1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>ANIM_ON</key>
@@ -237,7 +298,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Texture animation is on.</string>
          </map>
          <key>ATTACH_AVATAR_CENTER</key>
@@ -246,7 +307,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>40</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>ATTACH_BACK</key>
@@ -255,7 +316,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>9</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Attach to the avatar's back.</string>
          </map>
          <key>ATTACH_BELLY</key>
@@ -264,7 +325,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>28</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Attach to the avatar's belly.</string>
          </map>
          <key>ATTACH_CHEST</key>
@@ -273,7 +334,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Attach to the avatar's chest.</string>
          </map>
          <key>ATTACH_CHIN</key>
@@ -282,7 +343,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>12</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Attach to the avatar's chin.</string>
          </map>
          <key>ATTACH_HEAD</key>
@@ -291,7 +352,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>2</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Attach to the avatar's head.</string>
          </map>
          <key>ATTACH_HUD_BOTTOM</key>
@@ -300,7 +361,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>37</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>ATTACH_HUD_BOTTOM_LEFT</key>
@@ -309,7 +370,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>36</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>ATTACH_HUD_BOTTOM_RIGHT</key>
@@ -318,7 +379,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>38</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>ATTACH_HUD_CENTER_1</key>
@@ -327,7 +388,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>35</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>ATTACH_HUD_CENTER_2</key>
@@ -336,7 +397,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>31</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>ATTACH_HUD_TOP_CENTER</key>
@@ -345,7 +406,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>33</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>ATTACH_HUD_TOP_LEFT</key>
@@ -354,7 +415,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>34</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>ATTACH_HUD_TOP_RIGHT</key>
@@ -363,7 +424,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>32</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>ATTACH_LEAR</key>
@@ -372,7 +433,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>13</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Attach to the avatar's left ear.</string>
          </map>
          <key>ATTACH_LEFT_PEC</key>
@@ -381,7 +442,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>29</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Attach to the avatar's left pectoral.</string>
          </map>
          <key>ATTACH_LEYE</key>
@@ -390,7 +451,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>15</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Attach to the avatar's left eye.</string>
          </map>
          <key>ATTACH_LFOOT</key>
@@ -399,7 +460,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>7</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Attach to the avatar's left foot.</string>
          </map>
          <key>ATTACH_LHAND</key>
@@ -408,7 +469,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>5</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Attach to the avatar's left hand.</string>
          </map>
          <key>ATTACH_LHIP</key>
@@ -417,7 +478,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>25</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Attach to the avatar's left hip.</string>
          </map>
          <key>ATTACH_LLARM</key>
@@ -426,7 +487,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>21</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Attach to the avatar's left lower arm.</string>
          </map>
          <key>ATTACH_LLLEG</key>
@@ -435,16 +496,18 @@
             <string>integer</string>
             <key>value</key>
             <integer>27</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Attach to the avatar's lower left leg.</string>
          </map>
          <key>ATTACH_LPEC</key>
          <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
             <key>type</key>
             <string>integer</string>
             <key>value</key>
             <integer>30</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Attach to the avatar's right pectoral. (Deprecated, use ATTACH_RIGHT_PEC)</string>
          </map>
          <key>ATTACH_LSHOULDER</key>
@@ -453,7 +516,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>3</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Attach to the avatar's left shoulder.</string>
          </map>
          <key>ATTACH_LUARM</key>
@@ -462,7 +525,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>20</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Attach to the avatar's left upper arm.</string>
          </map>
          <key>ATTACH_LULEG</key>
@@ -471,7 +534,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>27</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Attach to the avatar's lower upper leg.</string>
          </map>
          <key>ATTACH_MOUTH</key>
@@ -480,7 +543,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>11</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Attach to the avatar's mouth.</string>
          </map>
          <key>ATTACH_NECK</key>
@@ -489,7 +552,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>39</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Attach to the avatar's neck.</string>
          </map>
          <key>ATTACH_NOSE</key>
@@ -498,7 +561,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>17</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Attach to the avatar's nose.</string>
          </map>
          <key>ATTACH_PELVIS</key>
@@ -507,7 +570,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>10</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Attach to the avatar's pelvis.</string>
          </map>
          <key>ATTACH_REAR</key>
@@ -516,7 +579,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>14</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Attach to the avatar's right ear.</string>
          </map>
          <key>ATTACH_REYE</key>
@@ -525,7 +588,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>16</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Attach to the avatar's right eye.</string>
          </map>
          <key>ATTACH_RFOOT</key>
@@ -534,7 +597,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>8</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Attach to the avatar's right foot.</string>
          </map>
          <key>ATTACH_RHAND</key>
@@ -543,7 +606,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>6</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Attach to the avatar's right hand.</string>
          </map>
          <key>ATTACH_RHIP</key>
@@ -552,7 +615,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>22</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Attach to the avatar's right hip.</string>
          </map>
          <key>ATTACH_RIGHT_PEC</key>
@@ -561,7 +624,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>30</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Attach to the avatar's right pectoral.</string>
          </map>
          <key>ATTACH_RLARM</key>
@@ -570,7 +633,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>19</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Attach to the avatar's right lower arm.</string>
          </map>
          <key>ATTACH_RLLEG</key>
@@ -579,16 +642,18 @@
             <string>integer</string>
             <key>value</key>
             <integer>24</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Attach to the avatar's right lower leg.</string>
          </map>
          <key>ATTACH_RPEC</key>
          <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
             <key>type</key>
             <string>integer</string>
             <key>value</key>
             <integer>29</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Attach to the avatar's left pectoral. (deprecated, use ATTACH_LEFT_PEC)</string>
          </map>
          <key>ATTACH_RSHOULDER</key>
@@ -597,7 +662,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>4</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Attach to the avatar's right shoulder.</string>
          </map>
          <key>ATTACH_RUARM</key>
@@ -606,7 +671,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>18</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Attach to the avatar's right upper arm.</string>
          </map>
          <key>ATTACH_RULEG</key>
@@ -615,7 +680,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>23</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Attach to the avatar's right upper leg.</string>
          </map>
          <key>AVOID_CHARACTERS</key>
@@ -624,7 +689,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>AVOID_DYNAMIC_OBSTACLES</key>
@@ -633,7 +698,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>2</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>CAMERA_ACTIVE</key>
@@ -642,7 +707,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>12</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>CAMERA_BEHINDNESS_ANGLE</key>
@@ -651,7 +716,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>8</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>CAMERA_BEHINDNESS_LAG</key>
@@ -660,7 +725,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>9</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>CAMERA_DISTANCE</key>
@@ -669,7 +734,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>7</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>CAMERA_FOCUS</key>
@@ -678,7 +743,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>17</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>CAMERA_FOCUS_LAG</key>
@@ -687,7 +752,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>6</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>CAMERA_FOCUS_LOCKED</key>
@@ -696,7 +761,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>22</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>CAMERA_FOCUS_OFFSET</key>
@@ -705,7 +770,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>CAMERA_FOCUS_THRESHOLD</key>
@@ -714,7 +779,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>11</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>CAMERA_PITCH</key>
@@ -723,7 +788,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>CAMERA_POSITION</key>
@@ -732,7 +797,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>13</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>CAMERA_POSITION_LAG</key>
@@ -741,7 +806,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>6</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>CAMERA_POSITION_LOCKED</key>
@@ -750,7 +815,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>22</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>CAMERA_POSITION_THRESHOLD</key>
@@ -759,7 +824,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>10</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>CHANGED_ALLOWED_DROP</key>
@@ -768,7 +833,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x40</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>The object inventory has changed because an item was added through the llAllowInventoryDrop interface.</string>
          </map>
          <key>CHANGED_COLOR</key>
@@ -777,7 +842,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x2</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>The object colour has changed.</string>
          </map>
          <key>CHANGED_INVENTORY</key>
@@ -786,7 +851,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>The object inventory has changed.</string>
          </map>
          <key>CHANGED_LINK</key>
@@ -795,7 +860,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x20</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>The object has linked or its links were broken.</string>
          </map>
          <key>CHANGED_MEDIA</key>
@@ -804,7 +869,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>2048</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>CHANGED_OWNER</key>
@@ -813,7 +878,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x80</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>CHANGED_REGION</key>
@@ -822,7 +887,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x100</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>CHANGED_REGION_START</key>
@@ -831,7 +896,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x400</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>CHANGED_SCALE</key>
@@ -840,7 +905,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x8</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>The object scale (size) has changed.</string>
          </map>
          <key>CHANGED_SHAPE</key>
@@ -849,7 +914,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x4</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>The object base shape has changed, e.g., a box to a cylinder.</string>
          </map>
          <key>CHANGED_TELEPORT</key>
@@ -858,7 +923,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x200</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>CHANGED_TEXTURE</key>
@@ -867,7 +932,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x10</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>The texture offset, scale rotation, or simply the object texture has changed.</string>
          </map>
          <key>CHARACTER_ACCOUNT_FOR_SKIPPED_FRAMES</key>
@@ -876,7 +941,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>14</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>If set to false, character will not attempt to catch up on lost time when pathfinding performance is low, potentially providing more reliable movement (albeit while potentially appearing to be more stuttery). Default is true to match pre-existing behavior.</string>
          </map>
          <key>CHARACTER_AVOIDANCE_MODE</key>
@@ -885,7 +950,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>5</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Allows you to specify that a character should not try to avoid other characters, should not try to avoid dynamic obstacles (relatively fast moving objects and avatars), or both.</string>
          </map>
          <key>CHARACTER_CMD_JUMP</key>
@@ -894,7 +959,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x01</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Makes the character jump. Requires an additional parameter, the height to jump, between 0.1m and 2.0m. This must be provided as the first element of the llExecCharacterCmd option list.</string>
          </map>
          <key>CHARACTER_CMD_SMOOTH_STOP</key>
@@ -903,7 +968,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>2</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>CHARACTER_CMD_STOP</key>
@@ -912,7 +977,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x00</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Stops any current pathfinding operation.</string>
          </map>
          <key>CHARACTER_DESIRED_SPEED</key>
@@ -921,7 +986,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Speed of pursuit in meters per second.</string>
          </map>
          <key>CHARACTER_DESIRED_TURN_SPEED</key>
@@ -930,7 +995,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>12</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>The character's maximum speed while turning about the Z axis. - Note that this is only loosely enforced.</string>
          </map>
          <key>CHARACTER_LENGTH</key>
@@ -939,7 +1004,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>3</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Set collision capsule length - cannot be less than two times the radius.</string>
          </map>
          <key>CHARACTER_MAX_ACCEL</key>
@@ -948,7 +1013,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>8</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>The character's maximum acceleration rate.</string>
          </map>
          <key>CHARACTER_MAX_DECEL</key>
@@ -957,7 +1022,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>9</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>The character's maximum deceleration rate.</string>
          </map>
          <key>CHARACTER_MAX_SPEED</key>
@@ -966,7 +1031,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>13</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>The character's maximum speed.</string>
          </map>
          <key>CHARACTER_MAX_TURN_RADIUS</key>
@@ -975,7 +1040,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>10</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>The character's turn radius when travelling at CHARACTER_MAX_TURN_SPEED.</string>
          </map>
          <key>CHARACTER_ORIENTATION</key>
@@ -984,7 +1049,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>4</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Valid options are: VERTICAL, HORIZONTAL.</string>
          </map>
          <key>CHARACTER_RADIUS</key>
@@ -993,7 +1058,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>2</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Set collision capsule radius.</string>
          </map>
          <key>CHARACTER_TYPE</key>
@@ -1002,7 +1067,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>6</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Specifies which walk-ability coefficient will be used by this character.</string>
          </map>
          <key>CHARACTER_TYPE_A</key>
@@ -1011,7 +1076,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>CHARACTER_TYPE_B</key>
@@ -1020,7 +1085,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>CHARACTER_TYPE_C</key>
@@ -1029,7 +1094,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>2</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>CHARACTER_TYPE_D</key>
@@ -1038,7 +1103,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>3</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>CHARACTER_TYPE_NONE</key>
@@ -1047,7 +1112,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>4</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>CLICK_ACTION_BUY</key>
@@ -1056,7 +1121,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>2</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>When the prim is clicked, the buy dialog is opened.</string>
          </map>
          <key>CLICK_ACTION_NONE</key>
@@ -1065,7 +1130,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Performs the default action: when the prim is clicked, touch events are triggered".</string>
          </map>
          <key>CLICK_ACTION_OPEN</key>
@@ -1074,7 +1139,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>4</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>When the prim is clicked, the object inventory dialog is opened.</string>
          </map>
          <key>CLICK_ACTION_OPEN_MEDIA</key>
@@ -1083,7 +1148,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>6</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>When the prim is touched, the web media dialog is opened".</string>
          </map>
          <key>CLICK_ACTION_PAY</key>
@@ -1092,7 +1157,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>3</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>When the prim is clicked, the pay dialog is opened.</string>
          </map>
          <key>CLICK_ACTION_PLAY</key>
@@ -1101,7 +1166,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>5</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>When the prim is clicked, html-on-a-prim is enabled?</string>
          </map>
          <key>CLICK_ACTION_SIT</key>
@@ -1110,7 +1175,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>When the prim is clicked, the avatar sits upon it.</string>
          </map>
          <key>CLICK_ACTION_TOUCH</key>
@@ -1119,7 +1184,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>When the prim is clicked, touch events are triggered".</string>
          </map>
          <key>CONTENT_TYPE_HTML</key>
@@ -1128,7 +1193,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>"text/html", only valid for embedded browsers on content owned by the person viewing. Falls back to "text/plain" otherwise.</string>
          </map>
          <key>CONTENT_TYPE_TEXT</key>
@@ -1137,7 +1202,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>"text/plain"</string>
          </map>
          <key>CONTROL_BACK</key>
@@ -1146,7 +1211,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x2</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Test for the avatar move back control.</string>
          </map>
          <key>CONTROL_DOWN</key>
@@ -1155,7 +1220,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x20</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Test for the avatar move down control.</string>
          </map>
          <key>CONTROL_FWD</key>
@@ -1164,7 +1229,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Test for the avatar move forward control.</string>
          </map>
          <key>CONTROL_LBUTTON</key>
@@ -1173,7 +1238,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x10000000</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Test for the avatar left button control.</string>
          </map>
          <key>CONTROL_LEFT</key>
@@ -1182,7 +1247,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x4</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Test for the avatar move left control.</string>
          </map>
          <key>CONTROL_ML_LBUTTON</key>
@@ -1191,7 +1256,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x40000000</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Test for the avatar left button control while in mouse look.</string>
          </map>
          <key>CONTROL_RIGHT</key>
@@ -1200,7 +1265,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x8</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Test for the avatar move right control.</string>
          </map>
          <key>CONTROL_ROT_LEFT</key>
@@ -1209,7 +1274,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x100</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Test for the avatar rotate left control.</string>
          </map>
          <key>CONTROL_ROT_RIGHT</key>
@@ -1218,7 +1283,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x200</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Test for the avatar rotate right control.</string>
          </map>
          <key>CONTROL_UP</key>
@@ -1227,7 +1292,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x10</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Test for the avatar move up control.</string>
          </map>
          <key>DATA_BORN</key>
@@ -1236,7 +1301,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>3</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>The date the agent was born, returned in ISO 8601 format of YYYY-MM-DD.</string>
          </map>
          <key>DATA_NAME</key>
@@ -1245,7 +1310,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>2</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>The name of the agent.</string>
          </map>
          <key>DATA_ONLINE</key>
@@ -1254,7 +1319,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>TRUE for online, FALSE for offline.</string>
          </map>
          <key>DATA_PAYINFO</key>
@@ -1263,7 +1328,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>8</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>DATA_RATING</key>
@@ -1272,7 +1337,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>4</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Returns the agent ratings as a comma separated string of six integers. They are:
 			1) Positive rated behaviour
 			2) Negative rated behaviour
@@ -1287,7 +1352,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>5</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>DATA_SIM_RATING</key>
@@ -1296,7 +1361,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>7</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>DATA_SIM_STATUS</key>
@@ -1305,7 +1370,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>6</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>DEBUG_CHANNEL</key>
@@ -1314,7 +1379,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>2147483647</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>DEBUG_CHANNEL is an integer constant that, when passed to llSay, llWhisper, or llShout as a channel parameter, will print text to the Script Warning/Error Window.</string>
          </map>
          <key>DEG_TO_RAD</key>
@@ -1323,7 +1388,7 @@
             <string>float</string>
             <key>value</key>
             <real>0.01745329</real>
-            <key>description</key>
+            <key>tooltip</key>
             <string>0.01745329 - Number of radians per degree.
 			You can use this to convert degrees to radians by multiplying the degrees by this number.</string>
          </map>
@@ -1333,7 +1398,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Used with llSetPhysicsMaterial to enable the density value. Must be between 1.0 and 22587.0 (in Kg/m^3 -- see if you can figure out what 22587 represents)</string>
          </map>
          <key>EOF</key>
@@ -1342,7 +1407,7 @@
             <string>string</string>
             <key>value</key>
             <string>\n\n\n</string>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>ESTATE_ACCESS_ALLOWED_AGENT_ADD</key>
@@ -1351,7 +1416,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>4</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Add the agent to this estate's Allowed Residents list.</string>
          </map>
          <key>ESTATE_ACCESS_ALLOWED_AGENT_REMOVE</key>
@@ -1360,7 +1425,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>8</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Remove the agent from this estate's Allowed Residents list.</string>
          </map>
          <key>ESTATE_ACCESS_ALLOWED_GROUP_ADD</key>
@@ -1369,7 +1434,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>16</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Add the group to this estate's Allowed groups list.</string>
          </map>
          <key>ESTATE_ACCESS_ALLOWED_GROUP_REMOVE</key>
@@ -1378,7 +1443,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>32</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Remove the group from this estate's Allowed groups list.</string>
          </map>
          <key>ESTATE_ACCESS_BANNED_AGENT_ADD</key>
@@ -1387,7 +1452,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>64</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Add the agent to this estate's Banned residents list.</string>
          </map>
          <key>ESTATE_ACCESS_BANNED_AGENT_REMOVE</key>
@@ -1396,7 +1461,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>128</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Remove the agent from this estate's Banned residents list.</string>
          </map>
          <key>FALSE</key>
@@ -1405,7 +1470,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>An integer constant for boolean comparisons. Has the value '0'.</string>
          </map>
          <key>FORCE_DIRECT_PATH</key>
@@ -1414,7 +1479,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Makes character navigate in a straight line toward position. May be set to TRUE or FALSE.</string>
          </map>
          <key>FRICTION</key>
@@ -1423,7 +1488,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>2</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Used with llSetPhysicsMaterial to enable the friction value. Must be between 0.0 and 255.0</string>
          </map>
          <key>GRAVITY_MULTIPLIER</key>
@@ -1432,7 +1497,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>8</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Used with llSetPhysicsMaterial to enable the gravity multiplier value. Must be between -1.0 and +28.0</string>
          </map>
          <key>HORIZONTAL</key>
@@ -1441,7 +1506,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>HTTP_BODY_MAXLENGTH</key>
@@ -1450,7 +1515,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>2</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>HTTP_BODY_TRUNCATED</key>
@@ -1459,7 +1524,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>HTTP_CUSTOM_HEADER</key>
@@ -1468,7 +1533,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>5</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Add an extra custom HTTP header to the request. The first string is the name of the parameter to change, e.g. "Pragma", and the second string is the value, e.g. "no-cache". Up to 8 custom headers may be configured per request. Note that certain headers, such as the default headers, are blocked for security reasons.</string>
          </map>
          <key>HTTP_METHOD</key>
@@ -1477,7 +1542,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>HTTP_MIMETYPE</key>
@@ -1486,7 +1551,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>HTTP_PRAGMA_NO_CACHE</key>
@@ -1495,8 +1560,8 @@
             <string>integer</string>
             <key>value</key>
             <integer>6</integer>
-            <key>description</key>
-            <string>Usage: [HTTP_PRAGMA_NO_CACHE, integer SendHeader]. When SendHeader is TRUE, the "Pragma: no-cache" header is sent by the script. This matches the default behavior. When SendHeader is FALSE, no "Pragma" header is sent by the script.</string>
+            <key>tooltip</key>
+            <string>Allows enabling/disbling of the "Pragma: no-cache" header.\nUsage: [HTTP_PRAGMA_NO_CACHE, integer SendHeader]. When SendHeader is TRUE, the "Pragma: no-cache" header is sent by the script. This matches the default behavior. When SendHeader is FALSE, no "Pragma" header is sent by the script.</string>
          </map>
          <key>HTTP_VERBOSE_THROTTLE</key>
          <map>
@@ -1504,7 +1569,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>4</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>HTTP_VERIFY_CERT</key>
@@ -1513,7 +1578,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>3</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>INVENTORY_ALL</key>
@@ -1522,7 +1587,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>-1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>INVENTORY_ANIMATION</key>
@@ -1531,7 +1596,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>20</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>INVENTORY_BODYPART</key>
@@ -1540,7 +1605,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>13</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>INVENTORY_CLOTHING</key>
@@ -1549,7 +1614,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>5</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>INVENTORY_GESTURE</key>
@@ -1558,7 +1623,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>21</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>INVENTORY_LANDMARK</key>
@@ -1567,7 +1632,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>3</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>INVENTORY_NONE</key>
@@ -1576,7 +1641,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>-1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>INVENTORY_NOTECARD</key>
@@ -1585,7 +1650,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>7</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>INVENTORY_OBJECT</key>
@@ -1594,7 +1659,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>6</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>INVENTORY_SCRIPT</key>
@@ -1603,7 +1668,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>10</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>INVENTORY_SOUND</key>
@@ -1612,7 +1677,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>INVENTORY_TEXTURE</key>
@@ -1621,7 +1686,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>KFM_CMD_PAUSE</key>
@@ -1630,7 +1695,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>2</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>For use with KFM_COMMAND.</string>
          </map>
          <key>KFM_CMD_PLAY</key>
@@ -1639,7 +1704,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>For use with KFM_COMMAND.</string>
          </map>
          <key>KFM_CMD_STOP</key>
@@ -1648,7 +1713,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>For use with KFM_COMMAND.</string>
          </map>
          <key>KFM_COMMAND</key>
@@ -1657,7 +1722,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>KFM_DATA</key>
@@ -1666,7 +1731,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>2</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>KFM_FORWARD</key>
@@ -1675,7 +1740,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>For use with KFM_MODE.</string>
          </map>
          <key>KFM_LOOP</key>
@@ -1684,7 +1749,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>For use with KFM_MODE.</string>
          </map>
          <key>KFM_MODE</key>
@@ -1693,7 +1758,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>KFM_PING_PONG</key>
@@ -1702,7 +1767,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>2</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>For use with KFM_MODE.</string>
          </map>
          <key>KFM_REVERSE</key>
@@ -1711,7 +1776,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>2</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>For use with KFM_MODE.</string>
          </map>
          <key>KFM_ROTATION</key>
@@ -1720,7 +1785,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>For use with KFM_DATA.</string>
          </map>
          <key>KFM_TRANSLATION</key>
@@ -1729,7 +1794,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>2</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>For use with KFM_DATA.</string>
          </map>
          <key>LAND_LARGE_BRUSH</key>
@@ -1738,7 +1803,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>3</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Use a large brush size.</string>
          </map>
          <key>LAND_LEVEL</key>
@@ -1747,7 +1812,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Action to level the land.</string>
          </map>
          <key>LAND_LOWER</key>
@@ -1756,7 +1821,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>2</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Action to lower the land.</string>
          </map>
          <key>LAND_MEDIUM_BRUSH</key>
@@ -1765,7 +1830,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>2</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Use a medium brush size.</string>
          </map>
          <key>LAND_NOISE</key>
@@ -1774,7 +1839,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>4</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>LAND_RAISE</key>
@@ -1783,7 +1848,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Action to raise the land.</string>
          </map>
          <key>LAND_REVERT</key>
@@ -1792,7 +1857,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>5</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>LAND_SMALL_BRUSH</key>
@@ -1801,7 +1866,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Use a small brush size.</string>
          </map>
          <key>LAND_SMOOTH</key>
@@ -1810,7 +1875,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>3</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>LINK_ALL_CHILDREN</key>
@@ -1819,7 +1884,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>-3</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>This targets every object except the root in the linked set.</string>
          </map>
          <key>LINK_ALL_OTHERS</key>
@@ -1828,7 +1893,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>-2</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>This targets every object in the linked set except the object with the script.</string>
          </map>
          <key>LINK_ROOT</key>
@@ -1837,7 +1902,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>This targets the root of the linked set.</string>
          </map>
          <key>LINK_SET</key>
@@ -1846,7 +1911,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>-1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>This targets every object in the linked set.</string>
          </map>
          <key>LINK_THIS</key>
@@ -1855,7 +1920,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>-4</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>The link number of the prim containing the script.</string>
          </map>
          <key>LIST_STAT_GEOMETRIC_MEAN</key>
@@ -1864,7 +1929,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>9</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>LIST_STAT_MAX</key>
@@ -1873,7 +1938,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>2</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>LIST_STAT_MEAN</key>
@@ -1882,7 +1947,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>3</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>LIST_STAT_MEDIAN</key>
@@ -1891,7 +1956,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>4</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>LIST_STAT_MIN</key>
@@ -1900,7 +1965,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>LIST_STAT_NUM_COUNT</key>
@@ -1909,7 +1974,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>8</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>LIST_STAT_RANGE</key>
@@ -1918,7 +1983,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>LIST_STAT_STD_DEV</key>
@@ -1927,7 +1992,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>5</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>LIST_STAT_SUM</key>
@@ -1936,7 +2001,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>6</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>LIST_STAT_SUM_SQUARES</key>
@@ -1945,7 +2010,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>7</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>LOOP</key>
@@ -1954,7 +2019,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x2</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Loop the texture animation.</string>
          </map>
          <key>MASK_BASE</key>
@@ -1963,7 +2028,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>MASK_EVERYONE</key>
@@ -1972,7 +2037,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>3</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>MASK_GROUP</key>
@@ -1981,7 +2046,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>2</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>MASK_NEXT</key>
@@ -1990,7 +2055,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>4</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>MASK_OWNER</key>
@@ -1999,7 +2064,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>NULL_KEY</key>
@@ -2008,7 +2073,7 @@
             <string>key</string>
             <key>value</key>
             <uuid>00000000-0000-0000-0000-000000000000</uuid>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>OBJECT_ATTACHED_POINT</key>
@@ -2017,8 +2082,8 @@
             <string>integer</string>
             <key>value</key>
             <integer>19</integer>
-            <key>description</key>
-            <string>Returns 0 if the object is not an attachment (or is an avatar, etc).</string>
+            <key>tooltip</key>
+            <string>Gets the attachment point to which the object is attached.\nReturns 0 if the object is not an attachment (or is an avatar, etc).</string>
          </map>
          <key>OBJECT_CHARACTER_TIME</key>
          <map>
@@ -2026,7 +2091,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>17</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Units in seconds</string>
          </map>
          <key>OBJECT_CREATOR</key>
@@ -2035,7 +2100,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>8</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Gets the object's creator key. If id is an avatar, a NULL_KEY is returned.</string>
          </map>
          <key>OBJECT_DESC</key>
@@ -2044,7 +2109,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>2</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Gets the object's description. If id is an avatar, an empty string is returned.</string>
          </map>
          <key>OBJECT_GROUP</key>
@@ -2053,7 +2118,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>7</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Gets the prims's group key. If id is an avatar, a NULL_KEY is returned.</string>
          </map>
          <key>OBJECT_NAME</key>
@@ -2062,7 +2127,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Gets the object's name.</string>
          </map>
          <key>OBJECT_OWNER</key>
@@ -2071,7 +2136,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>6</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Gets an object's owner's key. If id is group owned, a NULL_KEY is returned.</string>
          </map>
          <key>OBJECT_PATHFINDING_TYPE</key>
@@ -2080,8 +2145,8 @@
             <string>integer</string>
             <key>value</key>
             <integer>20</integer>
-            <key>description</key>
-            <string/>
+            <key>tooltip</key>
+            <string>Returns the pathfinding setting of any object in the region. It returns an integer matching one of the OPT_* constants.</string>
          </map>
          <key>OBJECT_PHANTOM</key>
          <map>
@@ -2089,8 +2154,8 @@
             <string>integer</string>
             <key>value</key>
             <integer>22</integer>
-            <key>description</key>
-            <string/>
+            <key>tooltip</key>
+            <string>Returns boolean, detailing if phantom is enabled or disabled on the object.\nIf id is an avatar or attachment, 0 is returned.</string>
          </map>
          <key>OBJECT_PHYSICS</key>
          <map>
@@ -2098,8 +2163,8 @@
             <string>integer</string>
             <key>value</key>
             <integer>21</integer>
-            <key>description</key>
-            <string/>
+            <key>tooltip</key>
+            <string>Returns boolean, detailing if physics is enabled or disabled on the object.\nIf id is an avatar or attachment, 0 is returned.</string>
          </map>
          <key>OBJECT_PHYSICS_COST</key>
          <map>
@@ -2107,7 +2172,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>16</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>OBJECT_POS</key>
@@ -2116,7 +2181,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>3</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Gets the object's position in region coordinates.</string>
          </map>
          <key>OBJECT_PRIM_EQUIVALENCE</key>
@@ -2125,7 +2190,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>13</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>OBJECT_ROOT</key>
@@ -2134,8 +2199,8 @@
             <string>integer</string>
             <key>value</key>
             <integer>18</integer>
-            <key>description</key>
-            <string>If id is an avatar, return the id of the root prim of the linkset the avatar is sitting on (or the avatar's own id if the avatar is not sitting on an object within the region).</string>
+            <key>tooltip</key>
+            <string>Gets the id of the root prim of the object requested.\nIf id is an avatar, return the id of the root prim of the linkset the avatar is sitting on (or the avatar's own id if the avatar is not sitting on an object within the region).</string>
          </map>
          <key>OBJECT_ROT</key>
          <map>
@@ -2143,7 +2208,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>4</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Gets the object's rotation.</string>
          </map>
          <key>OBJECT_RUNNING_SCRIPT_COUNT</key>
@@ -2152,7 +2217,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>9</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>OBJECT_SCRIPT_MEMORY</key>
@@ -2161,7 +2226,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>11</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>OBJECT_SCRIPT_TIME</key>
@@ -2170,7 +2235,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>12</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>OBJECT_SERVER_COST</key>
@@ -2179,7 +2244,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>14</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>OBJECT_STREAMING_COST</key>
@@ -2188,7 +2253,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>15</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>OBJECT_TEMP_ON_REZ</key>
@@ -2197,8 +2262,8 @@
             <string>integer</string>
             <key>value</key>
             <integer>23</integer>
-            <key>description</key>
-            <string/>
+            <key>tooltip</key>
+            <string>Returns boolean, detailing if temporary is enabled or disabled on the object.</string>
          </map>
          <key>OBJECT_TOTAL_SCRIPT_COUNT</key>
          <map>
@@ -2206,7 +2271,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>10</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>OBJECT_UNKNOWN_DETAIL</key>
@@ -2215,7 +2280,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>-1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>OBJECT_VELOCITY</key>
@@ -2224,7 +2289,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>5</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Gets the object's velocity.</string>
          </map>
          <key>OPT_AVATAR</key>
@@ -2233,8 +2298,8 @@
             <string>integer</string>
             <key>value</key>
             <integer>1</integer>
-            <key>description</key>
-            <string/>
+            <key>tooltip</key>
+            <string>Returned for avatars.</string>
          </map>
          <key>OPT_CHARACTER</key>
          <map>
@@ -2242,8 +2307,8 @@
             <string>integer</string>
             <key>value</key>
             <integer>2</integer>
-            <key>description</key>
-            <string/>
+            <key>tooltip</key>
+            <string>Returned for pathfinding characters.</string>
          </map>
          <key>OPT_EXCLUSION_VOLUME</key>
          <map>
@@ -2251,8 +2316,8 @@
             <string>integer</string>
             <key>value</key>
             <integer>6</integer>
-            <key>description</key>
-            <string/>
+            <key>tooltip</key>
+            <string>Returned for exclusion volumes.</string>
          </map>
          <key>OPT_LEGACY_LINKSET</key>
          <map>
@@ -2260,8 +2325,8 @@
             <string>integer</string>
             <key>value</key>
             <integer>0</integer>
-            <key>description</key>
-            <string/>
+            <key>tooltip</key>
+            <string>Returned for movable obstacles, movable phantoms, physical, and volumedetect objects.</string>
          </map>
          <key>OPT_MATERIAL_VOLUME</key>
          <map>
@@ -2269,8 +2334,8 @@
             <string>integer</string>
             <key>value</key>
             <integer>5</integer>
-            <key>description</key>
-            <string/>
+            <key>tooltip</key>
+            <string>Returned for material volumes.</string>
          </map>
          <key>OPT_OTHER</key>
          <map>
@@ -2278,8 +2343,8 @@
             <string>integer</string>
             <key>value</key>
             <integer>-1</integer>
-            <key>description</key>
-            <string/>
+            <key>tooltip</key>
+            <string>Returned for attachments, Linden trees, and grass.</string>
          </map>
          <key>OPT_STATIC_OBSTACLE</key>
          <map>
@@ -2287,8 +2352,8 @@
             <string>integer</string>
             <key>value</key>
             <integer>4</integer>
-            <key>description</key>
-            <string/>
+            <key>tooltip</key>
+            <string>Returned for static obstacles.</string>
          </map>
          <key>OPT_WALKABLE</key>
          <map>
@@ -2296,8 +2361,8 @@
             <string>integer</string>
             <key>value</key>
             <integer>3</integer>
-            <key>description</key>
-            <string/>
+            <key>tooltip</key>
+            <string>Returned for walkable objects.</string>
          </map>
          <key>PARCEL_COUNT_GROUP</key>
          <map>
@@ -2305,7 +2370,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>2</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PARCEL_COUNT_OTHER</key>
@@ -2314,7 +2379,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>3</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PARCEL_COUNT_OWNER</key>
@@ -2323,7 +2388,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PARCEL_COUNT_SELECTED</key>
@@ -2332,7 +2397,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>4</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PARCEL_COUNT_TEMP</key>
@@ -2341,7 +2406,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>5</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PARCEL_COUNT_TOTAL</key>
@@ -2350,7 +2415,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PARCEL_DETAILS_AREA</key>
@@ -2359,7 +2424,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>4</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>The parcel's area, in square meters. (5 chars.).</string>
          </map>
          <key>PARCEL_DETAILS_DESC</key>
@@ -2368,7 +2433,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>The description of the parcel. (127 chars).</string>
          </map>
          <key>PARCEL_DETAILS_GROUP</key>
@@ -2377,7 +2442,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>3</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>The parcel group's key. (36 chars.).</string>
          </map>
          <key>PARCEL_DETAILS_ID</key>
@@ -2386,7 +2451,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>5</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>The parcel's key. (36 chars.).</string>
          </map>
          <key>PARCEL_DETAILS_NAME</key>
@@ -2395,7 +2460,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>The name of the parcel. (63 chars.).</string>
          </map>
          <key>PARCEL_DETAILS_OWNER</key>
@@ -2404,7 +2469,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>2</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>The parcel owner's key. (36 chars.).</string>
          </map>
          <key>PARCEL_DETAILS_SEE_AVATARS</key>
@@ -2413,7 +2478,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>6</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>The parcel's avatar visibility setting. (1 char.).</string>
          </map>
          <key>PARCEL_FLAG_ALLOW_ALL_OBJECT_ENTRY</key>
@@ -2422,7 +2487,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x08000000</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PARCEL_FLAG_ALLOW_CREATE_GROUP_OBJECTS</key>
@@ -2431,7 +2496,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x4000000</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PARCEL_FLAG_ALLOW_CREATE_OBJECTS</key>
@@ -2440,7 +2505,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x40</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PARCEL_FLAG_ALLOW_DAMAGE</key>
@@ -2449,7 +2514,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x20</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PARCEL_FLAG_ALLOW_FLY</key>
@@ -2458,7 +2523,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PARCEL_FLAG_ALLOW_GROUP_OBJECT_ENTRY</key>
@@ -2467,7 +2532,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x10000000</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PARCEL_FLAG_ALLOW_GROUP_SCRIPTS</key>
@@ -2476,7 +2541,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x2000000</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PARCEL_FLAG_ALLOW_LANDMARK</key>
@@ -2485,7 +2550,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x8</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PARCEL_FLAG_ALLOW_SCRIPTS</key>
@@ -2494,7 +2559,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x2</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PARCEL_FLAG_ALLOW_TERRAFORM</key>
@@ -2503,7 +2568,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x10</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PARCEL_FLAG_LOCAL_SOUND_ONLY</key>
@@ -2512,7 +2577,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x8000</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PARCEL_FLAG_RESTRICT_PUSHOBJECT</key>
@@ -2521,7 +2586,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x200000</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PARCEL_FLAG_USE_ACCESS_GROUP</key>
@@ -2530,7 +2595,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x100</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PARCEL_FLAG_USE_ACCESS_LIST</key>
@@ -2539,7 +2604,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x200</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PARCEL_FLAG_USE_BAN_LIST</key>
@@ -2548,7 +2613,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x400</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PARCEL_FLAG_USE_LAND_PASS_LIST</key>
@@ -2557,7 +2622,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x800</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PARCEL_MEDIA_COMMAND_AGENT</key>
@@ -2566,7 +2631,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>7</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PARCEL_MEDIA_COMMAND_AUTO_ALIGN</key>
@@ -2575,7 +2640,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>9</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PARCEL_MEDIA_COMMAND_DESC</key>
@@ -2584,7 +2649,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>12</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Use this to get or set the parcel media description.</string>
          </map>
          <key>PARCEL_MEDIA_COMMAND_LOOP</key>
@@ -2593,7 +2658,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>3</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PARCEL_MEDIA_COMMAND_LOOP_SET</key>
@@ -2602,7 +2667,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>13</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Used to get or set the parcel's media looping variable.</string>
          </map>
          <key>PARCEL_MEDIA_COMMAND_PAUSE</key>
@@ -2611,7 +2676,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PARCEL_MEDIA_COMMAND_PLAY</key>
@@ -2620,7 +2685,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>2</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PARCEL_MEDIA_COMMAND_SIZE</key>
@@ -2629,7 +2694,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>11</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Use this to get or set the parcel media pixel resolution.</string>
          </map>
          <key>PARCEL_MEDIA_COMMAND_STOP</key>
@@ -2638,7 +2703,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PARCEL_MEDIA_COMMAND_TEXTURE</key>
@@ -2647,7 +2712,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>4</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PARCEL_MEDIA_COMMAND_TIME</key>
@@ -2656,7 +2721,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>6</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PARCEL_MEDIA_COMMAND_TYPE</key>
@@ -2665,7 +2730,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>10</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Use this to get or set the parcel media MIME type (e.g. "text/html").</string>
          </map>
          <key>PARCEL_MEDIA_COMMAND_UNLOAD</key>
@@ -2674,7 +2739,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>8</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PARCEL_MEDIA_COMMAND_URL</key>
@@ -2683,7 +2748,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>5</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PASSIVE</key>
@@ -2692,7 +2757,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x4</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Static in-world objects.</string>
          </map>
          <key>PATROL_PAUSE_AT_WAYPOINTS</key>
@@ -2701,7 +2766,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PAY_DEFAULT</key>
@@ -2710,7 +2775,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>-2</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PAY_HIDE</key>
@@ -2719,7 +2784,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>-1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PAYMENT_INFO_ON_FILE</key>
@@ -2728,7 +2793,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PAYMENT_INFO_USED</key>
@@ -2737,7 +2802,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>2</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PERM_ALL</key>
@@ -2746,7 +2811,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x7FFFFFFF</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PERM_COPY</key>
@@ -2755,7 +2820,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x8000</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PERM_MODIFY</key>
@@ -2764,7 +2829,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x4000</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PERM_MOVE</key>
@@ -2773,7 +2838,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x80000</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PERM_TRANSFER</key>
@@ -2782,7 +2847,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x2000</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PERMISSION_ATTACH</key>
@@ -2791,7 +2856,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x20</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>If this permission is enabled, the object can successfully call llAttachToAvatar to attach to the given avatar.</string>
          </map>
          <key>PERMISSION_CHANGE_JOINTS</key>
@@ -2800,7 +2865,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x100</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>(not yet implemented)</string>
          </map>
          <key>PERMISSION_CHANGE_LINKS</key>
@@ -2809,7 +2874,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x80</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>If this permission is enabled, the object can successfully call llCreateLink, llBreakLink, and llBreakAllLinks to change links to other objects.</string>
          </map>
          <key>PERMISSION_CHANGE_PERMISSIONS</key>
@@ -2818,7 +2883,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x200</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>(not yet implemented)</string>
          </map>
          <key>PERMISSION_CONTROL_CAMERA</key>
@@ -2827,7 +2892,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x800</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PERMISSION_DEBIT</key>
@@ -2836,7 +2901,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x2</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>If this permission is enabled, the object can successfully call llGiveMoney or llTransferLindenDollars to debit the owners account.</string>
          </map>
          <key>PERMISSION_RELEASE_OWNERSHIP</key>
@@ -2845,7 +2910,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x40</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>(not yet implemented)</string>
          </map>
          <key>PERMISSION_REMAP_CONTROLS</key>
@@ -2854,7 +2919,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x8</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>(not yet implemented)</string>
          </map>
          <key>PERMISSION_TAKE_CONTROLS</key>
@@ -2863,7 +2928,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x4</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>If this permission enabled, the object can successfully call the llTakeControls libray call.</string>
          </map>
          <key>PERMISSION_TELEPORT</key>
@@ -2872,7 +2937,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x1000</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PERMISSION_TRACK_CAMERA</key>
@@ -2881,7 +2946,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x400</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PERMISSION_TRIGGER_ANIMATION</key>
@@ -2890,7 +2955,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x10</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>If this permission is enabled, the object can successfully call llStartAnimation for the avatar that owns this.</string>
          </map>
          <key>PI</key>
@@ -2899,7 +2964,7 @@
             <string>float</string>
             <key>value</key>
             <real>3.14159265</real>
-            <key>description</key>
+            <key>tooltip</key>
             <string>3.14159265 - The number of radians in a semi-circle.</string>
          </map>
          <key>PI_BY_TWO</key>
@@ -2908,7 +2973,7 @@
             <string>float</string>
             <key>value</key>
             <real>1.57079633</real>
-            <key>description</key>
+            <key>tooltip</key>
             <string>1.57079633 - The number of radians in a quarter circle.</string>
          </map>
          <key>PING_PONG</key>
@@ -2917,7 +2982,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x8</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Play animation going forwards, then backwards.</string>
          </map>
          <key>PRIM_BUMP_BARK</key>
@@ -2926,7 +2991,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>4</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_BUMP_BLOBS</key>
@@ -2935,7 +3000,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>12</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_BUMP_BRICKS</key>
@@ -2944,7 +3009,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>5</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_BUMP_BRIGHT</key>
@@ -2953,7 +3018,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_BUMP_CHECKER</key>
@@ -2962,7 +3027,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>6</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_BUMP_CONCRETE</key>
@@ -2971,7 +3036,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>7</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_BUMP_DARK</key>
@@ -2980,7 +3045,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>2</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_BUMP_DISKS</key>
@@ -2989,7 +3054,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>10</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_BUMP_GRAVEL</key>
@@ -2998,7 +3063,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>11</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_BUMP_LARGETILE</key>
@@ -3007,7 +3072,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>14</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_BUMP_NONE</key>
@@ -3016,7 +3081,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_BUMP_SHINY</key>
@@ -3025,7 +3090,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>19</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_BUMP_SIDING</key>
@@ -3034,7 +3099,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>13</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_BUMP_STONE</key>
@@ -3043,7 +3108,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>9</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_BUMP_STUCCO</key>
@@ -3052,7 +3117,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>15</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_BUMP_SUCTION</key>
@@ -3061,7 +3126,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>16</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_BUMP_TILE</key>
@@ -3070,7 +3135,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>8</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_BUMP_WEAVE</key>
@@ -3079,7 +3144,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>17</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_BUMP_WOOD</key>
@@ -3088,16 +3153,18 @@
             <string>integer</string>
             <key>value</key>
             <integer>3</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_CAST_SHADOWS</key>
          <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
             <key>type</key>
             <string>integer</string>
             <key>value</key>
             <integer>24</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_COLOR</key>
@@ -3106,7 +3173,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>18</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_DESC</key>
@@ -3115,7 +3182,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>28</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_FLEXIBLE</key>
@@ -3124,7 +3191,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>21</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_FULLBRIGHT</key>
@@ -3133,7 +3200,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>20</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_GLOW</key>
@@ -3142,7 +3209,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>25</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>PRIM_GLOW is used to get or set the glow status of the face.</string>
          </map>
          <key>PRIM_HOLE_CIRCLE</key>
@@ -3151,7 +3218,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x10</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_HOLE_DEFAULT</key>
@@ -3160,7 +3227,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x00</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_HOLE_SQUARE</key>
@@ -3169,7 +3236,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x20</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_HOLE_TRIANGLE</key>
@@ -3178,7 +3245,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x30</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_LINK_TARGET</key>
@@ -3187,7 +3254,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>34</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_MATERIAL</key>
@@ -3196,7 +3263,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>2</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_MATERIAL_FLESH</key>
@@ -3205,7 +3272,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>4</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_MATERIAL_GLASS</key>
@@ -3214,7 +3281,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>2</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_MATERIAL_LIGHT</key>
@@ -3223,7 +3290,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>7</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_MATERIAL_METAL</key>
@@ -3232,7 +3299,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_MATERIAL_PLASTIC</key>
@@ -3241,7 +3308,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>5</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_MATERIAL_RUBBER</key>
@@ -3250,7 +3317,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>6</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_MATERIAL_STONE</key>
@@ -3259,7 +3326,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_MATERIAL_WOOD</key>
@@ -3268,7 +3335,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>3</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_MEDIA_ALT_IMAGE_ENABLE</key>
@@ -3277,7 +3344,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Boolean. Gets/Sets the default image state (the image that the user sees before a piece of media is active) for the chosen face. The default image is specified by Second Life's server for that media type.</string>
          </map>
          <key>PRIM_MEDIA_AUTO_LOOP</key>
@@ -3286,7 +3353,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>4</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Boolean. Gets/Sets whether auto-looping is enabled.</string>
          </map>
          <key>PRIM_MEDIA_AUTO_PLAY</key>
@@ -3295,7 +3362,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>5</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Boolean. Gets/Sets whether the media auto-plays when a Resident can view it.</string>
          </map>
          <key>PRIM_MEDIA_AUTO_SCALE</key>
@@ -3304,7 +3371,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>6</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Boolean. Gets/Sets whether auto-scaling is enabled. Auto-scaling forces the media to the full size of the texture.</string>
          </map>
          <key>PRIM_MEDIA_AUTO_ZOOM</key>
@@ -3313,7 +3380,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>7</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Boolean. Gets/Sets whether clicking the media triggers auto-zoom and auto-focus on the media.</string>
          </map>
          <key>PRIM_MEDIA_CONTROLS</key>
@@ -3322,7 +3389,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Integer. Gets/Sets the style of controls. Can be either PRIM_MEDIA_CONTROLS_STANDARD or PRIM_MEDIA_CONTROLS_MINI.</string>
          </map>
          <key>PRIM_MEDIA_CONTROLS_MINI</key>
@@ -3331,7 +3398,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Mini web navigation controls; does not include an address bar.</string>
          </map>
          <key>PRIM_MEDIA_CONTROLS_STANDARD</key>
@@ -3340,7 +3407,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Standard web navigation controls.</string>
          </map>
          <key>PRIM_MEDIA_CURRENT_URL</key>
@@ -3349,7 +3416,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>2</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>String. Gets/Sets the current url displayed on the chosen face. Changing this URL causes navigation. 1024 characters Maximum.</string>
          </map>
          <key>PRIM_MEDIA_FIRST_CLICK_INTERACT</key>
@@ -3358,7 +3425,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>8</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Boolean. Gets/Sets whether the first click interaction is enabled.</string>
          </map>
          <key>PRIM_MEDIA_HEIGHT_PIXELS</key>
@@ -3367,7 +3434,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>10</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Integer. Gets/Sets the height of the media in pixels.</string>
          </map>
          <key>PRIM_MEDIA_HOME_URL</key>
@@ -3376,7 +3443,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>3</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>String. Gets/Sets the home URL for the chosen face. 1024 characters maximum.</string>
          </map>
          <key>PRIM_MEDIA_PERM_ANYONE</key>
@@ -3385,7 +3452,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>4</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_MEDIA_PERM_GROUP</key>
@@ -3394,7 +3461,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>2</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_MEDIA_PERM_NONE</key>
@@ -3403,7 +3470,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_MEDIA_PERM_OWNER</key>
@@ -3412,7 +3479,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_MEDIA_PERMS_CONTROL</key>
@@ -3421,7 +3488,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>14</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Integer. Gets/Sets the permissions mask that control who can see the media control bar above the object:: PRIM_MEDIA_PERM_ANYONE, PRIM_MEDIA_PERM_GROUP, PRIM_MEDIA_PERM_NONE, PRIM_MEDIA_PERM_OWNER</string>
          </map>
          <key>PRIM_MEDIA_PERMS_INTERACT</key>
@@ -3430,7 +3497,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>13</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Integer. Gets/Sets the permissions mask that control who can interact with the object: PRIM_MEDIA_PERM_ANYONE, PRIM_MEDIA_PERM_GROUP, PRIM_MEDIA_PERM_NONE, PRIM_MEDIA_PERM_OWNER</string>
          </map>
          <key>PRIM_MEDIA_WHITELIST</key>
@@ -3439,7 +3506,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>12</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>String. Gets/Sets the white-list as a string of escaped, comma-separated URLs. This string can hold up to 64 URLs or 1024 characters, whichever comes first.</string>
          </map>
          <key>PRIM_MEDIA_WHITELIST_ENABLE</key>
@@ -3448,7 +3515,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>11</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Boolean. Gets/Sets whether navigation is restricted to URLs in PRIM_MEDIA_WHITELIST.</string>
          </map>
          <key>PRIM_MEDIA_WIDTH_PIXELS</key>
@@ -3457,7 +3524,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>9</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Integer. Gets/Sets the width of the media in pixels.</string>
          </map>
          <key>PRIM_NAME</key>
@@ -3466,7 +3533,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>27</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_OMEGA</key>
@@ -3475,7 +3542,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>32</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_PHANTOM</key>
@@ -3484,7 +3551,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>5</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_PHYSICS</key>
@@ -3493,7 +3560,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>3</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_PHYSICS_SHAPE_CONVEX</key>
@@ -3502,7 +3569,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>2</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Use the convex hull of the prim shape for physics (this is the default for mesh objects).</string>
          </map>
          <key>PRIM_PHYSICS_SHAPE_NONE</key>
@@ -3511,7 +3578,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Ignore this prim in the physics shape. NB: This cannot be applied to the root prim.</string>
          </map>
          <key>PRIM_PHYSICS_SHAPE_PRIM</key>
@@ -3520,7 +3587,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Use the normal prim shape for physics (this is the default for all non-mesh objects).</string>
          </map>
          <key>PRIM_PHYSICS_SHAPE_TYPE</key>
@@ -3529,7 +3596,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>30</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Allows you to set the physics shape type of a prim via lsl. Permitted values are:
 			PRIM_PHYSICS_SHAPE_NONE, PRIM_PHYSICS_SHAPE_PRIM, PRIM_PHYSICS_SHAPE_CONVEX</string>
          </map>
@@ -3539,7 +3606,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>23</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_POS_LOCAL</key>
@@ -3548,7 +3615,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>33</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_POSITION</key>
@@ -3557,7 +3624,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>6</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_ROT_LOCAL</key>
@@ -3566,7 +3633,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>29</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_ROTATION</key>
@@ -3575,7 +3642,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>8</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_SCULPT_FLAG_INVERT</key>
@@ -3584,7 +3651,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>64</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Render inside out (inverts the normals).</string>
          </map>
          <key>PRIM_SCULPT_FLAG_MIRROR</key>
@@ -3593,7 +3660,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>128</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Render an X axis mirror of the sculpty.</string>
          </map>
          <key>PRIM_SCULPT_TYPE_CYLINDER</key>
@@ -3602,7 +3669,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>4</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_SCULPT_TYPE_MASK</key>
@@ -3611,7 +3678,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>7</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_SCULPT_TYPE_PLANE</key>
@@ -3620,7 +3687,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>3</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_SCULPT_TYPE_SPHERE</key>
@@ -3629,7 +3696,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_SCULPT_TYPE_TORUS</key>
@@ -3638,7 +3705,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>2</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_SHINY_HIGH</key>
@@ -3647,7 +3714,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>3</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_SHINY_LOW</key>
@@ -3656,7 +3723,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_SHINY_MEDIUM</key>
@@ -3665,7 +3732,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>2</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_SHINY_NONE</key>
@@ -3674,7 +3741,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_SIZE</key>
@@ -3683,7 +3750,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>7</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_SLICE</key>
@@ -3692,7 +3759,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>35</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_TEMP_ON_REZ</key>
@@ -3701,7 +3768,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>4</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_TEXGEN</key>
@@ -3710,7 +3777,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>22</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_TEXGEN_DEFAULT</key>
@@ -3719,7 +3786,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_TEXGEN_PLANAR</key>
@@ -3728,7 +3795,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_TEXT</key>
@@ -3737,7 +3804,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>26</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_TEXTURE</key>
@@ -3746,7 +3813,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>17</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_TYPE</key>
@@ -3755,7 +3822,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>9</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_TYPE_BOX</key>
@@ -3764,7 +3831,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_TYPE_CYLINDER</key>
@@ -3773,7 +3840,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_TYPE_PRISM</key>
@@ -3782,7 +3849,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>2</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_TYPE_RING</key>
@@ -3791,7 +3858,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>6</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_TYPE_SCULPT</key>
@@ -3800,7 +3867,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>7</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_TYPE_SPHERE</key>
@@ -3809,7 +3876,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>3</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_TYPE_TORUS</key>
@@ -3818,7 +3885,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>4</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PRIM_TYPE_TUBE</key>
@@ -3827,7 +3894,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>5</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PROFILE_NONE</key>
@@ -3836,7 +3903,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Disables profiling</string>
          </map>
          <key>PROFILE_SCRIPT_MEMORY</key>
@@ -3845,7 +3912,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Enables memory profiling</string>
          </map>
          <key>PSYS_PART_BOUNCE_MASK</key>
@@ -3854,7 +3921,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x4</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Particles bounce off of a plane at the objects Z height.</string>
          </map>
          <key>PSYS_PART_EMISSIVE_MASK</key>
@@ -3863,7 +3930,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x100</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>The particle glows.</string>
          </map>
          <key>PSYS_PART_END_ALPHA</key>
@@ -3872,7 +3939,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>4</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>A float which determines the ending alpha of the object.</string>
          </map>
          <key>PSYS_PART_END_COLOR</key>
@@ -3881,7 +3948,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>3</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>A vector &lt;r, g, b&gt; which determines the ending colour of the object.</string>
          </map>
          <key>PSYS_PART_END_SCALE</key>
@@ -3890,7 +3957,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>6</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>A vector &lt;sx, sy, z&gt;, which is the ending size of the particle billboard in meters (z is ignored).</string>
          </map>
          <key>PSYS_PART_FLAGS</key>
@@ -3899,7 +3966,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Each particle that is emitted by the particle system is simulated based on the following flags. To use multiple flags, bitwise or (|) them together.</string>
          </map>
          <key>PSYS_PART_FOLLOW_SRC_MASK</key>
@@ -3908,7 +3975,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x10</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>The particle position is relative to the source objects position.</string>
          </map>
          <key>PSYS_PART_FOLLOW_VELOCITY_MASK</key>
@@ -3917,7 +3984,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x20</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>The particle orientation is rotated so the vertical axis faces towards the particle velocity.</string>
          </map>
          <key>PSYS_PART_INTERP_COLOR_MASK</key>
@@ -3926,7 +3993,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Interpolate both the colour and alpha from the start value to the end value.</string>
          </map>
          <key>PSYS_PART_INTERP_SCALE_MASK</key>
@@ -3935,7 +4002,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x2</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Interpolate the particle scale from the start value to the end value.</string>
          </map>
          <key>PSYS_PART_MAX_AGE</key>
@@ -3944,7 +4011,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>19</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Age in seconds of a particle at which it dies.</string>
          </map>
          <key>PSYS_PART_START_ALPHA</key>
@@ -3953,7 +4020,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>2</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>A float which determines the starting alpha of the object.</string>
          </map>
          <key>PSYS_PART_START_COLOR</key>
@@ -3962,7 +4029,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>A vector &lt;r.r, g.g, b.b&gt; which determines the starting colour of the object.</string>
          </map>
          <key>PSYS_PART_START_SCALE</key>
@@ -3971,7 +4038,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>5</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>A vector &lt;sx, sy, z&gt;, which is the starting size of the particle billboard in meters (z is ignored).</string>
          </map>
          <key>PSYS_PART_TARGET_LINEAR_MASK</key>
@@ -3980,7 +4047,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x80</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PSYS_PART_TARGET_POS_MASK</key>
@@ -3989,7 +4056,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x40</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>The particle heads towards the location of the target object as defined by PSYS_SRC_TARGET_KEY.</string>
          </map>
          <key>PSYS_PART_WIND_MASK</key>
@@ -3998,7 +4065,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x8</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Particles have their velocity damped towards the wind velocity.</string>
          </map>
          <key>PSYS_SRC_ACCEL</key>
@@ -4007,7 +4074,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>8</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>A vector &lt;x, y, z&gt; which is the acceleration to apply on particles.</string>
          </map>
          <key>PSYS_SRC_ANGLE_BEGIN</key>
@@ -4016,7 +4083,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>22</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Area in radians specifying where particles will NOT be created (for ANGLE patterns)</string>
          </map>
          <key>PSYS_SRC_ANGLE_END</key>
@@ -4025,7 +4092,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>23</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Area in radians filled with particles (for ANGLE patterns) (if lower than PSYS_SRC_ANGLE_BEGIN, acts as PSYS_SRC_ANGLE_BEGIN itself, and PSYS_SRC_ANGLE_BEGIN acts as PSYS_SRC_ANGLE_END).</string>
          </map>
          <key>PSYS_SRC_BURST_PART_COUNT</key>
@@ -4034,7 +4101,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>15</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>How many particles to release in a burst.</string>
          </map>
          <key>PSYS_SRC_BURST_RADIUS</key>
@@ -4043,7 +4110,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>16</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>What distance from the center of the object to create the particles.</string>
          </map>
          <key>PSYS_SRC_BURST_RATE</key>
@@ -4052,7 +4119,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>13</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>How often to release a particle burst (float seconds).</string>
          </map>
          <key>PSYS_SRC_BURST_SPEED_MAX</key>
@@ -4061,7 +4128,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>18</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Maximum speed that a particle should be moving.</string>
          </map>
          <key>PSYS_SRC_BURST_SPEED_MIN</key>
@@ -4070,7 +4137,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>17</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Minimum speed that a particle should be moving.</string>
          </map>
          <key>PSYS_SRC_INNERANGLE</key>
@@ -4079,7 +4146,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>10</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Specifies the inner angle of the arc created by the PSYS_SRC_PATTERN_ANGLE or PSYS_SRC_PATTERN_ANGLE_CONE source pattern.
 			The area specified will NOT have particles in it.</string>
          </map>
@@ -4089,7 +4156,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>19</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>How long this particle system should last, 0.0 means forever.</string>
          </map>
          <key>PSYS_SRC_OMEGA</key>
@@ -4098,7 +4165,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>21</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Sets the angular velocity to rotate the axis that SRC_PATTERN_ANGLE and SRC_PATTERN_ANGLE_CONE use.</string>
          </map>
          <key>PSYS_SRC_OUTERANGLE</key>
@@ -4107,7 +4174,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>11</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Specifies the outer angle of the arc created by the PSYS_SRC_PATTERN_ANGLE or PSYS_SRC_PATTERN_ANGLE_CONE source pattern.
 			The area between the outer and inner angle will be filled with particles.</string>
          </map>
@@ -4117,7 +4184,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>9</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>The pattern which is used to generate particles.
 			Use one of the following values: PSYS_SRC_PATTERN Values.</string>
          </map>
@@ -4127,7 +4194,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x04</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Shoot particles across a 2 dimensional area defined by the arc created from PSYS_SRC_OUTERANGLE. There will be an open area defined by PSYS_SRC_INNERANGLE within the larger arc.</string>
          </map>
          <key>PSYS_SRC_PATTERN_ANGLE_CONE</key>
@@ -4136,7 +4203,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x08</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Shoot particles out in a 3 dimensional cone with an outer arc of PSYS_SRC_OUTERANGLE and an inner open area defined by PSYS_SRC_INNERANGLE.</string>
          </map>
          <key>PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY</key>
@@ -4145,7 +4212,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x10</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PSYS_SRC_PATTERN_DROP</key>
@@ -4154,7 +4221,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x01</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Drop particles at the source position.</string>
          </map>
          <key>PSYS_SRC_PATTERN_EXPLODE</key>
@@ -4163,7 +4230,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x02</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Shoot particles out in all directions, using the burst parameters.</string>
          </map>
          <key>PSYS_SRC_TARGET_KEY</key>
@@ -4172,7 +4239,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>20</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>The key of a target object to move towards if PSYS_PART_TARGET_POS_MASK is enabled.</string>
          </map>
          <key>PSYS_SRC_TEXTURE</key>
@@ -4181,7 +4248,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>12</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>An asset name for the texture to use for the particles.</string>
          </map>
          <key>PU_EVADE_HIDDEN</key>
@@ -4190,7 +4257,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x07</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Triggered when an llEvade character thinks it has hidden from its pursuer.</string>
          </map>
          <key>PU_EVADE_SPOTTED</key>
@@ -4199,7 +4266,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x08</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Triggered when an llEvade character switches from hiding to running</string>
          </map>
          <key>PU_FAILURE_INVALID_GOAL</key>
@@ -4208,7 +4275,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x03</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Goal is not on the navigation-mesh and cannot be reached.</string>
          </map>
          <key>PU_FAILURE_INVALID_START</key>
@@ -4217,7 +4284,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x02</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Character cannot navigate from the current location - e.g., the character is off the navmesh or too high above it.</string>
          </map>
          <key>PU_FAILURE_NO_NAVMESH</key>
@@ -4226,7 +4293,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x09</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>This is a fatal error reported to a character when there is no navmesh for the region. This usually indicates a server failure and users should file a bug report and include the time and region in which they received this message.</string>
          </map>
          <key>PU_FAILURE_NO_VALID_DESTINATION</key>
@@ -4235,7 +4302,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x06</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>There is no good place for the character to go - e.g., it is patrolling and all the patrol points are now unreachable.</string>
          </map>
          <key>PU_FAILURE_OTHER</key>
@@ -4244,7 +4311,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>1000000</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PU_FAILURE_TARGET_GONE</key>
@@ -4253,7 +4320,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x05</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Target (for llPursue or llEvade) can no longer be tracked - e.g., it left the region or is an avatar that is now more than about 30m outside the region.</string>
          </map>
          <key>PU_FAILURE_UNREACHABLE</key>
@@ -4262,7 +4329,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x04</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Goal is no longer reachable for some reason - e.g., an obstacle blocks the path.</string>
          </map>
          <key>PU_GOAL_REACHED</key>
@@ -4271,7 +4338,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x01</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Character has reached the goal and will stop or choose a new goal (if wandering).</string>
          </map>
          <key>PU_SLOWDOWN_DISTANCE_REACHED</key>
@@ -4280,7 +4347,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x00</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Character is near current goal.</string>
          </map>
          <key>PUBLIC_CHANNEL</key>
@@ -4289,7 +4356,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>PUBLIC_CHANNEL is an integer constant that, when passed to llSay, llWhisper, or llShout as a channel parameter, will print text to the publicly heard chat channel.</string>
          </map>
          <key>PURSUIT_FUZZ_FACTOR</key>
@@ -4298,7 +4365,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>3</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Selects a random destination near the offset.</string>
          </map>
          <key>PURSUIT_GOAL_TOLERANCE</key>
@@ -4307,7 +4374,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>5</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>PURSUIT_INTERCEPT</key>
@@ -4316,7 +4383,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>4</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Define whether the character attempts to predict the target's location.</string>
          </map>
          <key>PURSUIT_OFFSET</key>
@@ -4325,7 +4392,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Go to a position offset from the target.</string>
          </map>
          <key>RAD_TO_DEG</key>
@@ -4334,7 +4401,7 @@
             <string>float</string>
             <key>value</key>
             <real>57.2957795</real>
-            <key>description</key>
+            <key>tooltip</key>
             <string>57.2957795 - Number of degrees per radian. You can use this number to convert radians to degrees by multiplying the radians by this number.</string>
          </map>
          <key>RC_DATA_FLAGS</key>
@@ -4343,7 +4410,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>2</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>RC_DETECT_PHANTOM</key>
@@ -4352,7 +4419,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>RC_GET_LINK_NUM</key>
@@ -4361,7 +4428,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>4</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>RC_GET_NORMAL</key>
@@ -4370,7 +4437,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>RC_GET_ROOT_KEY</key>
@@ -4379,7 +4446,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>2</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>RC_MAX_HITS</key>
@@ -4388,7 +4455,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>3</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>RC_REJECT_AGENTS</key>
@@ -4397,7 +4464,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>RC_REJECT_LAND</key>
@@ -4406,7 +4473,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>8</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>RC_REJECT_NONPHYSICAL</key>
@@ -4415,7 +4482,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>4</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>RC_REJECT_PHYSICAL</key>
@@ -4424,7 +4491,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>2</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>RC_REJECT_TYPES</key>
@@ -4433,7 +4500,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>2</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>RCERR_CAST_TIME_EXCEEDED</key>
@@ -4442,7 +4509,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>-3</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>RCERR_SIM_PERF_LOW</key>
@@ -4451,7 +4518,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>-2</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>RCERR_UNKNOWN</key>
@@ -4460,7 +4527,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>-1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>REGION_FLAG_ALLOW_DAMAGE</key>
@@ -4469,7 +4536,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>REGION_FLAG_ALLOW_DIRECT_TELEPORT</key>
@@ -4478,7 +4545,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x100000</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>REGION_FLAG_BLOCK_FLY</key>
@@ -4487,7 +4554,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x80000</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>REGION_FLAG_BLOCK_TERRAFORM</key>
@@ -4496,7 +4563,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x40</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>REGION_FLAG_DISABLE_COLLISIONS</key>
@@ -4505,7 +4572,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x1000</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>REGION_FLAG_DISABLE_PHYSICS</key>
@@ -4514,7 +4581,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x4000</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>REGION_FLAG_FIXED_SUN</key>
@@ -4523,7 +4590,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x10</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>REGION_FLAG_RESTRICT_PUSHOBJECT</key>
@@ -4532,7 +4599,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x400000</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>REGION_FLAG_SANDBOX</key>
@@ -4541,7 +4608,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x100</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>REMOTE_DATA_CHANNEL</key>
@@ -4550,7 +4617,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>REMOTE_DATA_REPLY</key>
@@ -4559,7 +4626,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>3</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>REMOTE_DATA_REQUEST</key>
@@ -4568,7 +4635,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>2</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>REQUIRE_LINE_OF_SIGHT</key>
@@ -4577,7 +4644,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>2</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Define whether the character needs a line-of-sight to give chase.</string>
          </map>
          <key>RESTITUTION</key>
@@ -4586,7 +4653,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>4</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Used with llSetPhysicsMaterial to enable the density value. Must be between 0.0 and 1.0</string>
          </map>
          <key>REVERSE</key>
@@ -4595,7 +4662,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x4</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Play animation in reverse direction.</string>
          </map>
          <key>ROTATE</key>
@@ -4604,7 +4671,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x20</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Animate texture rotation.</string>
          </map>
          <key>SCALE</key>
@@ -4613,7 +4680,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x40</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Animate the texture scale.</string>
          </map>
          <key>SCRIPTED</key>
@@ -4622,7 +4689,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x8</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Scripted in-world objects.</string>
          </map>
          <key>SIM_STAT_PCT_CHARS_STEPPED</key>
@@ -4631,8 +4698,8 @@
             <string>integer</string>
             <key>value</key>
             <integer>0</integer>
-            <key>description</key>
-            <string>The returned value corresponds to the "Characters Updated" stat in the viewer's Statistics Bar.</string>
+            <key>tooltip</key>
+            <string>Returns the % of pathfinding characters skipped each frame, averaged over the last minute.\nThe returned value corresponds to the "Characters Updated" stat in the viewer's Statistics Bar.</string>
          </map>
          <key>SMOOTH</key>
          <map>
@@ -4640,7 +4707,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x10</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Slide in the X direction, instead of playing separate frames.</string>
          </map>
          <key>SQRT2</key>
@@ -4649,7 +4716,7 @@
             <string>float</string>
             <key>value</key>
             <real>1.41421356</real>
-            <key>description</key>
+            <key>tooltip</key>
             <string>1.41421356 - The square root of 2.</string>
          </map>
          <key>STATUS_BLOCK_GRAB</key>
@@ -4658,7 +4725,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>64</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Controls whether the object can be grabbed.
 			A grab is the default action when in third person, and is available as the hand tool in build mode.
 			This is useful for physical objects that you don't want other people to be able to trivially disturb.
@@ -4670,7 +4737,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>1024</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Prevent click-and-drag movement on all prims in the object.</string>
          </map>
          <key>STATUS_BOUNDS_ERROR</key>
@@ -4679,7 +4746,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>1002</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Argument(s) passed to function had a bounds error.</string>
          </map>
          <key>STATUS_CAST_SHADOWS</key>
@@ -4688,7 +4755,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x200</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>STATUS_DIE_AT_EDGE</key>
@@ -4697,7 +4764,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x80</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Controls whether the object is returned to the owners inventory if it wanders off the edge of the world. It is useful to set this status TRUE for things like bullets or rockets. The default is TRUE</string>
          </map>
          <key>STATUS_INTERNAL_ERROR</key>
@@ -4706,7 +4773,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>1999</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>An internal error occurred.</string>
          </map>
          <key>STATUS_MALFORMED_PARAMS</key>
@@ -4715,7 +4782,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>1000</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Function was called with malformed parameters.</string>
          </map>
          <key>STATUS_NOT_FOUND</key>
@@ -4724,7 +4791,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>1003</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Object or other item was not found.</string>
          </map>
          <key>STATUS_NOT_SUPPORTED</key>
@@ -4733,7 +4800,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>1004</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Feature not supported.</string>
          </map>
          <key>STATUS_OK</key>
@@ -4742,7 +4809,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Result of function call was a success</string>
          </map>
          <key>STATUS_PHANTOM</key>
@@ -4751,7 +4818,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x10</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Controls/indicates whether the object collides or not.
 			Setting the value to TRUE makes the object non-colliding with
 			all objects. It is a good idea to use this for most objects
@@ -4764,7 +4831,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Controls/indicates whether the object moves physically.
 			This controls the same flag that the UI check-box for Physical controls. The default is FALSE.</string>
          </map>
@@ -4774,7 +4841,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x100</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>STATUS_ROTATE_X</key>
@@ -4783,7 +4850,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x2</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>STATUS_ROTATE_Y</key>
@@ -4792,7 +4859,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x4</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>STATUS_ROTATE_Z</key>
@@ -4801,7 +4868,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x8</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Controls/indicates whether the object can physically rotate around
 			the specific axis or not. This flag has no meaning
 			for non-physical objects. Set the value to FALSE
@@ -4817,7 +4884,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x20</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Controls/indicates whether the object can cross region boundaries
 			and move more than 20 meters from its creation
 			point. The default if FALSE.</string>
@@ -4828,7 +4895,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>1001</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Argument(s) passed to function had a type mismatch.</string>
          </map>
          <key>STATUS_WHITELIST_FAILED</key>
@@ -4837,7 +4904,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>2001</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Whitelist Failed.</string>
          </map>
          <key>STRING_TRIM</key>
@@ -4846,7 +4913,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x03</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>STRING_TRIM_HEAD</key>
@@ -4855,7 +4922,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x01</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>STRING_TRIM_TAIL</key>
@@ -4864,7 +4931,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x02</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>TEXTURE_BLANK</key>
@@ -4873,7 +4940,7 @@
             <string>key</string>
             <key>value</key>
             <uuid>5748decc-f629-461c-9a36-a35a221fe21f</uuid>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>TEXTURE_DEFAULT</key>
@@ -4882,7 +4949,7 @@
             <string>key</string>
             <key>value</key>
             <uuid>89556747-24cb-43ed-920b-47caed15465f</uuid>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>TEXTURE_MEDIA</key>
@@ -4891,7 +4958,7 @@
             <string>key</string>
             <key>value</key>
             <uuid>8b5fec65-8d8d-9dc5-cda8-8fdf2716e361</uuid>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>TEXTURE_PLYWOOD</key>
@@ -4900,7 +4967,7 @@
             <string>key</string>
             <key>value</key>
             <uuid>89556747-24cb-43ed-920b-47caed15465f</uuid>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>TEXTURE_TRANSPARENT</key>
@@ -4909,7 +4976,7 @@
             <string>key</string>
             <key>value</key>
             <uuid>8dcd4a48-2d37-4909-9f78-f7a9eb4ef903</uuid>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>TOUCH_INVALID_FACE</key>
@@ -4918,7 +4985,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0xFFFFFFFF</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>TOUCH_INVALID_TEXCOORD</key>
@@ -4926,8 +4993,15 @@
             <key>type</key>
             <string>vector</string>
             <key>value</key>
-            <string>&lt;-1.0, -1.0, 0.0&gt;</string>
-            <key>description</key>
+            <map>
+               <key>x</key>
+               <real>-1.0</real>
+               <key>y</key>
+               <real>-1.0</real>
+               <key>z</key>
+               <real>0.0</real>
+            </map>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>TOUCH_INVALID_VECTOR</key>
@@ -4935,8 +5009,15 @@
             <key>type</key>
             <string>vector</string>
             <key>value</key>
-            <string>0.0, 0.0, 0.0</string>
-            <key>description</key>
+            <map>
+               <key>x</key>
+               <real>0.0</real>
+               <key>y</key>
+               <real>0.0</real>
+               <key>z</key>
+               <real>0.0</real>
+            </map>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>TRAVERSAL_TYPE</key>
@@ -4945,7 +5026,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>7</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>One of TRAVERSAL_TYPE_FAST, TRAVERSAL_TYPE_SLOW, and TRAVERSAL_TYPE_NONE.</string>
          </map>
          <key>TRAVERSAL_TYPE_FAST</key>
@@ -4954,7 +5035,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>TRAVERSAL_TYPE_NONE</key>
@@ -4963,7 +5044,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>2</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>TRAVERSAL_TYPE_SLOW</key>
@@ -4972,7 +5053,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>TRUE</key>
@@ -4981,7 +5062,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>An integer constant for boolean comparisons. Has the value '1'.</string>
          </map>
          <key>TWO_PI</key>
@@ -4990,7 +5071,7 @@
             <string>float</string>
             <key>value</key>
             <real>6.28318530</real>
-            <key>description</key>
+            <key>tooltip</key>
             <string>6.28318530 - The radians of a circle.</string>
          </map>
          <key>TYPE_FLOAT</key>
@@ -4999,7 +5080,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>2</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>The list entry is a float.</string>
          </map>
          <key>TYPE_INTEGER</key>
@@ -5008,7 +5089,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>The list entry is an integer.</string>
          </map>
          <key>TYPE_INVALID</key>
@@ -5017,7 +5098,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>The list entry is invalid.</string>
          </map>
          <key>TYPE_KEY</key>
@@ -5026,7 +5107,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>4</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>The list entry is a key.</string>
          </map>
          <key>TYPE_ROTATION</key>
@@ -5035,7 +5116,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>6</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>The list entry is a rotation.</string>
          </map>
          <key>TYPE_STRING</key>
@@ -5044,7 +5125,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>3</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>The list entry is a string.</string>
          </map>
          <key>TYPE_VECTOR</key>
@@ -5053,7 +5134,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>5</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>The list entry is a vector.</string>
          </map>
          <key>URL_REQUEST_DENIED</key>
@@ -5062,7 +5143,7 @@
             <string>string</string>
             <key>value</key>
             <string>URL_REQUEST_DENIED</string>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>URL_REQUEST_GRANTED</key>
@@ -5071,7 +5152,7 @@
             <string>string</string>
             <key>value</key>
             <string>URL_REQUEST_GRANTED</string>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY</key>
@@ -5080,7 +5161,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>32</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>A slider between minimum (0.0) and maximum (1.0) deflection of angular orientation. That is, its a simple scalar for modulating the strength of angular deflection such that the vehicles preferred axis of motion points toward its real velocity.</string>
          </map>
          <key>VEHICLE_ANGULAR_DEFLECTION_TIMESCALE</key>
@@ -5089,7 +5170,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>33</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>The time-scale for exponential success of linear deflection deflection. Its another way to specify the strength of the vehicles tendency to reorient itself so that its preferred axis of motion agrees with its true velocity.</string>
          </map>
          <key>VEHICLE_ANGULAR_FRICTION_TIMESCALE</key>
@@ -5098,7 +5179,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>17</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>A vector of timescales for exponential decay of the vehicles angular velocity about its preferred axes of motion (at, left, up).
 			Range = [0.07, inf) seconds for each element of the vector.</string>
          </map>
@@ -5108,7 +5189,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>35</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>The timescale for exponential decay of the angular motors magnitude.</string>
          </map>
          <key>VEHICLE_ANGULAR_MOTOR_DIRECTION</key>
@@ -5117,7 +5198,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>19</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>The direction and magnitude (in preferred frame) of the vehicles angular motor.The vehicle will accelerate (or decelerate if necessary) to match its velocity to its motor.</string>
          </map>
          <key>VEHICLE_ANGULAR_MOTOR_TIMESCALE</key>
@@ -5126,7 +5207,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>34</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>The timescale for exponential approach to full angular motor velocity.</string>
          </map>
          <key>VEHICLE_BANKING_EFFICIENCY</key>
@@ -5135,7 +5216,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>38</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>A slider between anti (-1.0), none (0.0), and maxmum (1.0) banking strength.</string>
          </map>
          <key>VEHICLE_BANKING_MIX</key>
@@ -5144,7 +5225,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>39</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>A slider between static (0.0) and dynamic (1.0) banking. "Static" means the banking scales only with the angle of roll, whereas "dynamic" is a term that also scales with the vehicles linear speed.</string>
          </map>
          <key>VEHICLE_BANKING_TIMESCALE</key>
@@ -5153,7 +5234,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>40</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>The timescale for banking to exponentially approach its maximum effect. This is another way to scale the strength of the banking effect, however it affects the term that is proportional to the difference between what the banking behavior is trying to do, and what the vehicle is actually doing.</string>
          </map>
          <key>VEHICLE_BUOYANCY</key>
@@ -5162,7 +5243,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>27</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>A slider between minimum (0.0) and maximum anti-gravity (1.0).</string>
          </map>
          <key>VEHICLE_FLAG_CAMERA_DECOUPLED</key>
@@ -5171,7 +5252,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x200</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT</key>
@@ -5180,7 +5261,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x10</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Hover at global height.</string>
          </map>
          <key>VEHICLE_FLAG_HOVER_TERRAIN_ONLY</key>
@@ -5189,7 +5270,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x8</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Ignore water height when hovering.</string>
          </map>
          <key>VEHICLE_FLAG_HOVER_UP_ONLY</key>
@@ -5198,7 +5279,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x20</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Hover does not push down. Use this flag for hovering vehicles that should be able to jump above their hover height.</string>
          </map>
          <key>VEHICLE_FLAG_HOVER_WATER_ONLY</key>
@@ -5207,7 +5288,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x4</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Ignore terrain height when hovering.</string>
          </map>
          <key>VEHICLE_FLAG_LIMIT_MOTOR_UP</key>
@@ -5216,7 +5297,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x40</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Prevents ground vehicles from motoring into the sky.</string>
          </map>
          <key>VEHICLE_FLAG_LIMIT_ROLL_ONLY</key>
@@ -5225,7 +5306,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x2</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>For vehicles with vertical attractor that want to be able to climb/dive, for instance, aeroplanes that want to use the banking feature.</string>
          </map>
          <key>VEHICLE_FLAG_MOUSELOOK_BANK</key>
@@ -5234,7 +5315,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x100</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>VEHICLE_FLAG_MOUSELOOK_STEER</key>
@@ -5243,7 +5324,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x80</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>VEHICLE_FLAG_NO_DEFLECTION_UP</key>
@@ -5252,16 +5333,18 @@
             <string>integer</string>
             <key>value</key>
             <integer>0x1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>This flag prevents linear deflection parallel to world z-axis. This is useful for preventing ground vehicles with large linear deflection, like bumper cars, from climbing their linear deflection into the sky.</string>
          </map>
          <key>VEHICLE_FLAG_NO_FLY_UP</key>
          <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
             <key>type</key>
             <string>integer</string>
             <key>value</key>
             <integer>0x1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Old, changed to VEHICLE_FLAG_NO_DEFLECTION_UP</string>
          </map>
          <key>VEHICLE_HOVER_EFFICIENCY</key>
@@ -5270,7 +5353,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>25</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>A slider between minimum (0.0 = bouncy) and maximum (1.0 = fast as possible) damped motion of the hover behavior. </string>
          </map>
          <key>VEHICLE_HOVER_HEIGHT</key>
@@ -5279,7 +5362,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>24</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>The height (above the terrain or water, or global) at which the vehicle will try to hover.</string>
          </map>
          <key>VEHICLE_HOVER_TIMESCALE</key>
@@ -5288,7 +5371,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>26</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Period of time (in seconds) for the vehicle to achieve its hover height.</string>
          </map>
          <key>VEHICLE_LINEAR_DEFLECTION_EFFICIENCY</key>
@@ -5297,7 +5380,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>28</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>A slider between minimum (0.0) and maximum (1.0) deflection of linear velocity. That is, its a simple scalar for modulating the strength of linear deflection.</string>
          </map>
          <key>VEHICLE_LINEAR_DEFLECTION_TIMESCALE</key>
@@ -5306,7 +5389,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>29</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>The timescale for exponential success of linear deflection deflection. It is another way to specify how much time it takes for the vehicles linear velocity to be redirected to its preferred axis of motion.</string>
          </map>
          <key>VEHICLE_LINEAR_FRICTION_TIMESCALE</key>
@@ -5315,7 +5398,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>16</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>A vector of timescales for exponential decay of the vehicles linear velocity along its preferred axes of motion (at, left, up).
 			Range = [0.07, inf) seconds for each element of the vector.</string>
          </map>
@@ -5325,7 +5408,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>35</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>The timescale for exponential decay of the linear motors magnitude.</string>
          </map>
          <key>VEHICLE_LINEAR_MOTOR_DIRECTION</key>
@@ -5334,7 +5417,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>18</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>The direction and magnitude (in preferred frame) of the vehicles linear motor. The vehicle will accelerate (or decelerate if necessary) to match its velocity to its motor.
 			Range of magnitude = [0, 30] meters/second.</string>
          </map>
@@ -5344,7 +5427,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>20</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>VEHICLE_LINEAR_MOTOR_TIMESCALE</key>
@@ -5353,7 +5436,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>30</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>The timescale for exponential approach to full linear motor velocity.</string>
          </map>
          <key>VEHICLE_REFERENCE_FRAME</key>
@@ -5362,7 +5445,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>44</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>A rotation of the vehicles preferred axes of motion and orientation (at, left, up) with respect to the vehicles local frame (x, y, z).</string>
          </map>
          <key>VEHICLE_TYPE_AIRPLANE</key>
@@ -5371,7 +5454,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>4</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Uses linear deflection for lift, no hover, and banking to turn.
 			// very little friction along forward-back axis
 			llSetVehicleVectorParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, &lt;200, 10, 5&gt; );
@@ -5421,7 +5504,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>5</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Hover, and friction, but no deflection.
 			// uniform linear friction
 			llSetVehicleFloatParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, 5 );
@@ -5470,7 +5553,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>3</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Hovers over water with lots of friction and some anglar deflection.
 			// least for forward-back, most friction for up-down
 			llSetVehicleVectorParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, &lt;10, 3, 2&gt; );
@@ -5520,7 +5603,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>2</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Another vehicle that bounces along the ground but needs
 			the motors to be driven from external controls or
 			timer events.
@@ -5572,7 +5655,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>VEHICLE_TYPE_SLED</key>
@@ -5581,7 +5664,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>1</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>Simple vehicle that bumps along the ground,
 			and likes to move along its local x-axis.
 			// most friction for left-right, least for up-down
@@ -5633,7 +5716,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>36</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>A slider between minimum (0.0 = wobbly) and maximum (1.0 = firm as possible) stability of the vehicle to keep itself upright.</string>
          </map>
          <key>VEHICLE_VERTICAL_ATTRACTION_TIMESCALE</key>
@@ -5642,7 +5725,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>37</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string>The period of wobble, or timescale for exponential approach, of the vehicle to rotate such that its preferred "up" axis is oriented along the worlds "up" axis.</string>
          </map>
          <key>VERTICAL</key>
@@ -5651,7 +5734,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>WANDER_PAUSE_AT_WAYPOINTS</key>
@@ -5660,7 +5743,7 @@
             <string>integer</string>
             <key>value</key>
             <integer>0</integer>
-            <key>description</key>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>ZERO_ROTATION</key>
@@ -5668,8 +5751,17 @@
             <key>type</key>
             <string>rotation</string>
             <key>value</key>
-            <string>&lt;0.0, 0.0, 0.0, 1.0&gt;</string>
-            <key>description</key>
+            <map>
+               <key>x</key>
+               <real>0.0</real>
+               <key>y</key>
+               <real>0.0</real>
+               <key>z</key>
+               <real>0.0</real>
+               <key>w</key>
+               <real>1.0</real>
+            </map>
+            <key>tooltip</key>
             <string/>
          </map>
          <key>ZERO_VECTOR</key>
@@ -5677,8 +5769,15 @@
             <key>type</key>
             <string>vector</string>
             <key>value</key>
-            <string>&lt;0.0, 0.0, 0.0&gt;</string>
-            <key>description</key>
+            <map>
+               <key>x</key>
+               <real>0.0</real>
+               <key>y</key>
+               <real>0.0</real>
+               <key>z</key>
+               <real>0.0</real>
+            </map>
+            <key>tooltip</key>
             <string/>
          </map>
       </map>
@@ -5687,698 +5786,644 @@
          <key>at_rot_target</key>
          <map>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>TargetNumber</key>
                <map>
-                  <key>name</key>
-                  <string>TargetNumber</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>TargetRotation</key>
                <map>
-                  <key>name</key>
-                  <string>TargetRotation</string>
                   <key>type</key>
                   <string>rotation</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>CurrentRotation</key>
                <map>
-                  <key>name</key>
-                  <string>CurrentRotation</string>
                   <key>type</key>
                   <string>rotation</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>description</key>
+            </map>
+            <key>tooltip</key>
             <string>This event is triggered when a script comes within a defined angle of a target rotation. The range and rotation, are set by a call to llRotTarget.</string>
          </map>
          <key>at_target</key>
          <map>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>TargetNumber</key>
                <map>
-                  <key>name</key>
-                  <string>TargetNumber</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>TargetPosition</key>
                <map>
-                  <key>name</key>
-                  <string>TargetPosition</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>CurrentPosition</key>
                <map>
-                  <key>name</key>
-                  <string>CurrentPosition</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>description</key>
+            </map>
+            <key>tooltip</key>
             <string>This event is triggered when the scripted object comes within a defined range of the target position, defined by the llTarget function call.</string>
          </map>
          <key>attach</key>
          <map>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>AvatarID</key>
                <map>
-                  <key>name</key>
-                  <string>AvatarID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>description</key>
+            </map>
+            <key>tooltip</key>
             <string>This event is triggered whenever an object is attached or detached from an avatar. If it is attached, the key of the avatar it is attached to is passed in, otherwise NULL_KEY is.</string>
          </map>
          <key>changed</key>
          <map>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Changed</key>
                <map>
-                  <key>name</key>
-                  <string>Changed</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>description</key>
+            </map>
+            <key>tooltip</key>
             <string>Triggered when various events change the object. The change argument will be a bit-field of CHANGED_* constants.</string>
          </map>
          <key>collision</key>
          <map>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>NumberOfCollisions</key>
                <map>
-                  <key>name</key>
-                  <string>NumberOfCollisions</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>description</key>
+            </map>
+            <key>tooltip</key>
             <string>This event is raised while another object, or avatar, is colliding with the object the script is attached to.
 			The number of detected objects is passed to the script. Information on those objects may be gathered via the llDetected* functions.</string>
          </map>
          <key>collision_end</key>
          <map>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>NumberOfCollisions</key>
                <map>
-                  <key>name</key>
-                  <string>NumberOfCollisions</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>description</key>
+            </map>
+            <key>tooltip</key>
             <string>This event is raised when another object, or avatar, stops colliding with the object the script is attached to.
 			The number of detected objects is passed to the script. Information on those objects may be gathered via the llDetected* library functions.</string>
          </map>
          <key>collision_start</key>
          <map>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>NumberOfCollisions</key>
                <map>
-                  <key>name</key>
-                  <string>NumberOfCollisions</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>description</key>
+            </map>
+            <key>tooltip</key>
             <string>This event is raised when another object, or avatar, starts colliding with the object the script is attached to.
 			The number of detected objects is passed to the script. Information on those objects may be gathered via the llDetected* library functions.</string>
          </map>
          <key>control</key>
          <map>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>AvatarID</key>
                <map>
-                  <key>name</key>
-                  <string>AvatarID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Levels</key>
                <map>
-                  <key>name</key>
-                  <string>Levels</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Edges</key>
                <map>
-                  <key>name</key>
-                  <string>Edges</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>description</key>
+            </map>
+            <key>tooltip</key>
             <string>Once a script has the ability to grab control inputs from the avatar, this event will be used to pass the commands into the script.
 			The levels and edges are bit-fields of control constants.</string>
          </map>
          <key>dataserver</key>
          <map>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>RequestID</key>
                <map>
-                  <key>name</key>
-                  <string>RequestID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Data</key>
                <map>
-                  <key>name</key>
-                  <string>Data</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>description</key>
+            </map>
+            <key>tooltip</key>
             <string>This event is triggered when the requested data is returned to the script.
 			Data may be requested by the llRequestAgentData, llRequestInventoryData, and llGetNotecardLine function calls, for example.</string>
          </map>
          <key>email</key>
          <map>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Time</key>
                <map>
-                  <key>name</key>
-                  <string>Time</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Address</key>
                <map>
-                  <key>name</key>
-                  <string>Address</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Subject</key>
                <map>
-                  <key>name</key>
-                  <string>Subject</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Body</key>
                <map>
-                  <key>name</key>
-                  <string>Body</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>NumberRemaining</key>
                <map>
-                  <key>name</key>
-                  <string>NumberRemaining</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>description</key>
+            </map>
+            <key>tooltip</key>
             <string>This event is triggered when an email sent to this script arrives.
 			The number remaining tells how many more emails are known to be still pending.</string>
          </map>
          <key>http_request</key>
          <map>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>HTTPRequestID</key>
                <map>
-                  <key>name</key>
-                  <string>HTTPRequestID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
-                  <string>HTTP request id for response use, and function response identification.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>HTTPMethod</key>
                <map>
-                  <key>name</key>
-                  <string>HTTPMethod</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
-                  <string>GET, POST, or PUT</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Body</key>
                <map>
-                  <key>name</key>
-                  <string>Body</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
-                  <string>Contents of the request.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>description</key>
+            </map>
+            <key>tooltip</key>
             <string>Triggered when task receives an HTTP request.</string>
          </map>
          <key>http_response</key>
          <map>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>HTTPRequestID</key>
                <map>
-                  <key>name</key>
-                  <string>HTTPRequestID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Status</key>
                <map>
-                  <key>name</key>
-                  <string>Status</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Metadata</key>
                <map>
-                  <key>name</key>
-                  <string>Metadata</string>
                   <key>type</key>
                   <string>list</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Body</key>
                <map>
-                  <key>name</key>
-                  <string>Body</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>description</key>
+            </map>
+            <key>tooltip</key>
             <string>This event handler is invoked when an HTTP response is received for a pending llHTTPRequest request or if a pending request fails or times out.</string>
          </map>
          <key>land_collision</key>
          <map>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Position</key>
                <map>
-                  <key>name</key>
-                  <string>Position</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>description</key>
+            </map>
+            <key>tooltip</key>
             <string>This event is raised when the object the script is attached to is colliding with the ground.</string>
          </map>
          <key>land_collision_end</key>
          <map>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Position</key>
                <map>
-                  <key>name</key>
-                  <string>Position</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>description</key>
+            </map>
+            <key>tooltip</key>
             <string>This event is raised when the object the script is attached to stops colliding with the ground.</string>
          </map>
          <key>land_collision_start</key>
          <map>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Position</key>
                <map>
-                  <key>name</key>
-                  <string>Position</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>description</key>
+            </map>
+            <key>tooltip</key>
             <string>This event is raised when the object the script is attached to begins to collide with the ground.</string>
          </map>
          <key>link_message</key>
          <map>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>SendersLink</key>
                <map>
-                  <key>name</key>
-                  <string>SendersLink</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Value</key>
                <map>
-                  <key>name</key>
-                  <string>Value</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Text</key>
                <map>
-                  <key>name</key>
-                  <string>Text</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>ID</key>
                <map>
-                  <key>name</key>
-                  <string>ID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>description</key>
+            </map>
+            <key>tooltip</key>
             <string>Triggered when object receives a link message via llMessageLinked function call.</string>
          </map>
          <key>listen</key>
          <map>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Channel</key>
                <map>
-                  <key>name</key>
-                  <string>Channel</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Name</key>
                <map>
-                  <key>name</key>
-                  <string>Name</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>ID</key>
                <map>
-                  <key>name</key>
-                  <string>ID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Text</key>
                <map>
-                  <key>name</key>
-                  <string>Text</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>description</key>
+            </map>
+            <key>tooltip</key>
             <string>This event is raised whenever a chat message matching the constraints set in the llListen command is received. The name and ID of the speaker, as well as the message, are passed in as parameters.
 			Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 through 2,147,483,648 are private channels that are not sent to avatars but other scripts can listen on those channels.</string>
          </map>
          <key>money</key>
          <map>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Payer</key>
                <map>
-                  <key>name</key>
-                  <string>Payer</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Amount</key>
                <map>
-                  <key>name</key>
-                  <string>Amount</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>description</key>
+            </map>
+            <key>tooltip</key>
             <string>This event is triggered when a resident has given an amount of Linden dollars to the object.</string>
          </map>
          <key>moving_end</key>
          <map>
             <key>arguments</key>
-            <array/>
-            <key>description</key>
+            <undef/>
+            <key>tooltip</key>
             <string>Triggered whenever an object with this script stops moving.</string>
          </map>
          <key>moving_start</key>
          <map>
             <key>arguments</key>
-            <array/>
-            <key>description</key>
+            <undef/>
+            <key>tooltip</key>
             <string>Triggered whenever an object with this script starts moving.</string>
          </map>
          <key>no_sensor</key>
          <map>
             <key>arguments</key>
-            <array/>
-            <key>description</key>
+            <undef/>
+            <key>tooltip</key>
             <string>This event is raised when sensors are active, via the llSensor function call, but are not sensing anything.</string>
          </map>
          <key>not_at_rot_target</key>
          <map>
             <key>arguments</key>
-            <array/>
-            <key>description</key>
+            <undef/>
+            <key>tooltip</key>
             <string>When a target is set via the llRotTarget function call, but the script is outside the specified angle this event is raised.</string>
          </map>
          <key>not_at_target</key>
          <map>
             <key>arguments</key>
-            <array/>
-            <key>description</key>
+            <undef/>
+            <key>tooltip</key>
             <string>When a target is set via the llTarget library call, but the script is outside the specified range this event is raised.</string>
          </map>
          <key>object_rez</key>
          <map>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>RezzedObjectsID</key>
                <map>
-                  <key>name</key>
-                  <string>RezzedObjectsID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>description</key>
+            </map>
+            <key>tooltip</key>
             <string>Triggered when an object rezzes another object from its inventory via the llRezObject, or similar, functions. The id is the globally unique key for the object rezzed.</string>
          </map>
          <key>on_rez</key>
          <map>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>StartParameter</key>
                <map>
-                  <key>name</key>
-                  <string>StartParameter</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>description</key>
+            </map>
+            <key>tooltip</key>
             <string>Triggered whenever an object is rezzed from inventory or by another object. The start parameter is passed in from the llRezObject call, or zero if from inventory.</string>
          </map>
          <key>path_update</key>
          <map>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Type</key>
                <map>
-                  <key>name</key>
-                  <string>Type</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>One of the PU* (Path Update) constants.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Reserved</key>
                <map>
-                  <key>name</key>
-                  <string>Reserved</string>
                   <key>type</key>
                   <string>list</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>description</key>
+            </map>
+            <key>tooltip</key>
             <string>This event is called to inform the script of changes within the object's path-finding status.</string>
          </map>
          <key>remote_data</key>
          <map>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>EventType</key>
                <map>
-                  <key>name</key>
-                  <string>EventType</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>ChannelID</key>
                <map>
-                  <key>name</key>
-                  <string>ChannelID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>MessageID</key>
                <map>
-                  <key>name</key>
-                  <string>MessageID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Sender</key>
                <map>
-                  <key>name</key>
-                  <string>Sender</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Data</key>
                <map>
-                  <key>name</key>
-                  <string>Data</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Data</key>
                <map>
-                  <key>name</key>
-                  <string>Data</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>description</key>
+            </map>
+            <key>tooltip</key>
             <string>Triggered by various XML-RPC calls with event_type specifying the type of data.</string>
          </map>
          <key>run_time_permissions</key>
          <map>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>PermissionFlags</key>
                <map>
-                  <key>name</key>
-                  <string>PermissionFlags</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>description</key>
+            </map>
+            <key>tooltip</key>
             <string>Scripts need permission from either the owner or the avatar they wish to act on before they may perform certain functions, such as debiting money from their owners account, triggering an animation on an avatar, or capturing control inputs. The llRequestPermissions library function is used to request these permissions and the various permissions integer constants can be supplied.
 			The integer returned to this event handler contains the current set of permissions flags, so if permissions equal 0 then no permissions are set.</string>
          </map>
          <key>sensor</key>
          <map>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>NumberDetected</key>
                <map>
-                  <key>name</key>
-                  <string>NumberDetected</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>description</key>
+            </map>
+            <key>tooltip</key>
             <string>This event is raised whenever objects matching the constraints of the llSensor command are detected.
 			The number of detected objects is passed to the script in the parameter. Information on those objects may be gathered via the llDetected* functions.</string>
          </map>
          <key>state_entry</key>
          <map>
             <key>arguments</key>
-            <array/>
-            <key>description</key>
+            <undef/>
+            <key>tooltip</key>
             <string>The state_entry event occurs whenever a new state is entered, including at program start, and is always the first event handled.</string>
          </map>
          <key>state_exit</key>
          <map>
             <key>arguments</key>
-            <array/>
-            <key>description</key>
+            <undef/>
+            <key>tooltip</key>
             <string>The state_exit event occurs whenever the state command is used to transition to another state. It is handled before the new states state_entry event.</string>
          </map>
          <key>timer</key>
          <map>
             <key>arguments</key>
-            <array/>
-            <key>description</key>
+            <undef/>
+            <key>tooltip</key>
             <string>This event is raised at regular intervals set by the llSetTimerEvent library function.</string>
          </map>
          <key>touch</key>
          <map>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>NumberOfTouches</key>
                <map>
-                  <key>name</key>
-                  <string>NumberOfTouches</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>description</key>
+            </map>
+            <key>tooltip</key>
             <string>This event is raised while a user is touching the object the script is attached to.
 			The number of touching objects is passed to the script in the parameter.
 			Information on those objects may be gathered via the llDetected* library functions.</string>
@@ -6386,67 +6431,62 @@
          <key>touch_end</key>
          <map>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>NumberOfTouches</key>
                <map>
-                  <key>name</key>
-                  <string>NumberOfTouches</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>description</key>
+            </map>
+            <key>tooltip</key>
             <string>This event is raised when a user stops touching the object the script is attached to. The number of touches is passed to the script in the parameter.
 			Information on those objects may be gathered via the llDetected* library functions.</string>
          </map>
          <key>touch_start</key>
          <map>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>NumberOfTouches</key>
                <map>
-                  <key>name</key>
-                  <string>NumberOfTouches</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>description</key>
+            </map>
+            <key>tooltip</key>
             <string>This event is raised when a user first touches the object the script is attached to. The number of touches is passed to the script in the parameter.
 			Information on those objects may be gathered via the llDetected() library functions.</string>
          </map>
          <key>transaction_result</key>
          <map>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>RequestID</key>
                <map>
-                  <key>name</key>
-                  <string>RequestID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
-                  <string>The key returned by an llTransferLindenDollar call to identify the specific request.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Success</key>
                <map>
-                  <key>name</key>
-                  <string>Success</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Boolean value, indicating success of the transfer</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Message</key>
                <map>
-                  <key>name</key>
-                  <string>Message</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
-                  <string>Message which depends on the result of the transaction. If iSuccess is true, this will contain &lt;destination_id&gt;,&lt;amount&gt;</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>description</key>
+            </map>
+            <key>tooltip</key>
             <string>Triggered by llTransferMoney() function.</string>
          </map>
       </map>
@@ -6461,20 +6501,17 @@
             <key>return</key>
             <string>integer</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Value</key>
                <map>
-                  <key>name</key>
-                  <string>Value</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>An integer value.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the absolute (positive) version of Value.</string>
-            <key>description</key>
-            <string>Returns the absolute value of Value.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the absolute (positive) version of Value.\nReturns the absolute value of Value.</string>
          </map>
          <key>llAcos</key>
          <map>
@@ -6485,20 +6522,17 @@
             <key>return</key>
             <string>float</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Value</key>
                <map>
-                  <key>name</key>
-                  <string>Value</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
-                  <string>A floating-point value.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the arc-cosine of Value, in radians.</string>
-            <key>description</key>
-            <string>Returns the arc-cosine of Value, in radians.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the arc-cosine of Value, in radians.\nReturns the arc-cosine of Value, in radians.</string>
          </map>
          <key>llAddToLandBanList</key>
          <map>
@@ -6509,28 +6543,24 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>ID</key>
                <map>
-                  <key>name</key>
-                  <string>ID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
-                  <string>Agent UUID to add to ban-list.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Hours</key>
                <map>
-                  <key>name</key>
-                  <string>Hours</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
-                  <string>Period, in hours, to ban the avatar for.</string>
-               </map>
-            </array>
-            <key>summary</key>
-            <string>Add avatar ID to the land ban list, for a duration of Hours.</string>
-            <key>description</key>
-            <string>Adds agent ID to the parcel ban list for the specified number of hours. A value of 0 for hours will add the agent indefinitely.\n
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Add avatar ID to the land ban list, for a duration of Hours.\nAdds agent ID to the parcel ban list for the specified number of hours. A value of 0 for hours will add the agent indefinitely.\n
 			The smallest value that Hours will accept is 0.01; anything smaller will be seen as 0.\n
 			When values that small are used, it seems the function bans in 30 second increments (Probably 36 second increments, as 0.01 of an hour is 36 seconds).\n
 			Residents teleporting to a parcel where they are banned will be redirected to a neighbouring parcel.</string>
@@ -6544,28 +6574,24 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>ID</key>
                <map>
-                  <key>name</key>
-                  <string>ID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
-                  <string>Agent UUID to add to pass-list.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Hours</key>
                <map>
-                  <key>name</key>
-                  <string>Hours</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
-                  <string>Period, in hours, to allow the avatar for.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Add avatar ID to the land pass list, for a duration of Hours.</string>
-            <key>description</key>
-            <string>Add avatar ID to the land pass list, for a duration of Hours.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Add avatar ID to the land pass list, for a duration of Hours.\nAdd avatar ID to the land pass list, for a duration of Hours.</string>
          </map>
          <key>llAdjustSoundVolume</key>
          <map>
@@ -6576,20 +6602,17 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Volume</key>
                <map>
-                  <key>name</key>
-                  <string>Volume</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
-                  <string>The volume to set.</string>
-               </map>
-            </array>
-            <key>summary</key>
-            <string>Adjusts the volume (0.0 - 1.0) of the currently playing attached sound started with llPlaySound or llLoopSound.</string>
-            <key>description</key>
-            <string>Adjusts the volume of the currently playing attached sound started with llPlaySound or llLoopSound.\n
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Adjusts the volume (0.0 - 1.0) of the currently playing attached sound started with llPlaySound or llLoopSound.\nAdjusts the volume of the currently playing attached sound started with llPlaySound or llLoopSound.\n
 			This function has no effect on sounds started with llTriggerSound.</string>
          </map>
          <key>llAllowInventoryDrop</key>
@@ -6601,20 +6624,17 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Flag</key>
                <map>
-                  <key>name</key>
-                  <string>Flag</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Boolean, If TRUE allows anyone to drop inventory on prim, FALSE revokes.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>If Flag == TRUE, users without object modify permissions can still drop inventory items into the object.</string>
-            <key>description</key>
-            <string>If Flag == TRUE, users that do not have object modify permissions can still drop inventory items into the object.</string>
+            </map>
+            <key>tooltip</key>
+            <string>If Flag == TRUE, users without object modify permissions can still drop inventory items into the object.\nIf Flag == TRUE, users that do not have object modify permissions can still drop inventory items into the object.</string>
          </map>
          <key>llAngleBetween</key>
          <map>
@@ -6625,28 +6645,24 @@
             <key>return</key>
             <string>float</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Rot1</key>
                <map>
-                  <key>name</key>
-                  <string>Rot1</string>
                   <key>type</key>
                   <string>rotation</string>
-                  <key>description</key>
-                  <string>First rotation.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Rot2</key>
                <map>
-                  <key>name</key>
-                  <string>Rot2</string>
                   <key>type</key>
                   <string>rotation</string>
-                  <key>description</key>
-                  <string>Second rotation.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the angle, in radians, between rotations Rot1 and Rot2.</string>
-            <key>description</key>
-            <string>Returns the angle, in radians, between rotations Rot1 and Rot2.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the angle, in radians, between rotations Rot1 and Rot2.\nReturns the angle, in radians, between rotations Rot1 and Rot2.</string>
          </map>
          <key>llApplyImpulse</key>
          <map>
@@ -6657,28 +6673,24 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Force</key>
                <map>
-                  <key>name</key>
-                  <string>Force</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
-                  <string>Amount of impulse force to apply.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Local</key>
                <map>
-                  <key>name</key>
-                  <string>Local</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Boolean, if TRUE, force is treated as a local directional vector instead of region directional vector.</string>
-               </map>
-            </array>
-            <key>summary</key>
-            <string>Applies impulse to object, in local coordinates if local == TRUE (if the script is physical).</string>
-            <key>description</key>
-            <string> 	Applies the Force in local coordinates if Local == TRUE. Otherwise the Force is applied in global coordinates.\n
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Applies impulse to object, in local coordinates if local == TRUE (if the script is physical).\n 	Applies the Force in local coordinates if Local == TRUE. Otherwise the Force is applied in global coordinates.\n
 			This function only works on physical objects.</string>
          </map>
          <key>llApplyRotationalImpulse</key>
@@ -6690,28 +6702,24 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Force</key>
                <map>
-                  <key>name</key>
-                  <string>Force</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
-                  <string>Amount of impulse force to apply.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Local</key>
                <map>
-                  <key>name</key>
-                  <string>Local</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Boolean, if TRUE, uses local axis, if FALSE, uses region axis.</string>
-               </map>
-            </array>
-            <key>summary</key>
-            <string>Applies rotational impulse to object, in local coordinates if local == TRUE (if the script is physical).</string>
-            <key>description</key>
-            <string>Applies a rotational impulse force in local coordinates if Local == TRUE. Otherwise the impulse is applied in global coordinates.\n
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Applies rotational impulse to object, in local coordinates if local == TRUE (if the script is physical).\nApplies a rotational impulse force in local coordinates if Local == TRUE. Otherwise the impulse is applied in global coordinates.\n
 			This function only works on physical objects.</string>
          </map>
          <key>llAsin</key>
@@ -6723,20 +6731,17 @@
             <key>return</key>
             <string>float</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Value</key>
                <map>
-                  <key>name</key>
-                  <string>Value</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
-                  <string>A floating-point value.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the arc-sine, in radians, of Value.</string>
-            <key>description</key>
-            <string>Returns the arc-sine, in radians, of Value.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the arc-sine, in radians, of Value.\nReturns the arc-sine, in radians, of Value.</string>
          </map>
          <key>llAtan2</key>
          <map>
@@ -6747,28 +6752,24 @@
             <key>return</key>
             <string>float</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>y</key>
                <map>
-                  <key>name</key>
-                  <string>y</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
-                  <string>A floating-point value.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>x</key>
                <map>
-                  <key>name</key>
-                  <string>x</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
-                  <string>A floating-point value.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the arc-tangent2 of y, x.</string>
-            <key>description</key>
-            <string>Returns the arc-tangent2 of y, x.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the arc-tangent2 of y, x.\nReturns the arc-tangent2 of y, x.</string>
          </map>
          <key>llAttachToAvatar</key>
          <map>
@@ -6779,20 +6780,17 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>AttachmentPoint</key>
                <map>
-                  <key>name</key>
-                  <string>AttachmentPoint</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Attach to avatar at point AttachmentPoint, if task has permissions to do so.</string>
-            <key>description</key>
-            <string>Attach to avatar at point iAttachmentPoint.\n
+            </map>
+            <key>tooltip</key>
+            <string>Attach to avatar at point AttachmentPoint, if task has permissions to do so.\nAttach to avatar at point iAttachmentPoint.\n
 			Requires the PERMISSION_ATTACH runtime permission.</string>
          </map>
          <key>llAttachToAvatarTemp</key>
@@ -6804,20 +6802,17 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>AttachPoint</key>
                <map>
-                  <key>name</key>
-                  <string>AttachPoint</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Valid attachment poit or ATTACH_* constant.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>summary</key>
+            </map>
+            <key>tooltip</key>
             <string>Follows the same convention as llAttachToAvatar, with the exception that the object will not create new inventory for the user, and will disappear on detach or disconnect.</string>
-            <key>description</key>
-            <string/>
          </map>
          <key>llAvatarOnLinkSitTarget</key>
          <map>
@@ -6828,20 +6823,17 @@
             <key>return</key>
             <string>key</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>LinkNumber</key>
                <map>
-                  <key>name</key>
-                  <string>LinkNumber</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>If an avatar is sitting on the link's sit target, return the avatar's key, NULL_KEY otherwise.</string>
-            <key>description</key>
-            <string>Returns a key that is the UUID of the user seated on the specified link's prim.</string>
+            </map>
+            <key>tooltip</key>
+            <string>If an avatar is sitting on the link's sit target, return the avatar's key, NULL_KEY otherwise.\nReturns a key that is the UUID of the user seated on the specified link's prim.</string>
          </map>
          <key>llAvatarOnSitTarget</key>
          <map>
@@ -6852,11 +6844,9 @@
             <key>return</key>
             <string>key</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>If an avatar is seated on the sit target, returns the avatar's key, otherwise NULL_KEY.</string>
-            <key>description</key>
-            <string>If an avatar is sitting on the sit target, return the avatars key, NULL_KEY otherwise. This only will detect avatars sitting on sit targets defined with llSitTarget.</string>
+            <undef/>
+            <key>tooltip</key>
+            <string>If an avatar is seated on the sit target, returns the avatar's key, otherwise NULL_KEY.\nIf an avatar is sitting on the sit target, return the avatars key, NULL_KEY otherwise. This only will detect avatars sitting on sit targets defined with llSitTarget.</string>
          </map>
          <key>llAxes2Rot</key>
          <map>
@@ -6867,36 +6857,31 @@
             <key>return</key>
             <string>rotation</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Forward</key>
                <map>
-                  <key>name</key>
-                  <string>Forward</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
-                  <string>Forward/Back part of rotation.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Left</key>
                <map>
-                  <key>name</key>
-                  <string>Left</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
-                  <string>Left/Right part of rotation.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Up</key>
                <map>
-                  <key>name</key>
-                  <string>Up</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
-                  <string>Up/Down part of rotation.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the rotation defined by the coordinate axes.</string>
-            <key>description</key>
-            <string>Returns the rotation represented by coordinate axes Forward, Left, and Up.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the rotation defined by the coordinate axes.\nReturns the rotation represented by coordinate axes Forward, Left, and Up.</string>
          </map>
          <key>llAxisAngle2Rot</key>
          <map>
@@ -6907,28 +6892,24 @@
             <key>return</key>
             <string>rotation</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Axis</key>
                <map>
-                  <key>name</key>
-                  <string>Axis</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
-                  <string>Axis.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Angle</key>
                <map>
-                  <key>name</key>
-                  <string>Angle</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
-                  <string>Angle in radians.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the rotation that is a generated Angle about Axis.</string>
-            <key>description</key>
-            <string>Returns the rotation generated Angle about Axis.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the rotation that is a generated Angle about Axis.\nReturns the rotation generated Angle about Axis.</string>
          </map>
          <key>llBase64ToInteger</key>
          <map>
@@ -6939,20 +6920,17 @@
             <key>return</key>
             <string>integer</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Text</key>
                <map>
-                  <key>name</key>
-                  <string>Text</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns an integer that is the Text, Base64 decoded as a big endian integer.</string>
-            <key>description</key>
-            <string>Returns an integer that is the Text, Base64 decoded as a big endian integer.\n
+            </map>
+            <key>tooltip</key>
+            <string>Returns an integer that is the Text, Base64 decoded as a big endian integer.\nReturns an integer that is the Text, Base64 decoded as a big endian integer.\n
 				Returns zero if Text is longer then 8 characters. If Text contains fewer then 6 characters, the return value is unpredictable.</string>
          </map>
          <key>llBase64ToString</key>
@@ -6964,21 +6942,18 @@
             <key>return</key>
             <string>string</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Text</key>
                <map>
-                  <key>name</key>
-                  <string>Text</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
+            </map>
+            <key>tooltip</key>
             <string>Converts a Base64 string to a conventional string.\n
-				If the conversion creates any unprintable characters, they are converted to spaces.</string>
-            <key>description</key>
-            <string>Converts a Base 64 string to a conventional string.\n
+				If the conversion creates any unprintable characters, they are converted to spaces.\nConverts a Base 64 string to a conventional string.\n
 			If the conversion creates any unprintable characters, they are converted to question marks (this behaviour is different than llUnescapeURL's).</string>
          </map>
          <key>llBreakAllLinks</key>
@@ -6990,11 +6965,9 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>De-links all tasks in the link set (requires permission PERMISSION_CHANGE_LINKS be set).</string>
-            <key>description</key>
-            <string>De-links all objects in the link set. Requires the permission PERMISSION_CHANGE_LINKS be set.</string>
+            <undef/>
+            <key>tooltip</key>
+            <string>De-links all tasks in the link set (requires permission PERMISSION_CHANGE_LINKS be set).\nDe-links all objects in the link set. Requires the permission PERMISSION_CHANGE_LINKS be set.</string>
          </map>
          <key>llBreakLink</key>
          <map>
@@ -7005,20 +6978,17 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>LinkNumber</key>
                <map>
-                  <key>name</key>
-                  <string>LinkNumber</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>De-links the task with the given link number (requires permission PERMISSION_CHANGE_LINKS be set).</string>
-            <key>description</key>
-            <string>De-links the object with the given link number. Requires permission PERMISSION_CHANGE_LINKS be set.</string>
+            </map>
+            <key>tooltip</key>
+            <string>De-links the task with the given link number (requires permission PERMISSION_CHANGE_LINKS be set).\nDe-links the object with the given link number. Requires permission PERMISSION_CHANGE_LINKS be set.</string>
          </map>
          <key>llCastRay</key>
          <map>
@@ -7029,36 +6999,31 @@
             <key>return</key>
             <string>list</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Start</key>
                <map>
-                  <key>name</key>
-                  <string>Start</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>End</key>
                <map>
-                  <key>name</key>
-                  <string>End</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Options</key>
                <map>
-                  <key>name</key>
-                  <string>Options</string>
                   <key>type</key>
                   <string>list</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Casts a ray into the physics world from 'start' to 'end' and returns data according to details in Options.</string>
-            <key>description</key>
-            <string>Cast a ray from Start to End and report collision data for intersections with objects.\n
+            </map>
+            <key>tooltip</key>
+            <string>Casts a ray into the physics world from 'start' to 'end' and returns data according to details in Options.\nCast a ray from Start to End and report collision data for intersections with objects.\n
 			Return value: [UUID_1, {link_number_1}, hit_position_1, {hit_normal_1}, UUID_2, {link_number_2}, hit_position_2, {hit_normal_2}, ... , status_code] where {} indicates optional data.</string>
          </map>
          <key>llCeil</key>
@@ -7070,20 +7035,17 @@
             <key>return</key>
             <string>integer</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Value</key>
                <map>
-                  <key>name</key>
-                  <string>Value</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns smallest integer value &gt;= Value.</string>
-            <key>description</key>
-            <string>Returns smallest integer value &gt;= Value.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns smallest integer value &gt;= Value.\nReturns smallest integer value &gt;= Value.</string>
          </map>
          <key>llClearCameraParams</key>
          <map>
@@ -7094,11 +7056,9 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Resets all camera parameters to default values and turns off scripted camera control.</string>
-            <key>description</key>
-            <string>Resets all camera parameters to default values and turns off scripted camera control.</string>
+            <undef/>
+            <key>tooltip</key>
+            <string>Resets all camera parameters to default values and turns off scripted camera control.\nResets all camera parameters to default values and turns off scripted camera control.</string>
          </map>
          <key>llClearLinkMedia</key>
          <map>
@@ -7109,28 +7069,24 @@
             <key>return</key>
             <string>integer</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Link</key>
                <map>
-                  <key>name</key>
-                  <string>Link</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Face</key>
                <map>
-                  <key>name</key>
-                  <string>Face</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Clears (deletes) the media and all parameters from the given Face on the linked prim.</string>
-            <key>description</key>
-            <string>Clears (deletes) the media and all parameters from the given from the given Face on the Linked prim(s).\n
+            </map>
+            <key>tooltip</key>
+            <string>Clears (deletes) the media and all parameters from the given Face on the linked prim.\nClears (deletes) the media and all parameters from the given from the given Face on the Linked prim(s).\n
 			Returns an integer that is a STATUS_* flag which details the success/failure of the operation.</string>
          </map>
          <key>llClearPrimMedia</key>
@@ -7142,20 +7098,17 @@
             <key>return</key>
             <string>integer</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Face</key>
                <map>
-                  <key>name</key>
-                  <string>Face</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Number of side to clear.</string>
-               </map>
-            </array>
-            <key>summary</key>
-            <string>Clears (deletes) the media and all parameters from the given face.</string>
-            <key>description</key>
-            <string>Clears (deletes) the media and all parameters from the given Face.\n
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Clears (deletes) the media and all parameters from the given face.\nClears (deletes) the media and all parameters from the given Face.\n
 			Returns an integer that is a STATUS_* flag which details the success/failure of the operation.</string>
          </map>
          <key>llCloseRemoteDataChannel</key>
@@ -7167,20 +7120,17 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>ChannelID</key>
                <map>
-                  <key>name</key>
-                  <string>ChannelID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Closes XML-RPC channel.</string>
-            <key>description</key>
-            <string>Closes the specified XML-RPC channel.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Closes XML-RPC channel.\nCloses the specified XML-RPC channel.</string>
          </map>
          <key>llCloud</key>
          <map>
@@ -7191,20 +7141,17 @@
             <key>return</key>
             <string>float</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Offset</key>
                <map>
-                  <key>name</key>
-                  <string>Offset</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the cloud density at the object's position + Offset.</string>
-            <key>description</key>
-            <string>Returns the cloud density at the object's position + Offset.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the cloud density at the object's position + Offset.\nReturns the cloud density at the object's position + Offset.</string>
          </map>
          <key>llCollisionFilter</key>
          <map>
@@ -7215,38 +7162,31 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>ObjectName</key>
                <map>
-                  <key>name</key>
-                  <string>ObjectName</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>ObjectID</key>
                <map>
-                  <key>name</key>
-                  <string>ObjectID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Accept</key>
                <map>
-                  <key>name</key>
-                  <string>Accept</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>
-				If TRUE, only accept collisions with ObjectName name AND ObjectID (either is optional), otherwise with objects not ObjectName AND ObjectID.
-				</string>
-               </map>
-            </array>
-            <key>summary</key>
-            <string>if Accept == TRUE, only accept collisions with specified name and id (either is optional), otherwise with objects not name or id.</string>
-            <key>description</key>
-            <string>If Accept == TRUE, only accept collisions with objects Name and ID, otherwise with objects not Name or ID.\n
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>if Accept == TRUE, only accept collisions with specified name and id (either is optional), otherwise with objects not name or id.\nIf Accept == TRUE, only accept collisions with objects Name and ID, otherwise with objects not Name or ID.\n
 			Specify an empty string or NULL_KEY to not filter on the corresponding parameter.</string>
          </map>
          <key>llCollisionSound</key>
@@ -7258,28 +7198,24 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>ImpactSound</key>
                <map>
-                  <key>name</key>
-                  <string>ImpactSound</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>ImpactVolume</key>
                <map>
-                  <key>name</key>
-                  <string>ImpactVolume</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Suppress default collision sounds, replace default impact sounds with ImpactSound (empty string to suppress).</string>
-            <key>description</key>
-            <string>Suppress default collision sounds, replace default impact sounds with ImpactSound, found in the object inventory.\n
+            </map>
+            <key>tooltip</key>
+            <string>Suppress default collision sounds, replace default impact sounds with ImpactSound (empty string to suppress).\nSuppress default collision sounds, replace default impact sounds with ImpactSound, found in the object inventory.\n
 			Supply an empty string to suppress collision sounds.</string>
          </map>
          <key>llCollisionSprite</key>
@@ -7291,20 +7227,17 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>ImpactSprite</key>
                <map>
-                  <key>name</key>
-                  <string>ImpactSprite</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Suppress default collision sprites, replace default impact sprite with impact_sprite (empty string to just suppress).</string>
-            <key>description</key>
-            <string>Suppress default collision sprites, replace default impact sprite with ImpactSprite, found in the object inventory.\n
+            </map>
+            <key>tooltip</key>
+            <string>Suppress default collision sprites, replace default impact sprite with impact_sprite (empty string to just suppress).\nSuppress default collision sprites, replace default impact sprite with ImpactSprite, found in the object inventory.\n
 			Supply an empty string to just suppress.</string>
          </map>
          <key>llCos</key>
@@ -7316,20 +7249,17 @@
             <key>return</key>
             <string>float</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Theta</key>
                <map>
-                  <key>name</key>
-                  <string>Theta</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the cosine of Theta (Theta in radians).</string>
-            <key>description</key>
-            <string>Returns the cosine of Theta radians.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the cosine of Theta (Theta in radians).\nReturns the cosine of Theta radians.</string>
          </map>
          <key>llCreateCharacter</key>
          <map>
@@ -7340,20 +7270,17 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Options</key>
                <map>
-                  <key>name</key>
-                  <string>Options</string>
                   <key>type</key>
                   <string>list</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Convert link-set to AI/Physics character.</string>
-            <key>description</key>
-            <string>Creates a path-finding entity, known as a "character", from the object containing the script. Required to activate use of path-finding functions.\n
+            </map>
+            <key>tooltip</key>
+            <string>Convert link-set to AI/Physics character.\nCreates a path-finding entity, known as a "character", from the object containing the script. Required to activate use of path-finding functions.\n
 			Options is a list of key/value pairs.</string>
          </map>
          <key>llCreateLink</key>
@@ -7365,28 +7292,24 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>TargetPrim</key>
                <map>
-                  <key>name</key>
-                  <string>TargetPrim</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
-                  <string>Object UUID that is in the same region.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Parent</key>
                <map>
-                  <key>name</key>
-                  <string>Parent</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>If FALSE, then TargetPrim becomes the root. If TRUE, then the script's object becomes the root.</string>
-               </map>
-            </array>
-            <key>summary</key>
-            <string>Attempt to link task script is attached to and target (requires permission PERMISSION_CHANGE_LINKS be set). If parent == TRUE, task script is attached to is the root.</string>
-            <key>description</key>
-            <string>Attempt to link the object that the script is attached to and the target object.\n
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Attempt to link task script is attached to and target (requires permission PERMISSION_CHANGE_LINKS be set). If parent == TRUE, task script is attached to is the root.\nAttempt to link the object that the script is attached to and the target object.\n
 			Requires permission PERMISSION_CHANGE_LINKS be set.</string>
          </map>
          <key>llCSV2List</key>
@@ -7398,20 +7321,17 @@
             <key>return</key>
             <string>list</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Text</key>
                <map>
-                  <key>name</key>
-                  <string>Text</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Creates a list, from a string of comma separated values.</string>
-            <key>description</key>
-            <string>Create a list from a string of comma separated values specified in Text.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Creates a list, from a string of comma separated values.\nCreate a list from a string of comma separated values specified in Text.</string>
          </map>
          <key>llDeleteCharacter</key>
          <map>
@@ -7422,11 +7342,9 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Convert link-set from AI/Physics character to Physics object.</string>
-            <key>description</key>
-            <string>Convert the current link-set back to a standard object, removing all path-finding properties.</string>
+            <undef/>
+            <key>tooltip</key>
+            <string>Convert link-set from AI/Physics character to Physics object.\nConvert the current link-set back to a standard object, removing all path-finding properties.</string>
          </map>
          <key>llDeleteSubList</key>
          <map>
@@ -7437,36 +7355,31 @@
             <key>return</key>
             <string>list</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Source</key>
                <map>
-                  <key>name</key>
-                  <string>Source</string>
                   <key>type</key>
                   <string>list</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Start</key>
                <map>
-                  <key>name</key>
-                  <string>Start</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>End</key>
                <map>
-                  <key>name</key>
-                  <string>End</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Removes the slice from start to end and returns the remainder of the list.</string>
-            <key>description</key>
-            <string>Remove a slice from the list and return the remainder, start and end are inclusive.\n
+            </map>
+            <key>tooltip</key>
+            <string>Removes the slice from start to end and returns the remainder of the list.\nRemove a slice from the list and return the remainder, start and end are inclusive.\n
 				Using negative numbers for start and/or end causes the index to count backwards from the length of the list, so 0, -1 would delete the entire list.\n
 				If Start is larger than End the list deleted is the exclusion of the entries; so 6, 4 would delete the entire list except for the 5th. list entry.</string>
          </map>
@@ -7479,36 +7392,31 @@
             <key>return</key>
             <string>string</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Source</key>
                <map>
-                  <key>name</key>
-                  <string>Source</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Start</key>
                <map>
-                  <key>name</key>
-                  <string>Start</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>End</key>
                <map>
-                  <key>name</key>
-                  <string>End</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Removes the indicated sub-string and returns the result.</string>
-            <key>description</key>
-            <string>Removes the indicated sub-string and returns the result, start and end are inclusive.\n
+            </map>
+            <key>tooltip</key>
+            <string>Removes the indicated sub-string and returns the result.\nRemoves the indicated sub-string and returns the result, start and end are inclusive.\n
 			Using negative numbers for start and/or end causes the index to count backwards from the length of the string, so 0, -1 would delete the entire string.\n
 			If start is larger than end, the sub string is the exclusion of the entries; so 6, 4 would delete the entire string except for the 5th. character.</string>
          </map>
@@ -7521,11 +7429,9 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Remove the object containing the script from the avatar.</string>
-            <key>description</key>
-            <string>Remove the object containing the script from the avatar.</string>
+            <undef/>
+            <key>tooltip</key>
+            <string>Remove the object containing the script from the avatar.\nRemove the object containing the script from the avatar.</string>
          </map>
          <key>llDetectedGrab</key>
          <map>
@@ -7536,20 +7442,17 @@
             <key>return</key>
             <string>vector</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Number</key>
                <map>
-                  <key>name</key>
-                  <string>Number</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the grab offset of the user touching object (returns &lt;0,0,0&gt; if number is not a valid sensed object).</string>
-            <key>description</key>
-            <string>Returns the grab offset of detected object number.\n
+            </map>
+            <key>tooltip</key>
+            <string>Returns the grab offset of the user touching object (returns &lt;0,0,0&gt; if number is not a valid sensed object).\nReturns the grab offset of detected object number.\n
 			Returns &lt;0.0, 0.0, 0.0&gt; if Number is not a valid object.</string>
          </map>
          <key>llDetectedGroup</key>
@@ -7561,20 +7464,17 @@
             <key>return</key>
             <string>integer</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Number</key>
                <map>
-                  <key>name</key>
-                  <string>Number</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns TRUE if detected object is part of same group as owner.</string>
-            <key>description</key>
-            <string>Returns TRUE if detected object or agent Number has the same user group active as this object.\n
+            </map>
+            <key>tooltip</key>
+            <string>Returns TRUE if detected object is part of same group as owner.\nReturns TRUE if detected object or agent Number has the same user group active as this object.\n
 			It will return FALSE if the object or agent is in the group, but the group is not active.</string>
          </map>
          <key>llDetectedKey</key>
@@ -7586,20 +7486,17 @@
             <key>return</key>
             <string>key</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Number</key>
                <map>
-                  <key>name</key>
-                  <string>Number</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the key of detected object or avatar number (returns empty key if number is not a valid index).</string>
-            <key>description</key>
-            <string>Returns the key of detected object or avatar number.\n
+            </map>
+            <key>tooltip</key>
+            <string>Returns the key of detected object or avatar number (returns empty key if number is not a valid index).\nReturns the key of detected object or avatar number.\n
 			Returns NULL_KEY if Number is not a valid index.</string>
          </map>
          <key>llDetectedLinkNumber</key>
@@ -7611,20 +7508,17 @@
             <key>return</key>
             <string>integer</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Number</key>
                <map>
-                  <key>name</key>
-                  <string>Number</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the link position of the triggered event for touches and collisions only.</string>
-            <key>description</key>
-            <string>Returns the link position of the triggered event for touches.\n
+            </map>
+            <key>tooltip</key>
+            <string>Returns the link position of the triggered event for touches and collisions only.\nReturns the link position of the triggered event for touches.\n
 			0 for a non-linked object, 1 for the root of a linked object, 2 for the first child, etc.</string>
          </map>
          <key>llDetectedName</key>
@@ -7636,20 +7530,17 @@
             <key>return</key>
             <string>string</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Number</key>
                <map>
-                  <key>name</key>
-                  <string>Number</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the name of detected object or avatar number (returns empty string if number is not a valid index).</string>
-            <key>description</key>
-            <string>Returns the name of detected object number.\n
+            </map>
+            <key>tooltip</key>
+            <string>Returns the name of detected object or avatar number (returns empty string if number is not a valid index).\nReturns the name of detected object number.\n
 			Returns empty string if number is not a valid index.</string>
          </map>
          <key>llDetectedOwner</key>
@@ -7661,20 +7552,17 @@
             <key>return</key>
             <string>key</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Number</key>
                <map>
-                  <key>name</key>
-                  <string>Number</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the key of detected object's owner (returns empty key if number is not a valid index).</string>
-            <key>description</key>
-            <string>Returns the key of detected number objects owner.\n
+            </map>
+            <key>tooltip</key>
+            <string>Returns the key of detected object's owner (returns empty key if number is not a valid index).\nReturns the key of detected number objects owner.\n
 			Returns invalid key if number is not a valid index.</string>
          </map>
          <key>llDetectedPos</key>
@@ -7686,20 +7574,17 @@
             <key>return</key>
             <string>vector</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Number</key>
                <map>
-                  <key>name</key>
-                  <string>Number</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the position of detected object or avatar number (returns &lt;0,0,0&gt; if number is not a valid index).</string>
-            <key>description</key>
-            <string>Returns the position of detected object Number.\n
+            </map>
+            <key>tooltip</key>
+            <string>Returns the position of detected object or avatar number (returns &lt;0,0,0&gt; if number is not a valid index).\nReturns the position of detected object Number.\n
 			Returns &lt;0.0, 0.0, 0.0&gt; if number is not a valid index.</string>
          </map>
          <key>llDetectedRot</key>
@@ -7711,20 +7596,17 @@
             <key>return</key>
             <string>rotation</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Number</key>
                <map>
-                  <key>name</key>
-                  <string>Number</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the rotation of detected object or avatar number (returns &lt;0,0,0,1&gt; if number is not a valid index).</string>
-            <key>description</key>
-            <string>Returns the rotation of detected object or avatar number.\n
+            </map>
+            <key>tooltip</key>
+            <string>Returns the rotation of detected object or avatar number (returns &lt;0,0,0,1&gt; if number is not a valid index).\nReturns the rotation of detected object or avatar number.\n
 			Returns &lt;0.0, 0.0, 0.0, 1.0&gt; if number is not a valid offset.</string>
          </map>
          <key>llDetectedTouchBinormal</key>
@@ -7736,20 +7618,17 @@
             <key>return</key>
             <string>vector</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Index</key>
                <map>
-                  <key>name</key>
-                  <string>Index</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Index of detection information</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the surface bi-normal for a triggered touch event.</string>
-            <key>description</key>
-            <string>Returns a vector that is the surface bi-normal (tangent to the surface) where the touch event was triggered.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the surface bi-normal for a triggered touch event.\nReturns a vector that is the surface bi-normal (tangent to the surface) where the touch event was triggered.</string>
          </map>
          <key>llDetectedTouchFace</key>
          <map>
@@ -7760,20 +7639,17 @@
             <key>return</key>
             <string>integer</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Index</key>
                <map>
-                  <key>name</key>
-                  <string>Index</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Index of detection information</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the index of the face where the avatar clicked in a triggered touch event.</string>
-            <key>description</key>
-            <string>Returns an integer that is the index of the face the avatar clicked on.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the index of the face where the avatar clicked in a triggered touch event.\nReturns an integer that is the index of the face the avatar clicked on.</string>
          </map>
          <key>llDetectedTouchNormal</key>
          <map>
@@ -7784,20 +7660,17 @@
             <key>return</key>
             <string>vector</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Index</key>
                <map>
-                  <key>name</key>
-                  <string>Index</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Index of detection information</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the surface normal for a triggered touch event.</string>
-            <key>description</key>
-            <string>Returns a vector that is the surface normal (perpendicular to the surface) where the touch event was triggered.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the surface normal for a triggered touch event.\nReturns a vector that is the surface normal (perpendicular to the surface) where the touch event was triggered.</string>
          </map>
          <key>llDetectedTouchPos</key>
          <map>
@@ -7808,20 +7681,17 @@
             <key>return</key>
             <string>vector</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Index</key>
                <map>
-                  <key>name</key>
-                  <string>Index</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Index of detected information</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the position where the object was touched in a triggered touch event.</string>
-            <key>description</key>
-            <string>Returns a vector that is the position of the touched object, in region coordinates; unless it is a HUD, in which case it returns the position relative to the attach point.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the position where the object was touched in a triggered touch event.\nReturns a vector that is the position of the touched object, in region coordinates; unless it is a HUD, in which case it returns the position relative to the attach point.</string>
          </map>
          <key>llDetectedTouchST</key>
          <map>
@@ -7832,20 +7702,17 @@
             <key>return</key>
             <string>vector</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Index</key>
                <map>
-                  <key>name</key>
-                  <string>Index</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Index of detection information</string>
-               </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the s and t coordinates, in the first two components of a vector, for the surface coordinates where the prim was touched in a triggered touch event.</string>
-            <key>description</key>
-            <string>Returns a vector that is the surface coordinates where the prim was touched.\n
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the s and t coordinates, in the first two components of a vector, for the surface coordinates where the prim was touched in a triggered touch event.\nReturns a vector that is the surface coordinates where the prim was touched.\n
 			The x and y vector positions contain the horizontal (s) and vertical (t) face coordinates respectively.\n
 			Each component is in the interval [0.0, 1.0].\n
 			TOUCH_INVALID_TEXCOORD is returned if the surface coordinates cannot be determined (e.g. when the viewer does not support this function).</string>
@@ -7859,20 +7726,17 @@
             <key>return</key>
             <string>vector</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Index</key>
                <map>
-                  <key>name</key>
-                  <string>Index</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Index of detection information</string>
-               </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the u and v coordinates in the first two components of a vector, for the texture coordinates where the prim was touched in a triggered touch event.</string>
-            <key>description</key>
-            <string>Returns a vector that is the texture coordinates for where the prim was touched. The x and y vector positions contain the u and v face coordinates respectively.\n
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the u and v coordinates in the first two components of a vector, for the texture coordinates where the prim was touched in a triggered touch event.\nReturns a vector that is the texture coordinates for where the prim was touched. The x and y vector positions contain the u and v face coordinates respectively.\n
 			TOUCH_INVALID_TEXCOORD is returned if the touch UV coordinates cannot be determined (e.g. when the viewer does not support this function).</string>
          </map>
          <key>llDetectedType</key>
@@ -7884,20 +7748,17 @@
             <key>return</key>
             <string>integer</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Number</key>
                <map>
-                  <key>name</key>
-                  <string>Number</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the type (AGENT, ACTIVE, PASSIVE, SCRIPTED) of detected object (returns 0 if number is not a valid index).</string>
-            <key>description</key>
-            <string>Returns the type (AGENT, ACTIVE, PASSIVE, SCRIPTED) of detected object number. Returns 0 if number is not a valid index.\n
+            </map>
+            <key>tooltip</key>
+            <string>Returns the type (AGENT, ACTIVE, PASSIVE, SCRIPTED) of detected object (returns 0 if number is not a valid index).\nReturns the type (AGENT, ACTIVE, PASSIVE, SCRIPTED) of detected object number. Returns 0 if number is not a valid index.\n
 			Note that number is a bit-field, so comparisons need to be a bitwise checked. e.g.:\n
 			integer iType = llDetectedType(0);\n
 			if (iType &amp; AGENT)\n
@@ -7914,20 +7775,17 @@
             <key>return</key>
             <string>vector</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Number</key>
                <map>
-                  <key>name</key>
-                  <string>Number</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the velocity of detected object number (returns &lt;0,0,0&gt; if number is not a valid sensed object).</string>
-            <key>description</key>
-            <string>Returns the velocity of the detected object number.\n
+            </map>
+            <key>tooltip</key>
+            <string>Returns the velocity of detected object number (returns &lt;0,0,0&gt; if number is not a valid sensed object).\nReturns the velocity of the detected object number.\n
 			Returns&lt;0.0, 0.0, 0.0&gt; if number is not a valid offset.</string>
          </map>
          <key>llDialog</key>
@@ -7939,46 +7797,40 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>AvatarID</key>
                <map>
-                  <key>name</key>
-                  <string>AvatarID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Text</key>
                <map>
-                  <key>name</key>
-                  <string>Text</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Buttons</key>
                <map>
-                  <key>name</key>
-                  <string>Buttons</string>
                   <key>type</key>
                   <string>list</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Channel</key>
                <map>
-                  <key>name</key>
-                  <string>Channel</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
+            </map>
+            <key>tooltip</key>
             <string>Shows a dialog box on the avatar's screen with the message.\n
 				Up to 12 strings in the list form buttons.\n
-				If a button is clicked, the name is chatted on Channel.</string>
-            <key>description</key>
-            <string>Opens a "notify box" in the given avatars screen displaying the message.\n
+				If a button is clicked, the name is chatted on Channel.\nOpens a "notify box" in the given avatars screen displaying the message.\n
 			Up to twelve buttons can be specified in a list of strings. When the user clicks a button, the name of the button is said on the specified channel.\n
 			Channels work just like llSay(), so channel 0 can be heard by everyone.\n
 			The chat originates at the object's position, not the avatar's position, even though it is said as the avatar (uses avatar's UUID and Name etc.).\n
@@ -7996,11 +7848,9 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Deletes the object.</string>
-            <key>description</key>
-            <string>Delete the object which holds the script.</string>
+            <undef/>
+            <key>tooltip</key>
+            <string>Deletes the object.\nDelete the object which holds the script.</string>
          </map>
          <key>llDumpList2String</key>
          <map>
@@ -8011,28 +7861,24 @@
             <key>return</key>
             <string>string</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Source</key>
                <map>
-                  <key>name</key>
-                  <string>Source</string>
                   <key>type</key>
                   <string>list</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Separator</key>
                <map>
-                  <key>name</key>
-                  <string>Separator</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the list as a single string, using Separator between the entries.</string>
-            <key>description</key>
-            <string>Write the list out as a single string, using Separator between values.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the list as a single string, using Separator between the entries.\nWrite the list out as a single string, using Separator between values.</string>
          </map>
          <key>llEdgeOfWorld</key>
          <map>
@@ -8043,28 +7889,24 @@
             <key>return</key>
             <string>integer</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Position</key>
                <map>
-                  <key>name</key>
-                  <string>Position</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Direction</key>
                <map>
-                  <key>name</key>
-                  <string>Direction</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Checks to see whether the border hit by Direction from Position is the edge of the world (has no neighboring region).</string>
-            <key>description</key>
-            <string>Returns TRUE if the line along Direction from Position hits the edge of the world in the current simulator, returns FALSE if that edge crosses into another simulator.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Checks to see whether the border hit by Direction from Position is the edge of the world (has no neighboring region).\nReturns TRUE if the line along Direction from Position hits the edge of the world in the current simulator, returns FALSE if that edge crosses into another simulator.</string>
          </map>
          <key>llEjectFromLand</key>
          <map>
@@ -8075,20 +7917,17 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>AvatarID</key>
                <map>
-                  <key>name</key>
-                  <string>AvatarID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Ejects AvatarID from land that you own.</string>
-            <key>description</key>
-            <string>Ejects AvatarID from land that the object owner (group or resident) owns.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Ejects AvatarID from land that you own.\nEjects AvatarID from land that the object owner (group or resident) owns.</string>
          </map>
          <key>llEmail</key>
          <map>
@@ -8099,36 +7938,31 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Address</key>
                <map>
-                  <key>name</key>
-                  <string>Address</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Subject</key>
                <map>
-                  <key>name</key>
-                  <string>Subject</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Text</key>
                <map>
-                  <key>name</key>
-                  <string>Text</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Sends email to Address with Subject and Message.</string>
-            <key>description</key>
-            <string>Sends an email to Address with Subject and Message.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Sends email to Address with Subject and Message.\nSends an email to Address with Subject and Message.</string>
          </map>
          <key>llEscapeURL</key>
          <map>
@@ -8139,20 +7973,17 @@
             <key>return</key>
             <string>string</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>URL</key>
                <map>
-                  <key>name</key>
-                  <string>URL</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns an escaped/encoded version of url, replacing spaces with %20 etc.</string>
-            <key>description</key>
-            <string>Returns the string that is the URL-escaped version of URL (replacing spaces with %20, etc.).\n
+            </map>
+            <key>tooltip</key>
+            <string>Returns an escaped/encoded version of url, replacing spaces with %20 etc.\nReturns the string that is the URL-escaped version of URL (replacing spaces with %20, etc.).\n
 			This function returns the UTF-8 encoded escape codes for selected characters.</string>
          </map>
          <key>llEuler2Rot</key>
@@ -8164,20 +7995,17 @@
             <key>return</key>
             <string>rotation</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Vector</key>
                <map>
-                  <key>name</key>
-                  <string>Vector</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the rotation representation of the Euler angles.</string>
-            <key>description</key>
-            <string>Returns the rotation represented by the Euler Angle.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the rotation representation of the Euler angles.\nReturns the rotation represented by the Euler Angle.</string>
          </map>
          <key>llEvade</key>
          <map>
@@ -8188,28 +8016,24 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>TargetID</key>
                <map>
-                  <key>name</key>
-                  <string>TargetID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
-                  <string>Agent or object to evade.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Options</key>
                <map>
-                  <key>name</key>
-                  <string>Options</string>
                   <key>type</key>
                   <string>list</string>
-                  <key>description</key>
-                  <string>No options yet.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Evade a specified target.</string>
-            <key>description</key>
-            <string>Characters will (roughly) try to hide from their pursuers if there is a good hiding spot along their fleeing path. Hiding means no direct line of sight from the head of the character (centre of the top of its physics bounding box) to the head of its pursuer and no direct path between the two on the navigation-mesh.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Evade a specified target.\nCharacters will (roughly) try to hide from their pursuers if there is a good hiding spot along their fleeing path. Hiding means no direct line of sight from the head of the character (centre of the top of its physics bounding box) to the head of its pursuer and no direct path between the two on the navigation-mesh.</string>
          </map>
          <key>llExecCharacterCmd</key>
          <map>
@@ -8220,28 +8044,24 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Command</key>
                <map>
-                  <key>name</key>
-                  <string>Command</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Command to send.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Options</key>
                <map>
-                  <key>name</key>
-                  <string>Options</string>
                   <key>type</key>
                   <string>list</string>
-                  <key>description</key>
-                  <string>Height for CHARACTER_CMD_JUMP.</string>
-               </map>
-            </array>
-            <key>summary</key>
-            <string>Execute a character command.</string>
-            <key>description</key>
-            <string>Send a command to the path system.\n
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Execute a character command.\nSend a command to the path system.\n
 			Currently only supports stopping the current path-finding operation or causing the character to jump.</string>
          </map>
          <key>llFabs</key>
@@ -8253,20 +8073,17 @@
             <key>return</key>
             <string>float</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Value</key>
                <map>
-                  <key>name</key>
-                  <string>Value</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the positive version of Value.</string>
-            <key>description</key>
-            <string>Returns the absolute value of Value.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the positive version of Value.\nReturns the absolute value of Value.</string>
          </map>
          <key>llFleeFrom</key>
          <map>
@@ -8277,36 +8094,31 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Source</key>
                <map>
-                  <key>name</key>
-                  <string>Source</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
-                  <string>Global coordinate from which to flee.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Distance</key>
                <map>
-                  <key>name</key>
-                  <string>Distance</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
-                  <string>Distance in meters to flee from the source.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Options</key>
                <map>
-                  <key>name</key>
-                  <string>Options</string>
                   <key>type</key>
                   <string>list</string>
-                  <key>description</key>
-                  <string>No options available at this time.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Flee from a point.</string>
-            <key>description</key>
-            <string>Directs a character (llCreateCharacter) to keep away from a defined position in the region or adjacent regions.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Flee from a point.\nDirects a character (llCreateCharacter) to keep away from a defined position in the region or adjacent regions.</string>
          </map>
          <key>llFloor</key>
          <map>
@@ -8317,20 +8129,17 @@
             <key>return</key>
             <string>integer</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Value</key>
                <map>
-                  <key>name</key>
-                  <string>Value</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns largest integer value &lt;= Value.</string>
-            <key>description</key>
-            <string>Returns largest integer value &lt;= Value.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns largest integer value &lt;= Value.\nReturns largest integer value &lt;= Value.</string>
          </map>
          <key>llForceMouselook</key>
          <map>
@@ -8341,21 +8150,17 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Enable</key>
                <map>
-                  <key>name</key>
-                  <string>Enable</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Boolean, if TRUE when an avatar sits on the prim, the avatar will be forced into mouse-look mode.
-				FALSE is the default setting and will undo a previously set TRUE or do nothing.</string>
-               </map>
-            </array>
-            <key>summary</key>
-            <string>If Enable is TRUE any avatar that sits on this object is forced into mouse-look mode.</string>
-            <key>description</key>
-            <string>After calling this function with Enable set to TRUE, any agent sitting down on the prim will be forced into mouse-look.\n
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>If Enable is TRUE any avatar that sits on this object is forced into mouse-look mode.\nAfter calling this function with Enable set to TRUE, any agent sitting down on the prim will be forced into mouse-look.\n
 			Just like llSitTarget, this changes a permanent property of the prim (not the object) and needs to be reset by calling this function with Enable set to FALSE in order to disable it.</string>
          </map>
          <key>llFrand</key>
@@ -8367,20 +8172,17 @@
             <key>return</key>
             <string>float</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Magnitude</key>
                <map>
-                  <key>name</key>
-                  <string>Magnitude</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns a pseudo random number in the range [0, Magnitude] or [Magnitude, 0].</string>
-            <key>description</key>
-            <string>Returns a pseudo-random number between [0, Magnitude].</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns a pseudo random number in the range [0, Magnitude] or [Magnitude, 0].\nReturns a pseudo-random number between [0, Magnitude].</string>
          </map>
          <key>llGetAccel</key>
          <map>
@@ -8391,11 +8193,9 @@
             <key>return</key>
             <string>vector</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Returns the acceleration of the object relative to the region's axes.</string>
-            <key>description</key>
-            <string>Gets the acceleration of the object.</string>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the acceleration of the object relative to the region's axes.\nGets the acceleration of the object.</string>
          </map>
          <key>llGetAgentInfo</key>
          <map>
@@ -8406,21 +8206,18 @@
             <key>return</key>
             <string>integer</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>AvatarID</key>
                <map>
-                  <key>name</key>
-                  <string>AvatarID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
+            </map>
+            <key>tooltip</key>
             <string>Returns an integer bit-field containing the agent information about id.\n
-				Returns AGENT_FLYING, AGENT_ATTACHMENTS, AGENT_SCRIPTED, AGENT_SITTING, AGENT_ON_OBJECT, AGENT_MOUSELOOK, AGENT_AWAY, AGENT_BUSY, AGENT_TYPING, AGENT_CROUCHING, AGENT_ALWAYS_RUN, AGENT_WALKING and/or AGENT_IN_AIR.</string>
-            <key>description</key>
-            <string>Returns information about the given agent ID as a bit-field of agent info constants.</string>
+				Returns AGENT_FLYING, AGENT_ATTACHMENTS, AGENT_SCRIPTED, AGENT_SITTING, AGENT_ON_OBJECT, AGENT_MOUSELOOK, AGENT_AWAY, AGENT_BUSY, AGENT_TYPING, AGENT_CROUCHING, AGENT_ALWAYS_RUN, AGENT_WALKING and/or AGENT_IN_AIR.\nReturns information about the given agent ID as a bit-field of agent info constants.</string>
          </map>
          <key>llGetAgentLanguage</key>
          <map>
@@ -8431,20 +8228,17 @@
             <key>return</key>
             <string>string</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>AvatarID</key>
                <map>
-                  <key>name</key>
-                  <string>AvatarID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the language code of the preferred interface language of the avatar.</string>
-            <key>description</key>
-            <string>Returns a string that is the language code of the preferred interface language of the resident.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the language code of the preferred interface language of the avatar.\nReturns a string that is the language code of the preferred interface language of the resident.</string>
          </map>
          <key>llGetAgentList</key>
          <map>
@@ -8455,28 +8249,24 @@
             <key>return</key>
             <string>list</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Scope</key>
                <map>
-                  <key>name</key>
-                  <string>Scope</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>The scope (region, parcel, parcel same owner) to return agents for.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Options</key>
                <map>
-                  <key>name</key>
-                  <string>Options</string>
                   <key>type</key>
                   <string>list</string>
-                  <key>description</key>
-                  <string>List of options to apply. Current unused.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Requests a list of agents currently in the region, limited by the scope parameter.</string>
-            <key>description</key>
-            <string>Returns a list [key UUID-0, key UUID-1, ..., key UUID-n] or [string error_msg] - returns avatar keys for all agents in the region limited to the area(s) specified by scope</string>
+            </map>
+            <key>tooltip</key>
+            <string>Requests a list of agents currently in the region, limited by the scope parameter.\nReturns a list [key UUID-0, key UUID-1, ..., key UUID-n] or [string error_msg] - returns avatar keys for all agents in the region limited to the area(s) specified by scope</string>
          </map>
          <key>llGetAgentSize</key>
          <map>
@@ -8487,20 +8277,17 @@
             <key>return</key>
             <string>vector</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>AvatarID</key>
                <map>
-                  <key>name</key>
-                  <string>AvatarID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>If the avatar is in the same region, returns the size of the bounding box of the requested avatar by id, otherwise returns ZERO_VECTOR.</string>
-            <key>description</key>
-            <string>If the agent is in the same region as the object, returns the size of the avatar.</string>
+            </map>
+            <key>tooltip</key>
+            <string>If the avatar is in the same region, returns the size of the bounding box of the requested avatar by id, otherwise returns ZERO_VECTOR.\nIf the agent is in the same region as the object, returns the size of the avatar.</string>
          </map>
          <key>llGetAlpha</key>
          <map>
@@ -8511,20 +8298,17 @@
             <key>return</key>
             <string>float</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Face</key>
                <map>
-                  <key>name</key>
-                  <string>Face</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the alpha value of Face.</string>
-            <key>description</key>
-            <string>Returns the 'alpha' of the given face. If face is ALL_SIDES the value returned is the mean average of all faces.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the alpha value of Face.\nReturns the 'alpha' of the given face. If face is ALL_SIDES the value returned is the mean average of all faces.</string>
          </map>
          <key>llGetAndResetTime</key>
          <map>
@@ -8535,11 +8319,9 @@
             <key>return</key>
             <string>float</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Returns the script time in seconds and then resets the script timer to zero.</string>
-            <key>description</key>
-            <string>Gets the time in seconds since starting and resets the time to zero.</string>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the script time in seconds and then resets the script timer to zero.\nGets the time in seconds since starting and resets the time to zero.</string>
          </map>
          <key>llGetAnimation</key>
          <map>
@@ -8550,20 +8332,17 @@
             <key>return</key>
             <string>string</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>AvatarID</key>
                <map>
-                  <key>name</key>
-                  <string>AvatarID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the name of the currently playing locomotion animation for the avatar id.</string>
-            <key>description</key>
-            <string>Returns the currently playing animation for the specified avatar ID.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the name of the currently playing locomotion animation for the avatar id.\nReturns the currently playing animation for the specified avatar ID.</string>
          </map>
          <key>llGetAnimationList</key>
          <map>
@@ -8574,20 +8353,17 @@
             <key>return</key>
             <string>list</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>AvatarID</key>
                <map>
-                  <key>name</key>
-                  <string>AvatarID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns a list of keys of playing animations for an avatar.</string>
-            <key>description</key>
-            <string>Returns a list of keys of all playing animations for the specified avatar ID.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns a list of keys of playing animations for an avatar.\nReturns a list of keys of all playing animations for the specified avatar ID.</string>
          </map>
          <key>llGetAttached</key>
          <map>
@@ -8598,11 +8374,9 @@
             <key>return</key>
             <string>integer</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Returns the object's attachment point, or 0 if not attached.</string>
-            <key>description</key>
-            <string>Returns the object attachment point, or 0 if not attached.</string>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the object's attachment point, or 0 if not attached.\nReturns the object attachment point, or 0 if not attached.</string>
          </map>
          <key>llGetBoundingBox</key>
          <map>
@@ -8613,20 +8387,17 @@
             <key>return</key>
             <string>list</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>ID</key>
                <map>
-                  <key>name</key>
-                  <string>ID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the bounding box around the object (including any linked prims) relative to its root prim, as a list in the format [ (vector) min_corner, (vector) max_corner ].</string>
-            <key>description</key>
-            <string>Returns the bounding box around the object or avatar with the specified key (including any linked prims) relative to the\n
+            </map>
+            <key>tooltip</key>
+            <string>Returns the bounding box around the object (including any linked prims) relative to its root prim, as a list in the format [ (vector) min_corner, (vector) max_corner ].\nReturns the bounding box around the object or avatar with the specified key (including any linked prims) relative to the\n
 			root prim, as a list: [ (vector) min_corner, (vector) max_corner ]</string>
          </map>
          <key>llGetCameraPos</key>
@@ -8638,11 +8409,9 @@
             <key>return</key>
             <string>vector</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Returns the current camera position for the agent the task has permissions for.</string>
-            <key>description</key>
-            <string>Returns the position of the camera, of the user that granted the script PERMISSION_TRACK_CAMERA. If no user has granted the permission, it returns ZERO_VECTOR.</string>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the current camera position for the agent the task has permissions for.\nReturns the position of the camera, of the user that granted the script PERMISSION_TRACK_CAMERA. If no user has granted the permission, it returns ZERO_VECTOR.</string>
          </map>
          <key>llGetCameraRot</key>
          <map>
@@ -8653,11 +8422,9 @@
             <key>return</key>
             <string>rotation</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Returns the current camera orientation for the agent the task has permissions for.</string>
-            <key>description</key>
-            <string>Returns the rotation of the camera, of the user who has granted this script PERMISSION_TRACK_CAMERA. If no user has granted the permission, it returns ZERO_ROTATION.\n
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the current camera orientation for the agent the task has permissions for.\nReturns the rotation of the camera, of the user who has granted this script PERMISSION_TRACK_CAMERA. If no user has granted the permission, it returns ZERO_ROTATION.\n
 			The key of the user whose camera is being tracked, can be obtained using llGetPermissionsKey.</string>
          </map>
          <key>llGetCenterOfMass</key>
@@ -8669,11 +8436,9 @@
             <key>return</key>
             <string>vector</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Returns the prim's centre of mass (unless called from the root prim, where it returns the object's centre of mass).</string>
-            <key>description</key>
-            <string>Returns the prim's centre of mass (unless called from the root prim, where it returns the object's centre of mass).</string>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the prim's centre of mass (unless called from the root prim, where it returns the object's centre of mass).\nReturns the prim's centre of mass (unless called from the root prim, where it returns the object's centre of mass).</string>
          </map>
          <key>llGetClosestNavPoint</key>
          <map>
@@ -8684,28 +8449,24 @@
             <key>return</key>
             <string>list</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Point</key>
                <map>
-                  <key>name</key>
-                  <string>Point</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
-                  <string>A point in region-local space.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Options</key>
                <map>
-                  <key>name</key>
-                  <string>Options</string>
                   <key>type</key>
                   <string>list</string>
-                  <key>description</key>
-                  <string>No options at this time.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Get the closest navigable point to the point provided.</string>
-            <key>description</key>
-            <string>The function accepts a point in region-local space (like all the other path-finding methods) and returns either an empty list or a list containing a single vector which is the closest point on the navigation-mesh to the point provided.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Get the closest navigable point to the point provided.\nThe function accepts a point in region-local space (like all the other path-finding methods) and returns either an empty list or a list containing a single vector which is the closest point on the navigation-mesh to the point provided.</string>
          </map>
          <key>llGetColor</key>
          <map>
@@ -8716,20 +8477,17 @@
             <key>return</key>
             <string>vector</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Face</key>
                <map>
-                  <key>name</key>
-                  <string>Face</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the color on Face.</string>
-            <key>description</key>
-            <string>Returns the colour of Face as a vector of red, green, and blue values between 0 and 1. If face is ALL_SIDES the colour returned is the mean average of each channel.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the color on Face.\nReturns the colour of Face as a vector of red, green, and blue values between 0 and 1. If face is ALL_SIDES the colour returned is the mean average of each channel.</string>
          </map>
          <key>llGetCreator</key>
          <map>
@@ -8740,11 +8498,9 @@
             <key>return</key>
             <string>key</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Returns a key for the creator of the prim.</string>
-            <key>description</key>
-            <string>Returns the key of the object's original creator. Similar to llGetOwner.</string>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns a key for the creator of the prim.\nReturns the key of the object's original creator. Similar to llGetOwner.</string>
          </map>
          <key>llGetDate</key>
          <map>
@@ -8755,11 +8511,9 @@
             <key>return</key>
             <string>string</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Returns the current date in the UTC time zone in the format YYYY-MM-DD.</string>
-            <key>description</key>
-            <string>Returns the current UTC date as YYYY-MM-DD.</string>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the current date in the UTC time zone in the format YYYY-MM-DD.\nReturns the current UTC date as YYYY-MM-DD.</string>
          </map>
          <key>llGetDisplayName</key>
          <map>
@@ -8770,20 +8524,17 @@
             <key>return</key>
             <string>string</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>AvatarID</key>
                <map>
-                  <key>name</key>
-                  <string>AvatarID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
-                  <string>Avatar UUID that is in the same region, or is otherwise known to the region.</string>
-               </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the name of an avatar, if the avatar is in the current region, and the name has been cached, otherwise the same as llGetUsername.	Use llRequestDisplayName if you absolutely must have the display name.</string>
-            <key>description</key>
-            <string>Returns a string that is the non-unique display name of the avatar specified by AvatarID.\n
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the name of an avatar, if the avatar is in the current region, and the name has been cached, otherwise the same as llGetUsername.	Use llRequestDisplayName if you absolutely must have the display name.\nReturns a string that is the non-unique display name of the avatar specified by AvatarID.\n
 			AvatarID must specify a valid avatar key, present in or otherwise known to the region in which the script is running, otherwise an empty string is returned.\n
 			This function will still return a valid display name if the avatar is a child agent of the region (i.e., in an adjacent region, but presently able to see into the one the script is in), or for a short period after the avatar leaves the region (specifically, when the client completely disconnects from the region, either as a main or child agent).</string>
          </map>
@@ -8796,11 +8547,9 @@
             <key>return</key>
             <string>float</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Returns how much energy is in the object as a percentage of maximum.</string>
-            <key>description</key>
-            <string>Returns how much energy is in the object as a percentage of maximum.</string>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns how much energy is in the object as a percentage of maximum.\nReturns how much energy is in the object as a percentage of maximum.</string>
          </map>
          <key>llGetEnv</key>
          <map>
@@ -8811,20 +8560,17 @@
             <key>return</key>
             <string>string</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>DataRequest</key>
                <map>
-                  <key>name</key>
-                  <string>DataRequest</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
-                  <string>The type of data to request. Any other string will cause an empty string to be returned.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns a string with the requested data about the region.</string>
-            <key>description</key>
-            <string>Returns a string with the requested data about the region.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns a string with the requested data about the region.\nReturns a string with the requested data about the region.</string>
          </map>
          <key>llGetForce</key>
          <map>
@@ -8835,11 +8581,9 @@
             <key>return</key>
             <string>vector</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Returns the force (if the script is physical).</string>
-            <key>description</key>
-            <string>Returns the current force if the script is physical.</string>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the force (if the script is physical).\nReturns the current force if the script is physical.</string>
          </map>
          <key>llGetFreeMemory</key>
          <map>
@@ -8850,11 +8594,9 @@
             <key>return</key>
             <string>integer</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Returns the number of free bytes of memory the script can use.</string>
-            <key>description</key>
-            <string>Returns the available free space for the current script. This is inaccurate with LSO.</string>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the number of free bytes of memory the script can use.\nReturns the available free space for the current script. This is inaccurate with LSO.</string>
          </map>
          <key>llGetFreeURLs</key>
          <map>
@@ -8865,11 +8607,9 @@
             <key>return</key>
             <string>integer</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Returns the number of available URLs for the current script.</string>
-            <key>description</key>
-            <string>Returns an integer that is the number of available URLs.</string>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the number of available URLs for the current script.\nReturns an integer that is the number of available URLs.</string>
          </map>
          <key>llGetGeometricCenter</key>
          <map>
@@ -8880,11 +8620,9 @@
             <key>return</key>
             <string>vector</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Returns the geometric center of the linked set the script is attached to.</string>
-            <key>description</key>
-            <string>Returns the geometric centre of the linked set the script is in relative to the object's position (the position of the root prim of a linked set).\n
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the geometric center of the linked set the script is attached to.\nReturns the geometric centre of the linked set the script is in relative to the object's position (the position of the root prim of a linked set).\n
 			To get the object's position, use llGetPos.</string>
          </map>
          <key>llGetGMTclock</key>
@@ -8896,11 +8634,9 @@
             <key>return</key>
             <string>float</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Returns the time in seconds since midnight GMT.</string>
-            <key>description</key>
-            <string>Gets the time in seconds since midnight in GMT/UTC.</string>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the time in seconds since midnight GMT.\nGets the time in seconds since midnight in GMT/UTC.</string>
          </map>
          <key>llGetHTTPHeader</key>
          <map>
@@ -8911,28 +8647,24 @@
             <key>return</key>
             <string>string</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>HTTPRequestID</key>
                <map>
-                  <key>name</key>
-                  <string>HTTPRequestID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
-                  <string>A valid HTTP request key</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Header</key>
                <map>
-                  <key>name</key>
-                  <string>Header</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
-                  <string>Header value name</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the value for header for request_id.</string>
-            <key>description</key>
-            <string>Returns a string that is the value of the Header for HTTPRequestID.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the value for header for request_id.\nReturns a string that is the value of the Header for HTTPRequestID.</string>
          </map>
          <key>llGetInventoryCreator</key>
          <map>
@@ -8943,20 +8675,17 @@
             <key>return</key>
             <string>key</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>InventoryItem</key>
                <map>
-                  <key>name</key>
-                  <string>InventoryItem</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns a key for the creator of the inventory item.</string>
-            <key>description</key>
-            <string>This function returns the UUID of the creator of item. If item is not found in inventory, the object says "No item named 'name' ".</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns a key for the creator of the inventory item.\nThis function returns the UUID of the creator of item. If item is not found in inventory, the object says "No item named 'name' ".</string>
          </map>
          <key>llGetInventoryKey</key>
          <map>
@@ -8967,20 +8696,17 @@
             <key>return</key>
             <string>key</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>InventoryItem</key>
                <map>
-                  <key>name</key>
-                  <string>InventoryItem</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the key that is the UUID of the inventory named.</string>
-            <key>description</key>
-            <string>Returns the key of the inventory named.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the key that is the UUID of the inventory named.\nReturns the key of the inventory named.</string>
          </map>
          <key>llGetInventoryName</key>
          <map>
@@ -8991,28 +8717,24 @@
             <key>return</key>
             <string>string</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>InventoryType</key>
                <map>
-                  <key>name</key>
-                  <string>InventoryType</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>inventory item type</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Index</key>
                <map>
-                  <key>name</key>
-                  <string>Index</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Index number of inventory item.</string>
-               </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the name of the inventory item number of a given type.</string>
-            <key>description</key>
-            <string>Get the name of the inventory Index number of InventoryType.\n
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the name of the inventory item number of a given type.\nGet the name of the inventory Index number of InventoryType.\n
 			Use the inventory constants INVENTORY_* to specify the type.</string>
          </map>
          <key>llGetInventoryNumber</key>
@@ -9024,20 +8746,17 @@
             <key>return</key>
             <string>integer</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>InventoryType</key>
                <map>
-                  <key>name</key>
-                  <string>InventoryType</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Inventory item type</string>
-               </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the number of items of a given type (INVENTORY_* flag) in the prim's inventory.</string>
-            <key>description</key>
-            <string>Get the number of items of InventoryType in the object inventory.\n
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the number of items of a given type (INVENTORY_* flag) in the prim's inventory.\nGet the number of items of InventoryType in the object inventory.\n
 			Use the inventory constants INVENTORY_* to specify the type.</string>
          </map>
          <key>llGetInventoryPermMask</key>
@@ -9049,28 +8768,24 @@
             <key>return</key>
             <string>integer</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>InventoryItem</key>
                <map>
-                  <key>name</key>
-                  <string>InventoryItem</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
-                  <string>Inventory item name.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>BitMask</key>
                <map>
-                  <key>name</key>
-                  <string>BitMask</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>MASK_BASE, MASK_OWNER, MASK_GROUP, MASK_EVERYONE or MASK_NEXT</string>
-               </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the requested permission mask for the inventory item.</string>
-            <key>description</key>
-            <string>Returns the requested permission mask for the inventory item defined by InventoryItem. If item is not in the object's inventory, llGetInventoryPermMask returns FALSE and causes the object to say "No item named '&lt;item&gt;'", where "&lt;item&gt;" is item.\n
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the requested permission mask for the inventory item.\nReturns the requested permission mask for the inventory item defined by InventoryItem. If item is not in the object's inventory, llGetInventoryPermMask returns FALSE and causes the object to say "No item named '&lt;item&gt;'", where "&lt;item&gt;" is item.\n
 			If this is used to determine whether or not an inventory item exists within the object, it will have the side effect of spamming chat. So please don't ;-)</string>
          </map>
          <key>llGetInventoryType</key>
@@ -9082,20 +8797,17 @@
             <key>return</key>
             <string>integer</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>InventoryItem</key>
                <map>
-                  <key>name</key>
-                  <string>InventoryItem</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the type of the inventory item named.</string>
-            <key>description</key>
-            <string>Returns the type of the inventory item named.\n
+            </map>
+            <key>tooltip</key>
+            <string>Returns the type of the inventory item named.\nReturns the type of the inventory item named.\n
 			Remember, like all inventory functions, llGetInventoryType is case-sensitive.</string>
          </map>
          <key>llGetKey</key>
@@ -9107,11 +8819,9 @@
             <key>return</key>
             <string>key</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Returns the key of the prim the script is attached to.</string>
-            <key>description</key>
-            <string>Get the key for the object which has this script.</string>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the key of the prim the script is attached to.\nGet the key for the object which has this script.</string>
          </map>
          <key>llGetLandOwnerAt</key>
          <map>
@@ -9122,20 +8832,17 @@
             <key>return</key>
             <string>key</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Position</key>
                <map>
-                  <key>name</key>
-                  <string>Position</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the key of the land owner, returns NULL_KEY if public.</string>
-            <key>description</key>
-            <string>Returns the key of the land owner at Position, or NULL_KEY if public.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the key of the land owner, returns NULL_KEY if public.\nReturns the key of the land owner at Position, or NULL_KEY if public.</string>
          </map>
          <key>llGetLinkKey</key>
          <map>
@@ -9146,20 +8853,17 @@
             <key>return</key>
             <string>key</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>LinkNumber</key>
                <map>
-                  <key>name</key>
-                  <string>LinkNumber</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the key of the linked prim LinkNumber.</string>
-            <key>description</key>
-            <string>Returns the key of LinkNumber in the link set.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the key of the linked prim LinkNumber.\nReturns the key of LinkNumber in the link set.</string>
          </map>
          <key>llGetLinkMedia</key>
          <map>
@@ -9170,36 +8874,31 @@
             <key>return</key>
             <string>list</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>LinkNumber</key>
                <map>
-                  <key>name</key>
-                  <string>LinkNumber</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Face</key>
                <map>
-                  <key>name</key>
-                  <string>Face</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>The prim's side number</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Parameters</key>
                <map>
-                  <key>name</key>
-                  <string>Parameters</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>A list of PRIM_* property constants to return values of.</string>
-               </map>
-            </array>
-            <key>summary</key>
-            <string>Get the media parameters for a particular face on linked prim, given the desired list of parameter names. Returns a list of values in the order requested.	Returns an empty list if no media exists on the face.</string>
-            <key>description</key>
-            <string>Get the desired list of named media parameters, for a particular face, of a linked prim.\n
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Get the media parameters for a particular face on linked prim, given the desired list of parameter names. Returns a list of values in the order requested.	Returns an empty list if no media exists on the face.\nGet the desired list of named media parameters, for a particular face, of a linked prim.\n
 				Returns a list of values in the order requested.</string>
          </map>
          <key>llGetLinkName</key>
@@ -9211,20 +8910,17 @@
             <key>return</key>
             <string>string</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>LinkNumber</key>
                <map>
-                  <key>name</key>
-                  <string>LinkNumber</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the name of LinkNumber in a link set.</string>
-            <key>description</key>
-            <string>Returns the name of LinkNumber the link set.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the name of LinkNumber in a link set.\nReturns the name of LinkNumber the link set.</string>
          </map>
          <key>llGetLinkNumber</key>
          <map>
@@ -9235,11 +8931,9 @@
             <key>return</key>
             <string>integer</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Returns the link number of the prim containing the script (0 means not linked, 1 the prim is the root, 2 the prim is the first child, etc.).</string>
-            <key>description</key>
-            <string>Returns the link number of the prim containing the script. 0 means no link, 1 the root, 2 for first child, etc.</string>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the link number of the prim containing the script (0 means not linked, 1 the prim is the root, 2 the prim is the first child, etc.).\nReturns the link number of the prim containing the script. 0 means no link, 1 the root, 2 for first child, etc.</string>
          </map>
          <key>llGetLinkNumberOfSides</key>
          <map>
@@ -9250,20 +8944,17 @@
             <key>return</key>
             <string>integer</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>LinkNumber</key>
                <map>
-                  <key>name</key>
-                  <string>LinkNumber</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the number of sides of the specified linked prim.</string>
-            <key>description</key>
-            <string>Returns an integer that is the number of faces (or sides) of the prim link.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the number of sides of the specified linked prim.\nReturns an integer that is the number of faces (or sides) of the prim link.</string>
          </map>
          <key>llGetLinkPrimitiveParams</key>
          <map>
@@ -9274,28 +8965,24 @@
             <key>return</key>
             <string>list</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>LinkNumber</key>
                <map>
-                  <key>name</key>
-                  <string>LinkNumber</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Parameters</key>
                <map>
-                  <key>name</key>
-                  <string>Parameters</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>PRIM_* flags.</string>
-               </map>
-            </array>
-            <key>summary</key>
-            <string>Get primitive parameters for LinkNumber based on rules.</string>
-            <key>description</key>
-            <string>Identical to llGetPrimitiveParams except that it acts on the prim specified by the link number given.\n
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Get primitive parameters for LinkNumber based on rules.\nIdentical to llGetPrimitiveParams except that it acts on the prim specified by the link number given.\n
 			Returns the list of primitive attributes requested in the Parameters list for link.\n
 			PRIM_* flags can be broken into three categories, face flags, prim flags, and object flags.\n
 			* Supplying a prim or object flag will return that flags attributes.\n
@@ -9310,28 +8997,24 @@
             <key>return</key>
             <string>integer</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>ListVariable</key>
                <map>
-                  <key>name</key>
-                  <string>ListVariable</string>
                   <key>type</key>
                   <string>list</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Index</key>
                <map>
-                  <key>name</key>
-                  <string>Index</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the type of the index entry in the list (TYPE_INTEGER, TYPE_FLOAT, TYPE_STRING, TYPE_KEY, TYPE_VECTOR, TYPE_ROTATION, or TYPE_INVALID if index is off list).</string>
-            <key>description</key>
-            <string>Returns the type of the variable at Index in ListVariable.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the type of the index entry in the list (TYPE_INTEGER, TYPE_FLOAT, TYPE_STRING, TYPE_KEY, TYPE_VECTOR, TYPE_ROTATION, or TYPE_INVALID if index is off list).\nReturns the type of the variable at Index in ListVariable.</string>
          </map>
          <key>llGetListLength</key>
          <map>
@@ -9342,20 +9025,17 @@
             <key>return</key>
             <string>integer</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>ListVariable</key>
                <map>
-                  <key>name</key>
-                  <string>ListVariable</string>
                   <key>type</key>
                   <string>list</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the number of elements in the list.</string>
-            <key>description</key>
-            <string>Returns the number of elements in ListVariable.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the number of elements in the list.\nReturns the number of elements in ListVariable.</string>
          </map>
          <key>llGetLocalPos</key>
          <map>
@@ -9366,11 +9046,9 @@
             <key>return</key>
             <string>vector</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Returns the position relative to the root.</string>
-            <key>description</key>
-            <string>Returns the local position of a child object relative to the root.</string>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the position relative to the root.\nReturns the local position of a child object relative to the root.</string>
          </map>
          <key>llGetLocalRot</key>
          <map>
@@ -9381,11 +9059,9 @@
             <key>return</key>
             <string>rotation</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Returns the rotation local to the root.</string>
-            <key>description</key>
-            <string>Returns the local rotation of a child object relative to the root.</string>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the rotation local to the root.\nReturns the local rotation of a child object relative to the root.</string>
          </map>
          <key>llGetMass</key>
          <map>
@@ -9396,11 +9072,9 @@
             <key>return</key>
             <string>float</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Returns the mass of object that the script is attached to.</string>
-            <key>description</key>
-            <string>Returns the scripted object's mass. When called from a script in a link-set, the parent will return the sum of the link-set weights, while a child will return just its own mass. When called from a script inside an attachment, this function will return the mass of the avatar it's attached to, not its own.</string>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the mass of object that the script is attached to.\nReturns the scripted object's mass. When called from a script in a link-set, the parent will return the sum of the link-set weights, while a child will return just its own mass. When called from a script inside an attachment, this function will return the mass of the avatar it's attached to, not its own.</string>
          </map>
          <key>llGetMassMKS</key>
          <map>
@@ -9411,11 +9085,9 @@
             <key>return</key>
             <string>float</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Acts as llGetMass(), except that the units of the value returned are Kg.</string>
-            <key>description</key>
-            <string>Acts as llGetMass(), except that the units of the value returned are Kg.</string>
+            <undef/>
+            <key>tooltip</key>
+            <string>Acts as llGetMass(), except that the units of the value returned are Kg.\nActs as llGetMass(), except that the units of the value returned are Kg.</string>
          </map>
          <key>llGetMemoryLimit</key>
          <map>
@@ -9426,11 +9098,9 @@
             <key>return</key>
             <string>integer</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Get the maximum memory a script can use, in bytes.</string>
-            <key>description</key>
-            <string>Get the maximum memory a script can use.\n
+            <undef/>
+            <key>tooltip</key>
+            <string>Get the maximum memory a script can use, in bytes.\nGet the maximum memory a script can use.\n
 			Returns the integer amount of memory the script can use in bytes.</string>
          </map>
          <key>llGetNextEmail</key>
@@ -9442,28 +9112,24 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Address</key>
                <map>
-                  <key>name</key>
-                  <string>Address</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Subject</key>
                <map>
-                  <key>name</key>
-                  <string>Subject</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Get the next waiting email with appropriate address and/or subject (if blank they are ignored).</string>
-            <key>description</key>
-            <string>Get the next waiting email with appropriate address and/or subject.\n
+            </map>
+            <key>tooltip</key>
+            <string>Get the next waiting email with appropriate address and/or subject (if blank they are ignored).\nGet the next waiting email with appropriate address and/or subject.\n
 				If the parameters are blank, they are not used for filtering.</string>
          </map>
          <key>llGetNotecardLine</key>
@@ -9475,28 +9141,24 @@
             <key>return</key>
             <string>key</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>NotecardName</key>
                <map>
-                  <key>name</key>
-                  <string>NotecardName</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>LineNumber</key>
                <map>
-                  <key>name</key>
-                  <string>LineNumber</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns line from NotecardName via the dataserver event.</string>
-            <key>description</key>
-            <string>This function fetches LineNumber from NotecardName and returns the data through the dataserver event. The line count starts at zero.\n
+            </map>
+            <key>tooltip</key>
+            <string>Returns line from NotecardName via the dataserver event.\nThis function fetches LineNumber from NotecardName and returns the data through the dataserver event. The line count starts at zero.\n
 				If the requested line is passed the end of the note-card the dataserver event will return the constant EOF string.\n
 				The key returned by this function is a unique identifier which will be supplied to the dataserver event in the requested parameter.</string>
          </map>
@@ -9509,20 +9171,17 @@
             <key>return</key>
             <string>key</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>NotecardName</key>
                <map>
-                  <key>name</key>
-                  <string>NotecardName</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns number of lines in NotecardName via the dataserver event (cast return value to integer).</string>
-            <key>description</key>
-            <string>Returns the number of lines in the note-card sNotecardName via the dataserver event. (Cast the value returned by the dataserver to an integer.)\n
+            </map>
+            <key>tooltip</key>
+            <string>Returns number of lines in NotecardName via the dataserver event (cast return value to integer).\nReturns the number of lines in the note-card sNotecardName via the dataserver event. (Cast the value returned by the dataserver to an integer.)\n
 			The key returned is a query ID for identifying the dataserver reply.</string>
          </map>
          <key>llGetNumberOfPrims</key>
@@ -9534,11 +9193,9 @@
             <key>return</key>
             <string>integer</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Returns the number of prims in a link set the script is attached to.</string>
-            <key>description</key>
-            <string>Returns the number of prims in (and avatars seated on) the object the script is in.</string>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the number of prims in a link set the script is attached to.\nReturns the number of prims in (and avatars seated on) the object the script is in.</string>
          </map>
          <key>llGetNumberOfSides</key>
          <map>
@@ -9549,11 +9206,9 @@
             <key>return</key>
             <string>integer</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Returns the number of faces (or sides) of the prim.</string>
-            <key>description</key>
-            <string>Returns the number of sides of the prim which has the script.</string>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the number of faces (or sides) of the prim.\nReturns the number of sides of the prim which has the script.</string>
          </map>
          <key>llGetObjectDesc</key>
          <map>
@@ -9564,11 +9219,9 @@
             <key>return</key>
             <string>string</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Returns the description of the prim the script is attached to.</string>
-            <key>description</key>
-            <string>Returns the description of the scripted object/prim. You can set the description using llSetObjectDesc.</string>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the description of the prim the script is attached to.\nReturns the description of the scripted object/prim. You can set the description using llSetObjectDesc.</string>
          </map>
          <key>llGetObjectDetails</key>
          <map>
@@ -9579,29 +9232,25 @@
             <key>return</key>
             <string>list</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>ID</key>
                <map>
-                  <key>name</key>
-                  <string>ID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
-                  <string>Prim or avatar UUID that is in the same region.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Parameters</key>
                <map>
-                  <key>name</key>
-                  <string>Parameters</string>
                   <key>type</key>
                   <string>list</string>
-                  <key>description</key>
-                  <string>List of OBJECT_* flags.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>summary</key>
+            </map>
+            <key>tooltip</key>
             <string>Returns the object details specified in Parameters for the object with key ID.\n
-				Parameters are OBJECT_NAME, _DESC, _POS, _ROT, _VELOCITY, _OWNER, _GROUP, _CREATOR.</string>
-            <key>description</key>
-            <string>Returns a list of the details specified in Parameters for the object with key ID.</string>
+				Parameters are OBJECT_NAME, _DESC, _POS, _ROT, _VELOCITY, _OWNER, _GROUP, _CREATOR.\nReturns a list of the details specified in Parameters for the object with key ID.</string>
          </map>
          <key>llGetObjectMass</key>
          <map>
@@ -9612,20 +9261,17 @@
             <key>return</key>
             <string>float</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>ID</key>
                <map>
-                  <key>name</key>
-                  <string>ID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the mass of the avatar or object in the region.</string>
-            <key>description</key>
-            <string>Gets the mass of the object or avatar corresponding to ID.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the mass of the avatar or object in the region.\nGets the mass of the object or avatar corresponding to ID.</string>
          </map>
          <key>llGetObjectName</key>
          <map>
@@ -9636,11 +9282,9 @@
             <key>return</key>
             <string>string</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Returns the name of the prim which the script is attached to.</string>
-            <key>description</key>
-            <string>Returns the name of the prim (not object) which contains the script.</string>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the name of the prim which the script is attached to.\nReturns the name of the prim (not object) which contains the script.</string>
          </map>
          <key>llGetObjectPermMask</key>
          <map>
@@ -9651,20 +9295,17 @@
             <key>return</key>
             <string>integer</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>PermissionMask</key>
                <map>
-                  <key>name</key>
-                  <string>PermissionMask</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the requested permission mask for the root object the task is attached to.</string>
-            <key>description</key>
-            <string>Returns the requested permission mask for the root object the task is attached to.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the requested permission mask for the root object the task is attached to.\nReturns the requested permission mask for the root object the task is attached to.</string>
          </map>
          <key>llGetObjectPrimCount</key>
          <map>
@@ -9675,20 +9316,17 @@
             <key>return</key>
             <string>integer</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>ObjectID</key>
                <map>
-                  <key>name</key>
-                  <string>ObjectID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the total number of prims for an object in the region.</string>
-            <key>description</key>
-            <string>Returns the prim count for any object id in the same region.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the total number of prims for an object in the region.\nReturns the prim count for any object id in the same region.</string>
          </map>
          <key>llGetOmega</key>
          <map>
@@ -9699,11 +9337,9 @@
             <key>return</key>
             <string>vector</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Returns the rotation velocity in radians per second.</string>
-            <key>description</key>
-            <string>Returns a vector that is the rotation velocity of the object in radians per second.</string>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the rotation velocity in radians per second.\nReturns a vector that is the rotation velocity of the object in radians per second.</string>
          </map>
          <key>llGetOwner</key>
          <map>
@@ -9714,11 +9350,9 @@
             <key>return</key>
             <string>key</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Returns the object owner's UUID.</string>
-            <key>description</key>
-            <string>Returns the key for the owner of the object.</string>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the object owner's UUID.\nReturns the key for the owner of the object.</string>
          </map>
          <key>llGetOwnerKey</key>
          <map>
@@ -9729,20 +9363,17 @@
             <key>return</key>
             <string>key</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>ObjectID</key>
                <map>
-                  <key>name</key>
-                  <string>ObjectID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the owner of ObjectID.</string>
-            <key>description</key>
-            <string>Returns the key for the owner of object ObjectID.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the owner of ObjectID.\nReturns the key for the owner of object ObjectID.</string>
          </map>
          <key>llGetParcelDetails</key>
          <map>
@@ -9753,29 +9384,25 @@
             <key>return</key>
             <string>list</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Position</key>
                <map>
-                  <key>name</key>
-                  <string>Position</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
-                  <string>Location within the region.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>ParcelDetails</key>
                <map>
-                  <key>name</key>
-                  <string>ParcelDetails</string>
                   <key>type</key>
                   <string>list</string>
-                  <key>description</key>
-                  <string>List of details requested for the specified parcel location.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>summary</key>
+            </map>
+            <key>tooltip</key>
             <string>Returns the parcel details specified in ParcelDetails for the parcel at Position.\n
- 				Parameters is one or more of: PARCEL_DETAILS_NAME, _DESC, _OWNER, _GROUP, _AREA, _ID, _SEE_AVATARS.</string>
-            <key>description</key>
-            <string>Returns a list that is the parcel details specified in ParcelDetails (in the same order) for the parcel at Position.</string>
+ 				Parameters is one or more of: PARCEL_DETAILS_NAME, _DESC, _OWNER, _GROUP, _AREA, _ID, _SEE_AVATARS.\nReturns a list that is the parcel details specified in ParcelDetails (in the same order) for the parcel at Position.</string>
          </map>
          <key>llGetParcelFlags</key>
          <map>
@@ -9786,20 +9413,17 @@
             <key>return</key>
             <string>integer</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Position</key>
                <map>
-                  <key>name</key>
-                  <string>Position</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns a mask of the parcel flags (PARCEL_FLAG_*) for the parcel that includes the point Position.</string>
-            <key>description</key>
-            <string>Returns a bit-field specifying the parcel flags (PARCEL_FLAG_*) for the parcel at Position.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns a mask of the parcel flags (PARCEL_FLAG_*) for the parcel that includes the point Position.\nReturns a bit-field specifying the parcel flags (PARCEL_FLAG_*) for the parcel at Position.</string>
          </map>
          <key>llGetParcelMaxPrims</key>
          <map>
@@ -9810,28 +9434,24 @@
             <key>return</key>
             <string>integer</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Position</key>
                <map>
-                  <key>name</key>
-                  <string>Position</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
-                  <string>Region coordinates (z is ignored) of parcel.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>SimWide</key>
                <map>
-                  <key>name</key>
-                  <string>SimWide</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Boolean. If FALSE then the return is the maximum prims supported by the parcel. If TRUE then it is the combined number of prims on all parcels in the region owned by the specified parcel's owner.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the maximum number of prims allowed on the parcel at Position.</string>
-            <key>description</key>
-            <string>Returns an integer that is the maximum number of prims allowed on the parcel at Position.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the maximum number of prims allowed on the parcel at Position.\nReturns an integer that is the maximum number of prims allowed on the parcel at Position.</string>
          </map>
          <key>llGetParcelMusicURL</key>
          <map>
@@ -9842,11 +9462,9 @@
             <key>return</key>
             <string>string</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Gets the streaming audio URL for the parcel object is on.</string>
-            <key>description</key>
-            <string>Returns a string containing the parcel streaming audio URL.\n
+            <undef/>
+            <key>tooltip</key>
+            <string>Gets the streaming audio URL for the parcel object is on.\nReturns a string containing the parcel streaming audio URL.\n
 				The object owner, avatar or group, must also be the land owner.</string>
          </map>
          <key>llGetParcelPrimCount</key>
@@ -9858,37 +9476,32 @@
             <key>return</key>
             <string>integer</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Position</key>
                <map>
-                  <key>name</key>
-                  <string>Position</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
-                  <string>region coordinate</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Category</key>
                <map>
-                  <key>name</key>
-                  <string>Category</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>A PARCEL_COUNT_* flag.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>SimWide</key>
                <map>
-                  <key>name</key>
-                  <string>SimWide</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Boolean. If FALSE then the return is the maximum prims supported by the parcel. If TRUE then it is the combined number of prims on all parcels in the region owned by the specified parcel's owner.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>summary</key>
+            </map>
+            <key>tooltip</key>
             <string>Returns the number of prims on the parcel at Position of the given category.
-				Categories: PARCEL_COUNT_TOTAL, _OWNER, _GROUP, _OTHER, _SELECTED, _TEMP.</string>
-            <key>description</key>
-            <string>Returns the number of prims used on the parcel at Position which are in Category.\n
+				Categories: PARCEL_COUNT_TOTAL, _OWNER, _GROUP, _OTHER, _SELECTED, _TEMP.\nReturns the number of prims used on the parcel at Position which are in Category.\n
 				If SimWide is TRUE, it returns the number of objects for the entire region in the category specified.\n
 				If SimWide is FALSE, it returns the number of objects on this specific parcel in the category specified</string>
          </map>
@@ -9901,21 +9514,18 @@
             <key>return</key>
             <string>list</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Position</key>
                <map>
-                  <key>name</key>
-                  <string>Position</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
+            </map>
+            <key>tooltip</key>
             <string>Returns a list of all residents who own objects on the parcel at Position, with individual prim counts.
-				Requires owner-like permissions for the parcel.</string>
-            <key>description</key>
-            <string>Returns a strided list of keys and integers of up to 100 agents who own objects in the parcel at Position.\n
+				Requires owner-like permissions for the parcel.\nReturns a strided list of keys and integers of up to 100 agents who own objects in the parcel at Position.\n
 				The list is formatted as [ key agentKey1, integer agentCount1, key agentKey2, integer agentCount2, ... ], sorted by agent key.\n
 				The integers are counts of the number of prims (not objects) owned by the corresponding agents.\n
 				Only works when the object owner is in the region (likely the reason it doesn't work when deeded to group).</string>
@@ -9929,11 +9539,9 @@
             <key>return</key>
             <string>integer</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Returns an integer bit-field with the permissions that have been granted.</string>
-            <key>description</key>
-            <string>Returns an integer bit-field with the script permissions granted. e.g.:\n
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns an integer bit-field with the permissions that have been granted.\nReturns an integer bit-field with the script permissions granted. e.g.:\n
 				integer iPerms = llGetPermissions();\n
 				if (iPerms &amp; PERMISSION_DEBIT) {\n
 					llOwnerSay("Yay, I can steal your money!!");\n
@@ -9950,11 +9558,9 @@
             <key>return</key>
             <string>key</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Returns the key of the avatar that last granted permissions to the script.</string>
-            <key>description</key>
-            <string>Returns the key of the avatar that last granted or declined permissions to the script.\n
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the key of the avatar that last granted permissions to the script.\nReturns the key of the avatar that last granted or declined permissions to the script.\n
 				Returns NULL_KEY if permissions were never granted or declined.</string>
          </map>
          <key>llGetPhysicsMaterial</key>
@@ -9966,11 +9572,9 @@
             <key>return</key>
             <string>list</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Returns a list of the form [float gravity_multiplier, float restitution, float friction, float density].</string>
-            <key>description</key>
-            <string>Returns a list of the form [float gravity_multiplier, float restitution, float friction, float density].</string>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns a list of the form [float gravity_multiplier, float restitution, float friction, float density].\nReturns a list of the form [float gravity_multiplier, float restitution, float friction, float density].</string>
          </map>
          <key>llGetPos</key>
          <map>
@@ -9981,11 +9585,9 @@
             <key>return</key>
             <string>vector</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Returns the position of the task in region coordinates.</string>
-            <key>description</key>
-            <string>Returns the vector position of the task in region coordinates.</string>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the position of the task in region coordinates.\nReturns the vector position of the task in region coordinates.</string>
          </map>
          <key>llGetPrimitiveParams</key>
          <map>
@@ -9996,20 +9598,17 @@
             <key>return</key>
             <string>list</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Parameters</key>
                <map>
-                  <key>name</key>
-                  <string>Parameters</string>
                   <key>type</key>
                   <string>list</string>
-                  <key>description</key>
-                  <string>PRIM_* flags</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the primitive parameters specified in the parameters list.</string>
-            <key>description</key>
-            <string>Returns primitive parameters specified in the Parameters list.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the primitive parameters specified in the parameters list.\nReturns primitive parameters specified in the Parameters list.</string>
          </map>
          <key>llGetPrimMediaParams</key>
          <map>
@@ -10020,28 +9619,24 @@
             <key>return</key>
             <string>list</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Face</key>
                <map>
-                  <key>name</key>
-                  <string>Face</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>face number</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Parameters</key>
                <map>
-                  <key>name</key>
-                  <string>Parameters</string>
                   <key>type</key>
                   <string>list</string>
-                  <key>description</key>
-                  <string>a set PRIM_* flags (in no particular order)</string>
-               </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the media parameters for a particular face on an object, given the desired list of parameter names, in the order requested. Returns an empty list if no media exists on the face.</string>
-            <key>description</key>
-            <string>Get the media parameters for a particular face on an object, given the desired list of Parameters.\n
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the media parameters for a particular face on an object, given the desired list of parameter names, in the order requested. Returns an empty list if no media exists on the face.\nGet the media parameters for a particular face on an object, given the desired list of Parameters.\n
 				Returns a list of values in the order requested.\n
 				Returns an empty list if no media exists on the face.</string>
          </map>
@@ -10054,11 +9649,9 @@
             <key>return</key>
             <string>integer</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Returns the number of avatars in the region.</string>
-            <key>description</key>
-            <string>Returns an integer that is the number of avatars in the region.</string>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the number of avatars in the region.\nReturns an integer that is the number of avatars in the region.</string>
          </map>
          <key>llGetRegionCorner</key>
          <map>
@@ -10069,11 +9662,9 @@
             <key>return</key>
             <string>vector</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Returns a vector, in meters, that is the global location of the south-west corner of the region which the object is in.</string>
-            <key>description</key>
-            <string>Returns the Region-Corner of the simulator containing the task. The region-corner is a vector (values in meters) representing distance from the first region.</string>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns a vector, in meters, that is the global location of the south-west corner of the region which the object is in.\nReturns the Region-Corner of the simulator containing the task. The region-corner is a vector (values in meters) representing distance from the first region.</string>
          </map>
          <key>llGetRegionFlags</key>
          <map>
@@ -10084,11 +9675,9 @@
             <key>return</key>
             <string>integer</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Returns the region flags (REGION_FLAG_*) for the region the object is in.</string>
-            <key>description</key>
-            <string>Returns a bit-field specifying the region flags (REGION_FLAG_*) for the region the object is in.</string>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the region flags (REGION_FLAG_*) for the region the object is in.\nReturns a bit-field specifying the region flags (REGION_FLAG_*) for the region the object is in.</string>
          </map>
          <key>llGetRegionFPS</key>
          <map>
@@ -10099,11 +9688,9 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Returns the mean region frames per second.</string>
-            <key>description</key>
-            <string>Returns the mean region frames per second.</string>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the mean region frames per second.\nReturns the mean region frames per second.</string>
          </map>
          <key>llGetRegionName</key>
          <map>
@@ -10114,11 +9701,9 @@
             <key>return</key>
             <string>string</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Returns the current region name.</string>
-            <key>description</key>
-            <string>Returns the current region name.</string>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the current region name.\nReturns the current region name.</string>
          </map>
          <key>llGetRegionTimeDilation</key>
          <map>
@@ -10129,11 +9714,9 @@
             <key>return</key>
             <string>float</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Returns the current time dilation as a float between 0.0 (full dilation) and 1.0 (no dilation).</string>
-            <key>description</key>
-            <string>Returns the current time dilation as a float between 0.0 and 1.0.</string>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the current time dilation as a float between 0.0 (full dilation) and 1.0 (no dilation).\nReturns the current time dilation as a float between 0.0 and 1.0.</string>
          </map>
          <key>llGetRootPosition</key>
          <map>
@@ -10144,11 +9727,9 @@
             <key>return</key>
             <string>vector</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Returns the position (in region coordinates) of the root prim of the object which the script is attached to.</string>
-            <key>description</key>
-            <string>Gets the position (in region coordinates) of the root/parent prim of the object containing the script.\n
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the position (in region coordinates) of the root prim of the object which the script is attached to.\nGets the position (in region coordinates) of the root/parent prim of the object containing the script.\n
 			This is used to allow a child prim to determine where the root is.</string>
          </map>
          <key>llGetRootRotation</key>
@@ -10160,11 +9741,9 @@
             <key>return</key>
             <string>rotation</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Returns the rotation (relative to the region) of the root prim of the object which the script is attached to.</string>
-            <key>description</key>
-            <string>Gets the global rotation of the root object of the object script is attached to.</string>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the rotation (relative to the region) of the root prim of the object which the script is attached to.\nGets the global rotation of the root object of the object script is attached to.</string>
          </map>
          <key>llGetRot</key>
          <map>
@@ -10175,11 +9754,9 @@
             <key>return</key>
             <string>rotation</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Returns the rotation relative to the region's axes.</string>
-            <key>description</key>
-            <string>Returns the rotation.</string>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the rotation relative to the region's axes.\nReturns the rotation.</string>
          </map>
          <key>llGetScale</key>
          <map>
@@ -10190,11 +9767,9 @@
             <key>return</key>
             <string>vector</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Returns the scale of the prim.</string>
-            <key>description</key>
-            <string>Returns a vector that is the scale (dimensions) of the prim.</string>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the scale of the prim.\nReturns a vector that is the scale (dimensions) of the prim.</string>
          </map>
          <key>llGetScriptName</key>
          <map>
@@ -10205,11 +9780,9 @@
             <key>return</key>
             <string>string</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Returns the name of the script that this function is used in.</string>
-            <key>description</key>
-            <string>Returns the name of this script.</string>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the name of the script that this function is used in.\nReturns the name of this script.</string>
          </map>
          <key>llGetScriptState</key>
          <map>
@@ -10220,20 +9793,17 @@
             <key>return</key>
             <string>integer</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>ScriptName</key>
                <map>
-                  <key>name</key>
-                  <string>ScriptName</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns TRUE if the script named is running.</string>
-            <key>description</key>
-            <string>Returns TRUE if ScriptName is running.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns TRUE if the script named is running.\nReturns TRUE if ScriptName is running.</string>
          </map>
          <key>llGetSimStats</key>
          <map>
@@ -10244,20 +9814,17 @@
             <key>return</key>
             <string>float</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>StatType</key>
                <map>
-                  <key>name</key>
-                  <string>StatType</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Statistic type. Currently only SIM_STAT_PCT_CHARS_STEPPED is supported.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>summary</key>
+            </map>
+            <key>tooltip</key>
             <string>Returns a float that is the requested statistic.</string>
-            <key>description</key>
-            <string/>
          </map>
          <key>llGetSimulatorHostname</key>
          <map>
@@ -10268,11 +9835,9 @@
             <key>return</key>
             <string>string</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Returns the host-name of the machine which the script is running on (same as string in viewer Help dialog).</string>
-            <key>description</key>
-            <string>Returns the host name (server) of the region in which the scripted object is located.\n
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the host-name of the machine which the script is running on (same as string in viewer Help dialog).\nReturns the host name (server) of the region in which the scripted object is located.\n
 			For example, "sim225.agni.lindenlab.com".</string>
          </map>
          <key>llGetSPMaxMemory</key>
@@ -10284,11 +9849,9 @@
             <key>return</key>
             <string>integer</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Returns the maximum used memory for the current script. Only valid after using PROFILE_SCRIPT_MEMORY. Non-mono scripts always use 16k.</string>
-            <key>description</key>
-            <string>Returns the integer of the most bytes used while llScriptProfiler was last active.</string>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the maximum used memory for the current script. Only valid after using PROFILE_SCRIPT_MEMORY. Non-mono scripts always use 16k.\nReturns the integer of the most bytes used while llScriptProfiler was last active.</string>
          </map>
          <key>llGetStartParameter</key>
          <map>
@@ -10299,11 +9862,9 @@
             <key>return</key>
             <string>integer</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Returns an integer that is the script start parameter.</string>
-            <key>description</key>
-            <string>Returns the start parameter passed to llRezObject.\n
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns an integer that is the script start parameter.\nReturns the start parameter passed to llRezObject.\n
 			If the object was created from agent inventory, this function returns 0.</string>
          </map>
          <key>llGetStatus</key>
@@ -10315,20 +9876,17 @@
             <key>return</key>
             <string>integer</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>StatusFlag</key>
                <map>
-                  <key>name</key>
-                  <string>StatusFlag</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>A STATUS_* flag</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns value of status (STATUS_PHYSICS, STATUS_PHANTOM, STATUS_BLOCK_GRAB, STATUS_ROTATE_X, STATUS_ROTATE_Y, and/or STATUS_ROTATE_Z).</string>
-            <key>description</key>
-            <string>Returns the value of specified status.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns value of status (STATUS_PHYSICS, STATUS_PHANTOM, STATUS_BLOCK_GRAB, STATUS_ROTATE_X, STATUS_ROTATE_Y, and/or STATUS_ROTATE_Z).\nReturns the value of specified status.</string>
          </map>
          <key>llGetSubString</key>
          <map>
@@ -10339,36 +9897,31 @@
             <key>return</key>
             <string>string</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>String</key>
                <map>
-                  <key>name</key>
-                  <string>String</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Start</key>
                <map>
-                  <key>name</key>
-                  <string>Start</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>End</key>
                <map>
-                  <key>name</key>
-                  <string>End</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the indicated substring.</string>
-            <key>description</key>
-            <string>Returns the indicated sub-string from String. The start and end are inclusive.\n
+            </map>
+            <key>tooltip</key>
+            <string>Returns the indicated substring.\nReturns the indicated sub-string from String. The start and end are inclusive.\n
 				Using negative numbers for start and/or end causes the index to count backwards from the length of the string, so 0, -1 would capture the entire string.\n
 				If start is larger than end, the sub string is the exclusion of the entries, so 6, 4 would give the entire string except for the 5th. character.</string>
          </map>
@@ -10381,11 +9934,9 @@
             <key>return</key>
             <string>vector</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Returns a normalized vector of the direction of the sun in the region.</string>
-            <key>description</key>
-            <string>Returns the sun's direction on the simulator.</string>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns a normalized vector of the direction of the sun in the region.\nReturns the sun's direction on the simulator.</string>
          </map>
          <key>llGetTexture</key>
          <map>
@@ -10396,20 +9947,17 @@
             <key>return</key>
             <string>string</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Face</key>
                <map>
-                  <key>name</key>
-                  <string>Face</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns a string that is the texture on face (the inventory name if it is a texture in the prim's inventory, otherwise the key).</string>
-            <key>description</key>
-            <string>Returns the texture of a face, if it is found in object inventory, its key otherwise.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns a string that is the texture on face (the inventory name if it is a texture in the prim's inventory, otherwise the key).\nReturns the texture of a face, if it is found in object inventory, its key otherwise.</string>
          </map>
          <key>llGetTextureOffset</key>
          <map>
@@ -10420,20 +9968,17 @@
             <key>return</key>
             <string>vector</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Face</key>
                <map>
-                  <key>name</key>
-                  <string>Face</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the texture offset of face in the x and y components of a vector.</string>
-            <key>description</key>
-            <string>Returns the texture offset of Face in the x and y components of a vector.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the texture offset of face in the x and y components of a vector.\nReturns the texture offset of Face in the x and y components of a vector.</string>
          </map>
          <key>llGetTextureRot</key>
          <map>
@@ -10444,20 +9989,17 @@
             <key>return</key>
             <string>float</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Face</key>
                <map>
-                  <key>name</key>
-                  <string>Face</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the texture rotation of side.</string>
-            <key>description</key>
-            <string>Returns the texture rotation of side.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the texture rotation of side.\nReturns the texture rotation of side.</string>
          </map>
          <key>llGetTextureScale</key>
          <map>
@@ -10468,20 +10010,17 @@
             <key>return</key>
             <string>vector</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Face</key>
                <map>
-                  <key>name</key>
-                  <string>Face</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the texture scale of side in the x and y components of a vector.</string>
-            <key>description</key>
-            <string>Returns the texture scale of a side in the x and y components of a vector.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the texture scale of side in the x and y components of a vector.\nReturns the texture scale of a side in the x and y components of a vector.</string>
          </map>
          <key>llGetTime</key>
          <map>
@@ -10492,11 +10031,9 @@
             <key>return</key>
             <string>float</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Returns the time in seconds since the last region reset, script reset, or call to either llResetTime or llGetAndResetTime.</string>
-            <key>description</key>
-            <string>Returns the time in seconds since the last region reset, script reset, or call to either llResetTime or llGetAndResetTime.</string>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the time in seconds since the last region reset, script reset, or call to either llResetTime or llGetAndResetTime.\nReturns the time in seconds since the last region reset, script reset, or call to either llResetTime or llGetAndResetTime.</string>
          </map>
          <key>llGetTimeOfDay</key>
          <map>
@@ -10507,11 +10044,9 @@
             <key>return</key>
             <string>float</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Returns the time in seconds since [SECOND_LIFE] server midnight or since region up-time, whichever is smaller.</string>
-            <key>description</key>
-            <string>Gets the time in seconds since midnight in Second Life.</string>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the time in seconds since [SECOND_LIFE] server midnight or since region up-time, whichever is smaller.\nGets the time in seconds since midnight in Second Life.</string>
          </map>
          <key>llGetTimestamp</key>
          <map>
@@ -10522,11 +10057,9 @@
             <key>return</key>
             <string>string</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Returns a time-stamp (UTC time zone) in the format: YYYY-MM-DDThh:mm:ss.ff..fZ.</string>
-            <key>description</key>
-            <string>Returns the current time-and-date (a time-stamp) in the format YYYY-MM-DDThh:mm:ss.ff..fZ, for example: 2004-08-27T00:56:21.785886Z\n
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns a time-stamp (UTC time zone) in the format: YYYY-MM-DDThh:mm:ss.ff..fZ.\nReturns the current time-and-date (a time-stamp) in the format YYYY-MM-DDThh:mm:ss.ff..fZ, for example: 2004-08-27T00:56:21.785886Z\n
 				The letter Z is the zone designator for the zero UTC offset, and is why UTC is sometimes referred to as Zulu time (Zulu being the name of Z in the phonetic alphabet. T is just a separator between date and time.</string>
          </map>
          <key>llGetTorque</key>
@@ -10538,11 +10071,9 @@
             <key>return</key>
             <string>vector</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Returns the torque (if the script is physical).</string>
-            <key>description</key>
-            <string>Returns a vector that is the torque (if the script is physical).</string>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the torque (if the script is physical).\nReturns a vector that is the torque (if the script is physical).</string>
          </map>
          <key>llGetUnixTime</key>
          <map>
@@ -10553,11 +10084,9 @@
             <key>return</key>
             <string>integer</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Returns the number of seconds elapsed since 00:00 hours, Jan 1, 1970 UTC from the system clock.</string>
-            <key>description</key>
-            <string>Returns the number of seconds elapsed since 00:00 hours, Jan 1, 1970 UTC from the system clock.\n
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the number of seconds elapsed since 00:00 hours, Jan 1, 1970 UTC from the system clock.\nReturns the number of seconds elapsed since 00:00 hours, Jan 1, 1970 UTC from the system clock.\n
 				In UNIX terms, time_t. This is great for a monotonic source of time that ticks once a second.</string>
          </map>
          <key>llGetUsedMemory</key>
@@ -10569,11 +10098,9 @@
             <key>return</key>
             <string>integer</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Returns the current used memory for the current script. Non-mono scripts always use 16K.</string>
-            <key>description</key>
-            <string>Returns the integer of the number of bytes of memory currently in use by the script. Non-mono scripts always use 16K.</string>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the current used memory for the current script. Non-mono scripts always use 16K.\nReturns the integer of the number of bytes of memory currently in use by the script. Non-mono scripts always use 16K.</string>
          </map>
          <key>llGetUsername</key>
          <map>
@@ -10584,20 +10111,17 @@
             <key>return</key>
             <string>string</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>AvatarID</key>
                <map>
-                  <key>name</key>
-                  <string>AvatarID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the single-word user-name of an avatar, if the avatar is in the current region, otherwise the empty string.</string>
-            <key>description</key>
-            <string>Returns a string that is the unique user-name of the avatar specified.\n
+            </map>
+            <key>tooltip</key>
+            <string>Returns the single-word user-name of an avatar, if the avatar is in the current region, otherwise the empty string.\nReturns a string that is the unique user-name of the avatar specified.\n
 				AvatarID must specify a valid avatar key present in, or otherwise known to, the region in which the script is running, otherwise an empty string is returned. This function will still return a valid user-name if the avatar is a child agent of the region (i.e., in an adjacent region, but presently able to see into the one the script is in), or for a short period after the avatar leaves the region (specifically, when the client completely disconnects from the region, either as a main or child agent).</string>
          </map>
          <key>llGetVel</key>
@@ -10609,11 +10133,9 @@
             <key>return</key>
             <string>vector</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Returns the velocity of the object.</string>
-            <key>description</key>
-            <string>Returns a vector that is the velocity of the object.</string>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the velocity of the object.\nReturns a vector that is the velocity of the object.</string>
          </map>
          <key>llGetWallclock</key>
          <map>
@@ -10624,11 +10146,9 @@
             <key>return</key>
             <string>float</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Returns the time in seconds since midnight California Pacific time (PST/PDT).</string>
-            <key>description</key>
-            <string>Returns the time in seconds since simulator's time-zone midnight (Pacific Time).</string>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the time in seconds since midnight California Pacific time (PST/PDT).\nReturns the time in seconds since simulator's time-zone midnight (Pacific Time).</string>
          </map>
          <key>llGiveInventory</key>
          <map>
@@ -10639,28 +10159,24 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>TargetID</key>
                <map>
-                  <key>name</key>
-                  <string>TargetID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>InventoryItem</key>
                <map>
-                  <key>name</key>
-                  <string>InventoryItem</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Give InventoryItem to destination represented by TargetID.</string>
-            <key>description</key>
-            <string>Give the named inventory item to the avatar or object in the same simulator as the giver.\n
+            </map>
+            <key>tooltip</key>
+            <string>Give InventoryItem to destination represented by TargetID.\nGive the named inventory item to the avatar or object in the same simulator as the giver.\n
 			If the recipient is an avatar, the avatar then follows the normal procedure of accepting or denying the offer. If the recipient is an object, the same permissions apply as if you were dragging inventory onto the object by hand, i.e. if llAllowInventoryDrop has been called with TRUE, any other object can pass objects to its inventory.</string>
          </map>
          <key>llGiveInventoryList</key>
@@ -10672,36 +10188,31 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>TargetID</key>
                <map>
-                  <key>name</key>
-                  <string>TargetID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>FolderName</key>
                <map>
-                  <key>name</key>
-                  <string>FolderName</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>InventoryItems</key>
                <map>
-                  <key>name</key>
-                  <string>InventoryItems</string>
                   <key>type</key>
                   <string>list</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Give InventoryItems to destination (represented by TargetID) as a new folder of items.</string>
-            <key>description</key>
-            <string>Give the list of named inventory items to the keyed avatar or object in the same simulator as the giver.\n
+            </map>
+            <key>tooltip</key>
+            <string>Give InventoryItems to destination (represented by TargetID) as a new folder of items.\nGive the list of named inventory items to the keyed avatar or object in the same simulator as the giver.\n
 			If the recipient is an avatar, the avatar then follows the normal procedure of accepting or denying the offer. The offered inventory is then placed in a folder named category in the recipients inventory.\n
 			If the recipient is an object, the same permissions apply as if you were dragging inventory onto the object by hand, i.e. if llAllowInventoryDrop has been called with TRUE, any other object can pass objects to its inventory. If the recipient is an object, the sFolderName parameter is ignored.</string>
          </map>
@@ -10714,28 +10225,24 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>AvatarID</key>
                <map>
-                  <key>name</key>
-                  <string>AvatarID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Amount</key>
                <map>
-                  <key>name</key>
-                  <string>Amount</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Transfers Amount of L from script owner to AvatarID.</string>
-            <key>description</key>
-            <string>Transfer Amount from the script owner to AvatarID.\n
+            </map>
+            <key>tooltip</key>
+            <string>Transfers Amount of L from script owner to AvatarID.\nTransfer Amount from the script owner to AvatarID.\n
 				This call will (silently) fail if PERMISSION_DEBIT has not been set.</string>
          </map>
          <key>llGodLikeRezObject</key>
@@ -10749,28 +10256,24 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>InventoryItemID</key>
                <map>
-                  <key>name</key>
-                  <string>InventoryItemID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Position</key>
                <map>
-                  <key>name</key>
-                  <string>Position</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
+            </map>
+            <key>tooltip</key>
             <string>Rez directly off of a UUID if owner has dog-bit set.</string>
-            <key>description</key>
-            <string/>
          </map>
          <key>llGround</key>
          <map>
@@ -10781,20 +10284,17 @@
             <key>return</key>
             <string>float</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Offset</key>
                <map>
-                  <key>name</key>
-                  <string>Offset</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the ground height at the object position + offset.</string>
-            <key>description</key>
-            <string>Returns the ground height at the object's position + Offset.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the ground height at the object position + offset.\nReturns the ground height at the object's position + Offset.</string>
          </map>
          <key>llGroundContour</key>
          <map>
@@ -10805,20 +10305,17 @@
             <key>return</key>
             <string>vector</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Offset</key>
                <map>
-                  <key>name</key>
-                  <string>Offset</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the ground contour direction below the object position + Offset.</string>
-            <key>description</key>
-            <string>Returns the ground contour at the object's position + Offset.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the ground contour direction below the object position + Offset.\nReturns the ground contour at the object's position + Offset.</string>
          </map>
          <key>llGroundNormal</key>
          <map>
@@ -10829,20 +10326,17 @@
             <key>return</key>
             <string>vector</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Offset</key>
                <map>
-                  <key>name</key>
-                  <string>Offset</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the ground normal below the object position + offset.</string>
-            <key>description</key>
-            <string>Returns the ground contour at the object's position + Offset.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the ground normal below the object position + offset.\nReturns the ground contour at the object's position + Offset.</string>
          </map>
          <key>llGroundRepel</key>
          <map>
@@ -10853,36 +10347,31 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Height</key>
                <map>
-                  <key>name</key>
-                  <string>Height</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
-                  <string>.Distance above the ground.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Water</key>
                <map>
-                  <key>name</key>
-                  <string>Water</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Boolean, if TRUE then hover above water too.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Tau</key>
                <map>
-                  <key>name</key>
-                  <string>Tau</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
-                  <string>Seconds to critically damp in.</string>
-               </map>
-            </array>
-            <key>summary</key>
-            <string>Critically damps to height if within height * 0.5 of level (either above ground level or above the higher of land and water if water == TRUE).</string>
-            <key>description</key>
-            <string>Critically damps to fHeight if within fHeight * 0.5 of ground or water level.\n
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Critically damps to height if within height * 0.5 of level (either above ground level or above the higher of land and water if water == TRUE).\nCritically damps to fHeight if within fHeight * 0.5 of ground or water level.\n
 				The height is above ground level if iWater is FALSE or above the higher of land and water if iWater is TRUE.\n
 				Do not use with vehicles. Only works in physics-enabled objects.</string>
          </map>
@@ -10895,20 +10384,17 @@
             <key>return</key>
             <string>vector</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Offset</key>
                <map>
-                  <key>name</key>
-                  <string>Offset</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the ground slope below the object position + Offset.</string>
-            <key>description</key>
-            <string>Returns the ground slope at the object position + Offset.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the ground slope below the object position + Offset.\nReturns the ground slope at the object position + Offset.</string>
          </map>
          <key>llHTTPRequest</key>
          <map>
@@ -10919,36 +10405,31 @@
             <key>return</key>
             <string>key</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>URL</key>
                <map>
-                  <key>name</key>
-                  <string>URL</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
-                  <string>A valid HTTP/HTTPS URL.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Parameters</key>
                <map>
-                  <key>name</key>
-                  <string>Parameters</string>
                   <key>type</key>
                   <string>list</string>
-                  <key>description</key>
-                  <string>Configuration parameters, specified as HTTP_* flag-value pairs.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Body</key>
                <map>
-                  <key>name</key>
-                  <string>Body</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
-                  <string>Contents of the request.</string>
-               </map>
-            </array>
-            <key>summary</key>
-            <string>Sends an HTTP request to the specified URL with the Body of the request and Parameters.</string>
-            <key>description</key>
-            <string>Sends an HTTP request to URL with the specified body and parameters.\n
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sends an HTTP request to the specified URL with the Body of the request and Parameters.\nSends an HTTP request to URL with the specified body and parameters.\n
 				Returns a key that is a handle identifying the HTTP request made.</string>
          </map>
          <key>llHTTPResponse</key>
@@ -10960,36 +10441,31 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>HTTPRequestID</key>
                <map>
-                  <key>name</key>
-                  <string>HTTPRequestID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
-                  <string>A valid HTTP request key.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Status</key>
                <map>
-                  <key>name</key>
-                  <string>Status</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>HTTP Status (200, 400, 404, etc.).</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Body</key>
                <map>
-                  <key>name</key>
-                  <string>Body</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
-                  <string>Contents of the response.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Responds to HTTPRequestID with Status and Body.</string>
-            <key>description</key>
-            <string>Responds to HTTPRequestID with Status code and Body.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Responds to HTTPRequestID with Status and Body.\nResponds to HTTPRequestID with Status code and Body.</string>
          </map>
          <key>llInsertString</key>
          <map>
@@ -11000,36 +10476,31 @@
             <key>return</key>
             <string>string</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>TargetVariable</key>
                <map>
-                  <key>name</key>
-                  <string>TargetVariable</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Position</key>
                <map>
-                  <key>name</key>
-                  <string>Position</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>SourceVariable</key>
                <map>
-                  <key>name</key>
-                  <string>SourceVariable</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Inserts SourceVariable into TargetVariable at Position, and returns the result.</string>
-            <key>description</key>
-            <string>Inserts SourceVariable into TargetVariable at Position and returns the result. Note this does not alter TargetVariable.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Inserts SourceVariable into TargetVariable at Position, and returns the result.\nInserts SourceVariable into TargetVariable at Position and returns the result. Note this does not alter TargetVariable.</string>
          </map>
          <key>llInstantMessage</key>
          <map>
@@ -11040,28 +10511,24 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>AvatarID</key>
                <map>
-                  <key>name</key>
-                  <string>AvatarID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Text</key>
                <map>
-                  <key>name</key>
-                  <string>Text</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>IMs Text to the user identified.</string>
-            <key>description</key>
-            <string>Send Text to the user as an instant message.</string>
+            </map>
+            <key>tooltip</key>
+            <string>IMs Text to the user identified.\nSend Text to the user as an instant message.</string>
          </map>
          <key>llIntegerToBase64</key>
          <map>
@@ -11072,20 +10539,17 @@
             <key>return</key>
             <string>string</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Value</key>
                <map>
-                  <key>name</key>
-                  <string>Value</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns a string that is a Base64 big endian encode of Value.</string>
-            <key>description</key>
-            <string>Encodes the Value as an 8-character Base64 string.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns a string that is a Base64 big endian encode of Value.\nEncodes the Value as an 8-character Base64 string.</string>
          </map>
          <key>llKey2Name</key>
          <map>
@@ -11096,20 +10560,17 @@
             <key>return</key>
             <string>string</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>ID</key>
                <map>
-                  <key>name</key>
-                  <string>ID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
-                  <string>Avatar or rezzed prim UUID.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the name of the prim or avatar specified by ID. The ID must be a valid rezzed prim or avatar key in the current simulator, otherwise an empty string is returned.</string>
-            <key>description</key>
-            <string>Returns the name of a rezzed prim or avatar, present in or otherwise known, to the region in which the script is running. If the key is invalid (not in region, or not a prim or avatar's key), returns an empty string.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the name of the prim or avatar specified by ID. The ID must be a valid rezzed prim or avatar key in the current simulator, otherwise an empty string is returned.\nReturns the name of a rezzed prim or avatar, present in or otherwise known, to the region in which the script is running. If the key is invalid (not in region, or not a prim or avatar's key), returns an empty string.</string>
          </map>
          <key>llLinkParticleSystem</key>
          <map>
@@ -11120,29 +10581,25 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>LinkNumber</key>
                <map>
-                  <key>name</key>
-                  <string>LinkNumber</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Rules</key>
                <map>
-                  <key>name</key>
-                  <string>Rules</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Particle system rules list in the format [ rule1, data1, rule2, data2 . . . ruleN, dataN ]</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>summary</key>
+            </map>
+            <key>tooltip</key>
             <string>Creates a particle system based on Rules. An empty list removes a particle system from object.\n
-				List format is [ rule-1, data-1, rule-2, data-2 ... rule-n, data-n ].</string>
-            <key>description</key>
-            <string>A particle system defined by a list of rules is set for the prim(s) link. This is identical to llParticleSystem except that it applies to a specified linked prim and not just the prim the script is in.</string>
+				List format is [ rule-1, data-1, rule-2, data-2 ... rule-n, data-n ].\nA particle system defined by a list of rules is set for the prim(s) link. This is identical to llParticleSystem except that it applies to a specified linked prim and not just the prim the script is in.</string>
          </map>
          <key>llLinkSitTarget</key>
          <map>
@@ -11153,36 +10610,31 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>LinkNumber</key>
                <map>
-                  <key>name</key>
-                  <string>LinkNumber</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag of the prim.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Offset</key>
                <map>
-                  <key>name</key>
-                  <string>Offset</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
-                  <string>Position for the sit target, relative to the prim's position.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Rotation</key>
                <map>
-                  <key>name</key>
-                  <string>Rotation</string>
                   <key>type</key>
                   <string>rotation</string>
-                  <key>description</key>
-                  <string>Rotation (relative to the prim's rotation) for the avatar.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Set the sit location for the linked prim(s). If Offset == &lt;0,0,0&gt; clear it.</string>
-            <key>description</key>
-            <string>Set the sit location for the linked prim(s). The sit location is relative to the prim's position and rotation.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Set the sit location for the linked prim(s). If Offset == &lt;0,0,0&gt; clear it.\nSet the sit location for the linked prim(s). The sit location is relative to the prim's position and rotation.</string>
          </map>
          <key>llList2CSV</key>
          <map>
@@ -11193,20 +10645,17 @@
             <key>return</key>
             <string>string</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>ListVariable</key>
                <map>
-                  <key>name</key>
-                  <string>ListVariable</string>
                   <key>type</key>
                   <string>list</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Creates a string of comma separated values from the list.</string>
-            <key>description</key>
-            <string>Create a string of comma separated values from the specified list.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Creates a string of comma separated values from the list.\nCreate a string of comma separated values from the specified list.</string>
          </map>
          <key>llList2Float</key>
          <map>
@@ -11217,28 +10666,24 @@
             <key>return</key>
             <string>float</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>ListVariable</key>
                <map>
-                  <key>name</key>
-                  <string>ListVariable</string>
                   <key>type</key>
                   <string>list</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Index</key>
                <map>
-                  <key>name</key>
-                  <string>Index</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Copies the float at Index in the list.</string>
-            <key>description</key>
-            <string>Returns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to a float, then zero is returned.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Copies the float at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to a float, then zero is returned.</string>
          </map>
          <key>llList2Integer</key>
          <map>
@@ -11249,28 +10694,24 @@
             <key>return</key>
             <string>integer</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>ListVariable</key>
                <map>
-                  <key>name</key>
-                  <string>ListVariable</string>
                   <key>type</key>
                   <string>list</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Index</key>
                <map>
-                  <key>name</key>
-                  <string>Index</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Copies the integer at Index in the list.</string>
-            <key>description</key>
-            <string>Returns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to an integer, then zero is returned.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Copies the integer at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to an integer, then zero is returned.</string>
          </map>
          <key>llList2Key</key>
          <map>
@@ -11281,28 +10722,24 @@
             <key>return</key>
             <string>key</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>ListVariable</key>
                <map>
-                  <key>name</key>
-                  <string>ListVariable</string>
                   <key>type</key>
                   <string>list</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Index</key>
                <map>
-                  <key>name</key>
-                  <string>Index</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Copies the key at Index in the list.</string>
-            <key>description</key>
-            <string>Returns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to a key, then null string is returned.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Copies the key at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to a key, then null string is returned.</string>
          </map>
          <key>llList2List</key>
          <map>
@@ -11313,36 +10750,31 @@
             <key>return</key>
             <string>list</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>ListVariable</key>
                <map>
-                  <key>name</key>
-                  <string>ListVariable</string>
                   <key>type</key>
                   <string>list</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Start</key>
                <map>
-                  <key>name</key>
-                  <string>Start</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>End</key>
                <map>
-                  <key>name</key>
-                  <string>End</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Copies the slice of the list from Start to End.</string>
-            <key>description</key>
-            <string>Returns the slice of the list from start to end from the list as a new list. The start and end parameters are inclusive.\n
+            </map>
+            <key>tooltip</key>
+            <string>Copies the slice of the list from Start to End.\nReturns the slice of the list from start to end from the list as a new list. The start and end parameters are inclusive.\n
 				Using negative numbers for start and/or end causes the index to count backwards from the length of the list, so 0, -1 would capture the entire list.\n
 				If start is larger than end the list returned is the exclusion of the entries, so 6, 4 would give the entire list except for the 5th. entry.</string>
          </map>
@@ -11355,44 +10787,38 @@
             <key>return</key>
             <string>list</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>ListVariable</key>
                <map>
-                  <key>name</key>
-                  <string>ListVariable</string>
                   <key>type</key>
                   <string>list</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Start</key>
                <map>
-                  <key>name</key>
-                  <string>Start</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>End</key>
                <map>
-                  <key>name</key>
-                  <string>End</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Stride</key>
                <map>
-                  <key>name</key>
-                  <string>Stride</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Copies the strided slice of the list from Start to End.</string>
-            <key>description</key>
-            <string>Returns a copy of the strided slice of the specified list from Start to End.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Copies the strided slice of the list from Start to End.\nReturns a copy of the strided slice of the specified list from Start to End.</string>
          </map>
          <key>llList2Rot</key>
          <map>
@@ -11403,28 +10829,24 @@
             <key>return</key>
             <string>rotation</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>ListVariable</key>
                <map>
-                  <key>name</key>
-                  <string>ListVariable</string>
                   <key>type</key>
                   <string>list</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Index</key>
                <map>
-                  <key>name</key>
-                  <string>Index</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Copies the rotation at Index in the list.</string>
-            <key>description</key>
-            <string>Returns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to rotation, thenZERO_ROTATION is returned.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Copies the rotation at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to rotation, thenZERO_ROTATION is returned.</string>
          </map>
          <key>llList2String</key>
          <map>
@@ -11435,28 +10857,24 @@
             <key>return</key>
             <string>string</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>ListVariable</key>
                <map>
-                  <key>name</key>
-                  <string>ListVariable</string>
                   <key>type</key>
                   <string>list</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Index</key>
                <map>
-                  <key>name</key>
-                  <string>Index</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Copies the string at Index in the list.</string>
-            <key>description</key>
-            <string>Returns the value at Index in the specified list as a string. If Index describes a location not in the list then null string is returned.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Copies the string at Index in the list.\nReturns the value at Index in the specified list as a string. If Index describes a location not in the list then null string is returned.</string>
          </map>
          <key>llList2Vector</key>
          <map>
@@ -11467,28 +10885,24 @@
             <key>return</key>
             <string>vector</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>ListVariable</key>
                <map>
-                  <key>name</key>
-                  <string>ListVariable</string>
                   <key>type</key>
                   <string>list</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Index</key>
                <map>
-                  <key>name</key>
-                  <string>Index</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Copies the vector at Index in the list.</string>
-            <key>description</key>
-            <string>Returns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to a vector, then ZERO_VECTOR is returned.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Copies the vector at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to a vector, then ZERO_VECTOR is returned.</string>
          </map>
          <key>llListen</key>
          <map>
@@ -11499,44 +10913,38 @@
             <key>return</key>
             <string>integer</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Channel</key>
                <map>
-                  <key>name</key>
-                  <string>Channel</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>SpeakersName</key>
                <map>
-                  <key>name</key>
-                  <string>SpeakersName</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>SpeakersID</key>
                <map>
-                  <key>name</key>
-                  <string>SpeakersID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Text</key>
                <map>
-                  <key>name</key>
-                  <string>Text</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Sets a callback for Text on Channel from SpeakersName and SpeakersID (SpeakersName, SpeakersID, and/or Text can be empty) and returns an identifier that can be used to deactivate or remove the listen.</string>
-            <key>description</key>
-            <string>Sets a listen event callback on the specified channel. Specifying values for speakername, speakerID, and message will filter the results accordingly, which is advisable or your listen event will respond to every thing said on the channel potentially causing a great deal of lag.\n
+            </map>
+            <key>tooltip</key>
+            <string>Sets a callback for Text on Channel from SpeakersName and SpeakersID (SpeakersName, SpeakersID, and/or Text can be empty) and returns an identifier that can be used to deactivate or remove the listen.\nSets a listen event callback on the specified channel. Specifying values for speakername, speakerID, and message will filter the results accordingly, which is advisable or your listen event will respond to every thing said on the channel potentially causing a great deal of lag.\n
 				Returns an identifier that can be used to deactivate or remove the listen. The name, id and/or msg parameters\n
 				Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 to 2,147,483,648 are hidden channels that are not sent to avatars.</string>
          </map>
@@ -11549,28 +10957,24 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>ChannelHandle</key>
                <map>
-                  <key>name</key>
-                  <string>ChannelHandle</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Active</key>
                <map>
-                  <key>name</key>
-                  <string>Active</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Makes a listen event callback active or inactive.</string>
-            <key>description</key>
-            <string>Make a listen event callback active or inactive. Pass in the value returned from llListen to the iChannelHandle parameter to specify which event you are controlling.\n
+            </map>
+            <key>tooltip</key>
+            <string>Makes a listen event callback active or inactive.\nMake a listen event callback active or inactive. Pass in the value returned from llListen to the iChannelHandle parameter to specify which event you are controlling.\n
 				Use boolean values to specify Active</string>
          </map>
          <key>llListenRemove</key>
@@ -11582,20 +10986,17 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>ChannelHandle</key>
                <map>
-                  <key>name</key>
-                  <string>ChannelHandle</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Removes listen event callback number.</string>
-            <key>description</key>
-            <string>Removes a listen event callback. Pass in the value returned from llListen to the iChannelHandle parameter to specify which event to remove.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Removes listen event callback number.\nRemoves a listen event callback. Pass in the value returned from llListen to the iChannelHandle parameter to specify which event to remove.</string>
          </map>
          <key>llListFindList</key>
          <map>
@@ -11606,28 +11007,24 @@
             <key>return</key>
             <string>integer</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>ListVariable</key>
                <map>
-                  <key>name</key>
-                  <string>ListVariable</string>
                   <key>type</key>
                   <string>list</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Find</key>
                <map>
-                  <key>name</key>
-                  <string>Find</string>
                   <key>type</key>
                   <string>list</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the index of the first instance of Find in ListVariable. Returns -1 if not found.</string>
-            <key>description</key>
-            <string>Returns the position of the first instance of the Find list in the ListVariable. Returns -1 if not found.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the index of the first instance of Find in ListVariable. Returns -1 if not found.\nReturns the position of the first instance of the Find list in the ListVariable. Returns -1 if not found.</string>
          </map>
          <key>llListInsertList</key>
          <map>
@@ -11638,36 +11035,31 @@
             <key>return</key>
             <string>list</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Target</key>
                <map>
-                  <key>name</key>
-                  <string>Target</string>
                   <key>type</key>
                   <string>list</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>ListVariable</key>
                <map>
-                  <key>name</key>
-                  <string>ListVariable</string>
                   <key>type</key>
                   <string>list</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Position</key>
                <map>
-                  <key>name</key>
-                  <string>Position</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns a list that contains all the elements from Target but with the elements from ListVariable inserted at Position start.</string>
-            <key>description</key>
-            <string>Returns a new list, created by inserting ListVariable into the Target list at Position. Note this does not alter the Target.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns a list that contains all the elements from Target but with the elements from ListVariable inserted at Position start.\nReturns a new list, created by inserting ListVariable into the Target list at Position. Note this does not alter the Target.</string>
          </map>
          <key>llListRandomize</key>
          <map>
@@ -11678,28 +11070,24 @@
             <key>return</key>
             <string>list</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>ListVariable</key>
                <map>
-                  <key>name</key>
-                  <string>ListVariable</string>
                   <key>type</key>
                   <string>list</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Stride</key>
                <map>
-                  <key>name</key>
-                  <string>Stride</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns a randomized list of blocks of size Stride.</string>
-            <key>description</key>
-            <string>Returns the specified list randomized into blocks of size stride.\n
+            </map>
+            <key>tooltip</key>
+            <string>Returns a randomized list of blocks of size Stride.\nReturns the specified list randomized into blocks of size stride.\n
 				If the remainder from the length of the list, divided by the stride is non-zero, this function does not randomize the list.</string>
          </map>
          <key>llListReplaceList</key>
@@ -11711,44 +11099,38 @@
             <key>return</key>
             <string>list</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Target</key>
                <map>
-                  <key>name</key>
-                  <string>Target</string>
                   <key>type</key>
                   <string>list</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>ListVariable</key>
                <map>
-                  <key>name</key>
-                  <string>ListVariable</string>
                   <key>type</key>
                   <string>list</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Start</key>
                <map>
-                  <key>name</key>
-                  <string>Start</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>End</key>
                <map>
-                  <key>name</key>
-                  <string>End</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns a list that is Target with Start through End removed and ListVariable inserted at Start.</string>
-            <key>description</key>
-            <string>Returns a list replacing the slice of the Target list from Start to End with the specified ListVariable. Start and End are inclusive, so 0, 1 would replace the first two entries and 0, 0 would replace only the first list entry.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns a list that is Target with Start through End removed and ListVariable inserted at Start.\nReturns a list replacing the slice of the Target list from Start to End with the specified ListVariable. Start and End are inclusive, so 0, 1 would replace the first two entries and 0, 0 would replace only the first list entry.</string>
          </map>
          <key>llListSort</key>
          <map>
@@ -11759,36 +11141,31 @@
             <key>return</key>
             <string>list</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>ListVariable</key>
                <map>
-                  <key>name</key>
-                  <string>ListVariable</string>
                   <key>type</key>
                   <string>list</string>
-                  <key>description</key>
-                  <string>List to sort.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Stride</key>
                <map>
-                  <key>name</key>
-                  <string>Stride</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Stride length.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Ascending</key>
                <map>
-                  <key>name</key>
-                  <string>Ascending</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Boolean. TRUE = result in ascending order, FALSE = result in descending order.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Sorts the list into blocks of stride, in Ascending order if Ascending == TRUE. The sort order is affected by type.</string>
-            <key>description</key>
-            <string>Returns the specified list, sorted into blocks of stride in ascending order (if Ascending is TRUE, otherwise descending). Note that sort only works if the first entry of each block is the same type.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Sorts the list into blocks of stride, in Ascending order if Ascending == TRUE. The sort order is affected by type.\nReturns the specified list, sorted into blocks of stride in ascending order (if Ascending is TRUE, otherwise descending). Note that sort only works if the first entry of each block is the same type.</string>
          </map>
          <key>llListStatistics</key>
          <map>
@@ -11799,28 +11176,24 @@
             <key>return</key>
             <string>float</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Operation</key>
                <map>
-                  <key>name</key>
-                  <string>Operation</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string> One of LIST_STAT_* values </string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>ListVariable</key>
                <map>
-                  <key>name</key>
-                  <string>ListVariable</string>
                   <key>type</key>
                   <string>list</string>
-                  <key>description</key>
-                  <string>Variable to analyse.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Performs statistical aggregate functions on ListVariable using LIST_STAT_* Operations.</string>
-            <key>description</key>
-            <string>This function allows a script to perform a statistical operation as defined by operation on a list composed of integers and floats.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Performs statistical aggregate functions on ListVariable using LIST_STAT_* Operations.\nThis function allows a script to perform a statistical operation as defined by operation on a list composed of integers and floats.</string>
          </map>
          <key>llLoadURL</key>
          <map>
@@ -11831,36 +11204,31 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>AvatarID</key>
                <map>
-                  <key>name</key>
-                  <string>AvatarID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Text</key>
                <map>
-                  <key>name</key>
-                  <string>Text</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>URL</key>
                <map>
-                  <key>name</key>
-                  <string>URL</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Shows dialog to avatar AvatarID offering to load web page at URL.	If user clicks yes, launches their web browser.</string>
-            <key>description</key>
-            <string>llLoadURL displays a dialogue box to the user, offering to load the specified web page using the default web browser.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Shows dialog to avatar AvatarID offering to load web page at URL.	If user clicks yes, launches their web browser.\nllLoadURL displays a dialogue box to the user, offering to load the specified web page using the default web browser.</string>
          </map>
          <key>llLog</key>
          <map>
@@ -11871,20 +11239,17 @@
             <key>return</key>
             <string>float</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Value</key>
                <map>
-                  <key>name</key>
-                  <string>Value</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the natural logarithm of Value. Returns zero if Value &lt;= 0.</string>
-            <key>description</key>
-            <string>Returns the base e (natural) logarithm of the specified Value.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the natural logarithm of Value. Returns zero if Value &lt;= 0.\nReturns the base e (natural) logarithm of the specified Value.</string>
          </map>
          <key>llLog10</key>
          <map>
@@ -11895,20 +11260,17 @@
             <key>return</key>
             <string>float</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Value</key>
                <map>
-                  <key>name</key>
-                  <string>Value</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the base 10 logarithm of Value. Returns zero if Value &lt;= 0.</string>
-            <key>description</key>
-            <string>Returns the base 10 (common) logarithm of the specified Value.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the base 10 logarithm of Value. Returns zero if Value &lt;= 0.\nReturns the base 10 (common) logarithm of the specified Value.</string>
          </map>
          <key>llLookAt</key>
          <map>
@@ -11919,36 +11281,31 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Target</key>
                <map>
-                  <key>name</key>
-                  <string>Target</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Strength</key>
                <map>
-                  <key>name</key>
-                  <string>Strength</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Damping</key>
                <map>
-                  <key>name</key>
-                  <string>Damping</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Cause object name to point it's forward axis towards Target.</string>
-            <key>description</key>
-            <string>Cause object to point the forward axis toward Target.\n
+            </map>
+            <key>tooltip</key>
+            <string>Cause object name to point it's forward axis towards Target.\nCause object to point the forward axis toward Target.\n
 				Good Strength values are around half the mass of the object and good Damping values are less than 1/10th of the Strength.\n
 				Asymmetrical shapes require smaller Damping. A Strength of 0.0 cancels the look at.</string>
          </map>
@@ -11961,28 +11318,24 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Sound</key>
                <map>
-                  <key>name</key>
-                  <string>Sound</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Volume</key>
                <map>
-                  <key>name</key>
-                  <string>Volume</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Plays attached Sound, looping indefinitely, at Volume (0.0 - 1.0).</string>
-            <key>description</key>
-            <string>Similar to llPlaySound, this function plays a sound attached to an object, but will continuously repeat that sound until llStopSound or llPlaySound is called.\n
+            </map>
+            <key>tooltip</key>
+            <string>Plays attached Sound, looping indefinitely, at Volume (0.0 - 1.0).\nSimilar to llPlaySound, this function plays a sound attached to an object, but will continuously repeat that sound until llStopSound or llPlaySound is called.\n
 			Only one sound may be attached to an object at a time. A second call to llLoopSound with the same key will not restart the sound, but the new volume will be used. This allows control over the volume of already playing sounds.\n
 			Setting the volume to 0 is not the same as calling llStopSound; a sound with 0 volume will continue to loop.\n
 			To restart the sound from the beginning, call llStopSound before calling llLoopSound again.</string>
@@ -11996,28 +11349,24 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Sound</key>
                <map>
-                  <key>name</key>
-                  <string>Sound</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Volume</key>
                <map>
-                  <key>name</key>
-                  <string>Volume</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Plays attached Sound, looping at volume (0.0 - 1.0), and declares it a sync master.</string>
-            <key>description</key>
-            <string>Behaviour is identical to llLoopSound, with the addition of marking the source as a "Sync Master", causing "Slave" sounds to sync to it. If there are multiple masters within a viewers interest area, the most audible one (a function of both distance and volume) will win out as the master.\n
+            </map>
+            <key>tooltip</key>
+            <string>Plays attached Sound, looping at volume (0.0 - 1.0), and declares it a sync master.\nBehaviour is identical to llLoopSound, with the addition of marking the source as a "Sync Master", causing "Slave" sounds to sync to it. If there are multiple masters within a viewers interest area, the most audible one (a function of both distance and volume) will win out as the master.\n
 				The use of multiple masters within a small area is unlikely to produce the desired effect.</string>
          </map>
          <key>llLoopSoundSlave</key>
@@ -12029,28 +11378,24 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Sound</key>
                <map>
-                  <key>name</key>
-                  <string>Sound</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Volume</key>
                <map>
-                  <key>name</key>
-                  <string>Volume</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Plays attached sound looping at volume (0.0 - 1.0), synced to most audible sync master.</string>
-            <key>description</key>
-            <string>Behaviour is identical to llLoopSound, unless there is a "Sync Master" present.\n
+            </map>
+            <key>tooltip</key>
+            <string>Plays attached sound looping at volume (0.0 - 1.0), synced to most audible sync master.\nBehaviour is identical to llLoopSound, unless there is a "Sync Master" present.\n
 				If a Sync Master is already playing the Slave sound will begin playing from the same point the master is in its loop synchronizing the loop points of both sounds.\n
 				If a Sync Master is started when the Slave is already playing, the Slave will skip to the correct position to sync with the Master.</string>
          </map>
@@ -12065,68 +11410,59 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Particles</key>
                <map>
-                  <key>name</key>
-                  <string>Particles</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Scale</key>
                <map>
-                  <key>name</key>
-                  <string>Scale</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Velocity</key>
                <map>
-                  <key>name</key>
-                  <string>Velocity</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Lifetime</key>
                <map>
-                  <key>name</key>
-                  <string>Lifetime</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Arc</key>
                <map>
-                  <key>name</key>
-                  <string>Arc</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Texture</key>
                <map>
-                  <key>name</key>
-                  <string>Texture</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Offset</key>
                <map>
-                  <key>name</key>
-                  <string>Offset</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Make a round explosion of particles. Deprecated: Use llParticleSystem instead.</string>
-            <key>description</key>
-            <string>Make a round explosion of particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Make a round explosion of particles. Deprecated: Use llParticleSystem instead.\nMake a round explosion of particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.</string>
          </map>
          <key>llMakeFire</key>
          <map>
@@ -12139,68 +11475,59 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Particles</key>
                <map>
-                  <key>name</key>
-                  <string>Particles</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Scale</key>
                <map>
-                  <key>name</key>
-                  <string>Scale</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Velocity</key>
                <map>
-                  <key>name</key>
-                  <string>Velocity</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Lifetime</key>
                <map>
-                  <key>name</key>
-                  <string>Lifetime</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Arc</key>
                <map>
-                  <key>name</key>
-                  <string>Arc</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Texture</key>
                <map>
-                  <key>name</key>
-                  <string>Texture</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Offset</key>
                <map>
-                  <key>name</key>
-                  <string>Offset</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Make fire like particles. Deprecated: Use llParticleSystem instead.</string>
-            <key>description</key>
-            <string>Make fire particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Make fire like particles. Deprecated: Use llParticleSystem instead.\nMake fire particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.</string>
          </map>
          <key>llMakeFountain</key>
          <map>
@@ -12213,68 +11540,59 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Particles</key>
                <map>
-                  <key>name</key>
-                  <string>Particles</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Scale</key>
                <map>
-                  <key>name</key>
-                  <string>Scale</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Velocity</key>
                <map>
-                  <key>name</key>
-                  <string>Velocity</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Lifetime</key>
                <map>
-                  <key>name</key>
-                  <string>Lifetime</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Arc</key>
                <map>
-                  <key>name</key>
-                  <string>Arc</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Texture</key>
                <map>
-                  <key>name</key>
-                  <string>Texture</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Offset</key>
                <map>
-                  <key>name</key>
-                  <string>Offset</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Make a fountain of particles. Deprecated: Use llParticleSystem instead.</string>
-            <key>description</key>
-            <string>Make a fountain of particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Make a fountain of particles. Deprecated: Use llParticleSystem instead.\nMake a fountain of particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.</string>
          </map>
          <key>llMakeSmoke</key>
          <map>
@@ -12287,68 +11605,59 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Particles</key>
                <map>
-                  <key>name</key>
-                  <string>Particles</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Scale</key>
                <map>
-                  <key>name</key>
-                  <string>Scale</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Velocity</key>
                <map>
-                  <key>name</key>
-                  <string>Velocity</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Lifetime</key>
                <map>
-                  <key>name</key>
-                  <string>Lifetime</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Arc</key>
                <map>
-                  <key>name</key>
-                  <string>Arc</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Texture</key>
                <map>
-                  <key>name</key>
-                  <string>Texture</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Offset</key>
                <map>
-                  <key>name</key>
-                  <string>Offset</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Make smoke like particles. Deprecated: Use llParticleSystem instead.</string>
-            <key>description</key>
-            <string>Make smoky particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Make smoke like particles. Deprecated: Use llParticleSystem instead.\nMake smoky particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.</string>
          </map>
          <key>llManageEstateAccess</key>
          <map>
@@ -12359,28 +11668,24 @@
             <key>return</key>
             <string>integer</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Action</key>
                <map>
-                  <key>name</key>
-                  <string>Action</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>One of the ESTATE_ACCESS_ALLOWED_* actions.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>AvatarID</key>
                <map>
-                  <key>name</key>
-                  <string>AvatarID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
-                  <string>UUID of the avatar or group to act upon.</string>
-               </map>
-            </array>
-            <key>summary</key>
-            <string>Use to add or remove agents from the estate's agent access or ban lists or groups from the estate's group access list.</string>
-            <key>description</key>
-            <string>Use to add or remove agents from the estate's agent access or ban lists or groups from the estate's group access list.\n
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Use to add or remove agents from the estate's agent access or ban lists or groups from the estate's group access list.\nUse to add or remove agents from the estate's agent access or ban lists or groups from the estate's group access list.\n
 			Returns an integer representing a boolean, TRUE if the call was successful; FALSE if throttled, invalid action, invalid or null id or object owner is not allowed to manage the estate.</string>
          </map>
          <key>llMapDestination</key>
@@ -12392,36 +11697,31 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>RegionName</key>
                <map>
-                  <key>name</key>
-                  <string>RegionName</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Position</key>
                <map>
-                  <key>name</key>
-                  <string>Position</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Direction</key>
                <map>
-                  <key>name</key>
-                  <string>Direction</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Opens world map centred on region with Position highlighted. Only works for scripts attached to avatar, or during touch events. NOTE: Direction currently does nothing.</string>
-            <key>description</key>
-            <string>Shows a given location on the map, opening the map window whenever it is called.\n
+            </map>
+            <key>tooltip</key>
+            <string>Opens world map centred on region with Position highlighted. Only works for scripts attached to avatar, or during touch events. NOTE: Direction currently does nothing.\nShows a given location on the map, opening the map window whenever it is called.\n
 				There is no way to simply set the map position without opening the window.\n
 				Only works in attachments, or during touch events.</string>
          </map>
@@ -12434,28 +11734,24 @@
             <key>return</key>
             <string>string</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Text</key>
                <map>
-                  <key>name</key>
-                  <string>Text</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Nonce</key>
                <map>
-                  <key>name</key>
-                  <string>Nonce</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns a string of 32 hex characters that is an RSA Data Security Inc., MD5 Message-Digest Algorithm of Text with Nonce.</string>
-            <key>description</key>
-            <string>Performs an RSA Data Security, Inc. MD5 Message-Digest Algorithm on the specified string using the nonce (also known as salt).\n
+            </map>
+            <key>tooltip</key>
+            <string>Returns a string of 32 hex characters that is an RSA Data Security Inc., MD5 Message-Digest Algorithm of Text with Nonce.\nPerforms an RSA Data Security, Inc. MD5 Message-Digest Algorithm on the specified string using the nonce (also known as salt).\n
 				Returns a 32-character hex string. (128-bit in binary.)</string>
          </map>
          <key>llMessageLinked</key>
@@ -12467,44 +11763,38 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>LinkNumber</key>
                <map>
-                  <key>name</key>
-                  <string>LinkNumber</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Number</key>
                <map>
-                  <key>name</key>
-                  <string>Number</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Text</key>
                <map>
-                  <key>name</key>
-                  <string>Text</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>ID</key>
                <map>
-                  <key>name</key>
-                  <string>ID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Sends Number, Text, and ID to members of the link set identified by LinkNumber (LINK_ROOT sends to root task in a linked set, LINK_SET sends to all tasks, LINK_ALL_OTHERS to all other tasks, LINK_ALL_CHILDREN to all children, LINK_THIS to the task the script it is in).</string>
-            <key>description</key>
-            <string>Sends the specified number, string, and key to members of the link set.\n
+            </map>
+            <key>tooltip</key>
+            <string>Sends Number, Text, and ID to members of the link set identified by LinkNumber (LINK_ROOT sends to root task in a linked set, LINK_SET sends to all tasks, LINK_ALL_OTHERS to all other tasks, LINK_ALL_CHILDREN to all children, LINK_THIS to the task the script it is in).\nSends the specified number, string, and key to members of the link set.\n
 				The LinkNumber parameter is either a linked number available through llGetLinkNumber or a LINK_* constant.</string>
          </map>
          <key>llMinEventDelay</key>
@@ -12516,20 +11806,17 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Delay</key>
                <map>
-                  <key>name</key>
-                  <string>Delay</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Set the minimum time between events being handled.</string>
-            <key>description</key>
-            <string>Set the minimum time between events being handled.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Set the minimum time between events being handled.\nSet the minimum time between events being handled.</string>
          </map>
          <key>llModifyLand</key>
          <map>
@@ -12540,28 +11827,24 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Action</key>
                <map>
-                  <key>name</key>
-                  <string>Action</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>LAND_LEVEL, LAND_RAISE, LAND_LOWER, LAND_SMOOTH, LAND_NOISE or LAND_REVERT</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Area</key>
                <map>
-                  <key>name</key>
-                  <string>Area</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>LAND_SMALL_BRUSH, LAND_MEDIUM_BRUSH or LAND_LARGE_BRUSH</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Modify land with action (LAND_LEVEL, LAND_RAISE, LAND_LOWER, LAND_SMOOTH, LAND_NOISE, LAND_REVERT) on size (LAND_SMALL_BRUSH, LAND_MEDIUM_BRUSH, LAND_LARGE_BRUSH).</string>
-            <key>description</key>
-            <string>Modify land with action on size area. The parameters can be chosen from the land constants.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Modify land with action (LAND_LEVEL, LAND_RAISE, LAND_LOWER, LAND_SMOOTH, LAND_NOISE, LAND_REVERT) on size (LAND_SMALL_BRUSH, LAND_MEDIUM_BRUSH, LAND_LARGE_BRUSH).\nModify land with action on size area. The parameters can be chosen from the land constants.</string>
          </map>
          <key>llModPow</key>
          <map>
@@ -12572,36 +11855,31 @@
             <key>return</key>
             <string>integer</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Value</key>
                <map>
-                  <key>name</key>
-                  <string>Value</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Power</key>
                <map>
-                  <key>name</key>
-                  <string>Power</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Modulus</key>
                <map>
-                  <key>name</key>
-                  <string>Modulus</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns a Value raised to the Power, mod Modulus. ((a**b)%c) b is capped at 0xFFFF (16 bits).</string>
-            <key>description</key>
-            <string>Returns (Value ^ Power) % Modulus. (Value raised to the Power, Modulus). Value is capped at 0xFFFF (16 bits).</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns a Value raised to the Power, mod Modulus. ((a**b)%c) b is capped at 0xFFFF (16 bits).\nReturns (Value ^ Power) % Modulus. (Value raised to the Power, Modulus). Value is capped at 0xFFFF (16 bits).</string>
          </map>
          <key>llMoveToTarget</key>
          <map>
@@ -12612,28 +11890,24 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Target</key>
                <map>
-                  <key>name</key>
-                  <string>Target</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Tau</key>
                <map>
-                  <key>name</key>
-                  <string>Tau</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Critically damp to Target in Tau seconds (if the script is physical).</string>
-            <key>description</key>
-            <string>Critically damp to position target in tau-seconds if the script is physical. Good tau-values are greater than 0.2. A tau of 0.0 stops the critical damping.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Critically damp to Target in Tau seconds (if the script is physical).\nCritically damp to position target in tau-seconds if the script is physical. Good tau-values are greater than 0.2. A tau of 0.0 stops the critical damping.</string>
          </map>
          <key>llNavigateTo</key>
          <map>
@@ -12644,28 +11918,24 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Location</key>
                <map>
-                  <key>name</key>
-                  <string>Location</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
-                  <string>Region coordinates for the character to navigate to.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Options</key>
                <map>
-                  <key>name</key>
-                  <string>Options</string>
                   <key>type</key>
                   <string>list</string>
-                  <key>description</key>
-                  <string>List of parameters to control the type of path-finding used. Currently only FORCE_DIRECT_PATH supported.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Navigate to destination.</string>
-            <key>description</key>
-            <string>Directs an object to travel to a defined position in the region or adjacent regions.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Navigate to destination.\nDirects an object to travel to a defined position in the region or adjacent regions.</string>
          </map>
          <key>llOffsetTexture</key>
          <map>
@@ -12676,36 +11946,31 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>OffsetS</key>
                <map>
-                  <key>name</key>
-                  <string>OffsetS</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>OffsetT</key>
                <map>
-                  <key>name</key>
-                  <string>OffsetT</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Face</key>
                <map>
-                  <key>name</key>
-                  <string>Face</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Sets the texture S and T offsets for the chosen Face.</string>
-            <key>description</key>
-            <string>Sets the texture s and t offsets of face.\n
+            </map>
+            <key>tooltip</key>
+            <string>Sets the texture S and T offsets for the chosen Face.\nSets the texture s and t offsets of face.\n
 			If Face is ALL_SIDES this function sets the texture offsets for all faces.</string>
          </map>
          <key>llOpenRemoteDataChannel</key>
@@ -12719,11 +11984,9 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Requests a channel to listen for XML-RPC calls. Will trigger a remote_data event with channel ID once it is available.</string>
-            <key>description</key>
-            <string>Requests a channel to listen for XML-RPC calls. (Deprecated: XML-RPC should not be used. Use http-in instead.)\n
+            <undef/>
+            <key>tooltip</key>
+            <string>Requests a channel to listen for XML-RPC calls. Will trigger a remote_data event with channel ID once it is available.\nRequests a channel to listen for XML-RPC calls. (Deprecated: XML-RPC should not be used. Use http-in instead.)\n
 				Will trigger a remote_data event with type = REMOTE_DATA_CHANNEL and a channel ID (key) once it is available.\n
 				This channel ID must be referenced in the XML-RPC call to the script (from the internet) -- so the key must somehow get to the scripter's XML-RPC client, most often via llEmail, llHttpRequest or llLoadUrl.</string>
          </map>
@@ -12736,20 +11999,17 @@
             <key>return</key>
             <string>integer</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>ID</key>
                <map>
-                  <key>name</key>
-                  <string>ID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns TRUE if id ID over land owned by the script owner, otherwise FALSE.</string>
-            <key>description</key>
-            <string>Returns TRUE if key ID is over land owned by the object owner, FALSE otherwise.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns TRUE if id ID over land owned by the script owner, otherwise FALSE.\nReturns TRUE if key ID is over land owned by the object owner, FALSE otherwise.</string>
          </map>
          <key>llOwnerSay</key>
          <map>
@@ -12760,20 +12020,17 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Text</key>
                <map>
-                  <key>name</key>
-                  <string>Text</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>says Text to owner only (if owner is in region).</string>
-            <key>description</key>
-            <string>Says Text to the owner of the object running the script, if the owner has been within the object's simulator since logging into Second Life, regardless of where they may be in-world.</string>
+            </map>
+            <key>tooltip</key>
+            <string>says Text to owner only (if owner is in region).\nSays Text to the owner of the object running the script, if the owner has been within the object's simulator since logging into Second Life, regardless of where they may be in-world.</string>
          </map>
          <key>llParcelMediaCommandList</key>
          <map>
@@ -12784,20 +12041,17 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>CommandList</key>
                <map>
-                  <key>name</key>
-                  <string>CommandList</string>
                   <key>type</key>
                   <string>list</string>
-                  <key>description</key>
-                  <string>A list of PARCEL_MEDIA_COMMAND_* flags and their parameters </string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Sends a list of commands, some with arguments, to a parcel.</string>
-            <key>description</key>
-            <string>Controls the playback of multimedia resources on a parcel or for an agent.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Sends a list of commands, some with arguments, to a parcel.\nControls the playback of multimedia resources on a parcel or for an agent.</string>
          </map>
          <key>llParcelMediaQuery</key>
          <map>
@@ -12808,20 +12062,17 @@
             <key>return</key>
             <string>list</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>QueryList</key>
                <map>
-                  <key>name</key>
-                  <string>QueryList</string>
                   <key>type</key>
                   <string>list</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns a list containing results of the sent query.</string>
-            <key>description</key>
-            <string>Queries the texture and/or URL for QuickTime-playable video on the land parcel.\n
+            </map>
+            <key>tooltip</key>
+            <string>Returns a list containing results of the sent query.\nQueries the texture and/or URL for QuickTime-playable video on the land parcel.\n
 				This function will only work if the script is contained within an object owned by the land-owner (or if the land is owned by a group, only if the object has been deeded to the group). It will not work for group land if the object owner is a member of the group. The object actually has to be owned by the group.</string>
          </map>
          <key>llParseString2List</key>
@@ -12833,36 +12084,31 @@
             <key>return</key>
             <string>list</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Text</key>
                <map>
-                  <key>name</key>
-                  <string>Text</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Separators</key>
                <map>
-                  <key>name</key>
-                  <string>Separators</string>
                   <key>type</key>
                   <string>list</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Spacers</key>
                <map>
-                  <key>name</key>
-                  <string>Spacers</string>
                   <key>type</key>
                   <string>list</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Breaks Text into a list, discarding Separators, keeping Spacers (Separators and Spacers must be lists of strings, maximum of 8 each).</string>
-            <key>description</key>
-            <string>Breaks the Text into a list using Separators and Spacers to delimit entries. Separators are discarded, while Spacers are kept. Any empty entries are ignored.\n
+            </map>
+            <key>tooltip</key>
+            <string>Breaks Text into a list, discarding Separators, keeping Spacers (Separators and Spacers must be lists of strings, maximum of 8 each).\nBreaks the Text into a list using Separators and Spacers to delimit entries. Separators are discarded, while Spacers are kept. Any empty entries are ignored.\n
 				The separators and spacers must be lists of strings with a maximum of 8 entries each. So, if you had made the call:\n
 				llParseString2List("Parsethisnow! I dare:you to.", ["this", "!", " "], [":"]);\n
 				You would get the list: ["Parse", "now", "I", "dare", ":", "you", "to"].</string>
@@ -12876,36 +12122,31 @@
             <key>return</key>
             <string>list</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Text</key>
                <map>
-                  <key>name</key>
-                  <string>Text</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Separators</key>
                <map>
-                  <key>name</key>
-                  <string>Separators</string>
                   <key>type</key>
                   <string>list</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Spacers</key>
                <map>
-                  <key>name</key>
-                  <string>Spacers</string>
                   <key>type</key>
                   <string>list</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Breaks Text into a list, discarding separators, keeping spacers, keeping any null values generated. (separators and spacers must be lists of strings, maximum of 8 each).</string>
-            <key>description</key>
-            <string>llParseStringKeepNulls works almost exactly like llParseString2List, except that if a null is found it will add a null-string instead of discarding it like llParseString2List does.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Breaks Text into a list, discarding separators, keeping spacers, keeping any null values generated. (separators and spacers must be lists of strings, maximum of 8 each).\nllParseStringKeepNulls works almost exactly like llParseString2List, except that if a null is found it will add a null-string instead of discarding it like llParseString2List does.</string>
          </map>
          <key>llParticleSystem</key>
          <map>
@@ -12916,21 +12157,18 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Parameters</key>
                <map>
-                  <key>name</key>
-                  <string>Parameters</string>
                   <key>type</key>
                   <string>list</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
+            </map>
+            <key>tooltip</key>
             <string>Creates a particle system based on Parameters.	An empty list removes particle system from object.
-				List format is [ rule-1, data-1, rule-2, data-2 . . . rule-n, data-n ].</string>
-            <key>description</key>
-            <string>Makes a particle system based on the parameter list.\n
+				List format is [ rule-1, data-1, rule-2, data-2 . . . rule-n, data-n ].\nMakes a particle system based on the parameter list.\n
 				The parameters are specified as an ordered list of parameter and value. Valid parameters and their expected values can be found in the particle system constants.\n
 				Here is a simple example:\n
 				llParticleSystem([PSYS_PART_FLAGS, PSYS_PART_WIND_MASK, PSYS_PART_START_COLOR, &lt;1, 0, 0&gt;, PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_EXPLODE]);</string>
@@ -12944,20 +12182,17 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Pass</key>
                <map>
-                  <key>name</key>
-                  <string>Pass</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Boolean, if TRUE, collisions are passed from children on to parents.</string>
-               </map>
-            </array>
-            <key>summary</key>
-            <string>If Pass == TRUE, collisions are passed from children on to parents (default is FALSE).</string>
-            <key>description</key>
-            <string>If pass is TRUE, land and object collisions are passed from children on to parents.\n
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>If Pass == TRUE, collisions are passed from children on to parents (default is FALSE).\nIf pass is TRUE, land and object collisions are passed from children on to parents.\n
 				The default is FALSE if there is no script to handle the collision events.</string>
          </map>
          <key>llPassTouches</key>
@@ -12969,20 +12204,17 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Pass</key>
                <map>
-                  <key>name</key>
-                  <string>Pass</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Boolean, if TRUE, touches are passed from children on to parents.</string>
-               </map>
-            </array>
-            <key>summary</key>
-            <string>If pass == TRUE, touches are passed from children on to parents (default is FALSE).</string>
-            <key>description</key>
-            <string>If pass is TRUE, touches are passed from children on to parents.\n
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>If pass == TRUE, touches are passed from children on to parents (default is FALSE).\nIf pass is TRUE, touches are passed from children on to parents.\n
 				The default is TRUE if there is no script to handle the touch events.</string>
          </map>
          <key>llPatrolPoints</key>
@@ -12994,28 +12226,24 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Points</key>
                <map>
-                  <key>name</key>
-                  <string>Points</string>
                   <key>type</key>
                   <string>list</string>
-                  <key>description</key>
-                  <string>A list of vectors for the character to travel through sequentially. The list must contain at least two entries.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Options</key>
                <map>
-                  <key>name</key>
-                  <string>Options</string>
                   <key>type</key>
                   <string>list</string>
-                  <key>description</key>
-                  <string>No options available at this time.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Patrol a list of points.</string>
-            <key>description</key>
-            <string>Sets the points for a character (llCreateCharacter) to patrol along.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Patrol a list of points.\nSets the points for a character (llCreateCharacter) to patrol along.</string>
          </map>
          <key>llPlaySound</key>
          <map>
@@ -13026,28 +12254,24 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Sound</key>
                <map>
-                  <key>name</key>
-                  <string>Sound</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Volume</key>
                <map>
-                  <key>name</key>
-                  <string>Volume</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Plays attached Sound once, at Volume (0.0 - 1.0).</string>
-            <key>description</key>
-            <string>Plays a sound once. The sound will be attached to the object and follow object's movement. Only one sound may be attached to an object at a time, and attaching a new sound or calling llStopSound will stop the previously attached sound.\n
+            </map>
+            <key>tooltip</key>
+            <string>Plays attached Sound once, at Volume (0.0 - 1.0).\nPlays a sound once. The sound will be attached to the object and follow object's movement. Only one sound may be attached to an object at a time, and attaching a new sound or calling llStopSound will stop the previously attached sound.\n
 				A second call to llPlaySound with the same sound will not restart the sound, but the new volume will be used, which allows control over the volume of already playing sounds.\n
 				To restart the sound from the beginning, call llStopSound before calling llPlaySound again.</string>
          </map>
@@ -13060,28 +12284,24 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Sound</key>
                <map>
-                  <key>name</key>
-                  <string>Sound</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Volume</key>
                <map>
-                  <key>name</key>
-                  <string>Volume</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Plays attached Sound once, at Volume (0.0 - 1.0), synced to next loop of most audible sync master.</string>
-            <key>description</key>
-            <string>Behaviour is identical to llPlaySound, unless there is a "Sync Master" present. If a Sync Master is already playing, the Slave sound will not be played until the Master hits its loop point and returns to the beginning.\n
+            </map>
+            <key>tooltip</key>
+            <string>Plays attached Sound once, at Volume (0.0 - 1.0), synced to next loop of most audible sync master.\nBehaviour is identical to llPlaySound, unless there is a "Sync Master" present. If a Sync Master is already playing, the Slave sound will not be played until the Master hits its loop point and returns to the beginning.\n
 				llPlaySoundSlave will play the sound exactly once; if it is desired to have the sound play every time the Master loops, either use llLoopSoundSlave with extra silence padded on the end of the sound or ensure that llPlaySoundSlave is called at least once per loop of the Master.</string>
          </map>
          <key>llPow</key>
@@ -13093,28 +12313,24 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Value</key>
                <map>
-                  <key>name</key>
-                  <string>Value</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Exponent</key>
                <map>
-                  <key>name</key>
-                  <string>Exponent</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the Value raised to the power Exponent, or returns 0 and triggers Math Error for imaginary results.</string>
-            <key>description</key>
-            <string>Returns the Value raised to the Exponent.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the Value raised to the power Exponent, or returns 0 and triggers Math Error for imaginary results.\nReturns the Value raised to the Exponent.</string>
          </map>
          <key>llPreloadSound</key>
          <map>
@@ -13125,20 +12341,17 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Sound</key>
                <map>
-                  <key>name</key>
-                  <string>Sound</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Preloads a sound on viewers within range.</string>
-            <key>description</key>
-            <string>Causes nearby viewers to preload the Sound from the object's inventory. This is intended to prevent delays in starting new sounds when called upon.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Preloads a sound on viewers within range.\nCauses nearby viewers to preload the Sound from the object's inventory. This is intended to prevent delays in starting new sounds when called upon.</string>
          </map>
          <key>llPursue</key>
          <map>
@@ -13149,28 +12362,24 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>TargetID</key>
                <map>
-                  <key>name</key>
-                  <string>TargetID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
-                  <string>Agent or object to pursue.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Options</key>
                <map>
-                  <key>name</key>
-                  <string>Options</string>
                   <key>type</key>
                   <string>list</string>
-                  <key>description</key>
-                  <string>Parameters for pursuit.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Chase after a target.</string>
-            <key>description</key>
-            <string>Causes the character (llCharacter) to pursue the target defined by TargetID.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Chase after a target.\nCauses the character (llCharacter) to pursue the target defined by TargetID.</string>
          </map>
          <key>llPushObject</key>
          <map>
@@ -13181,44 +12390,38 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>ObjectID</key>
                <map>
-                  <key>name</key>
-                  <string>ObjectID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Impulse</key>
                <map>
-                  <key>name</key>
-                  <string>Impulse</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>AngularImpulse</key>
                <map>
-                  <key>name</key>
-                  <string>AngularImpulse</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Local</key>
                <map>
-                  <key>name</key>
-                  <string>Local</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Applies Impulse and AngularImpulse to ObjectID.</string>
-            <key>description</key>
-            <string>Applies the supplied impulse and angular impulse to the object specified.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Applies Impulse and AngularImpulse to ObjectID.\nApplies the supplied impulse and angular impulse to the object specified.</string>
          </map>
          <key>llRefreshPrimURL</key>
          <map>
@@ -13229,11 +12432,9 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Reloads the web page shown on the sides of the object.</string>
-            <key>description</key>
-            <string>Reloads the web page shown on the sides of the object.</string>
+            <undef/>
+            <key>tooltip</key>
+            <string>Reloads the web page shown on the sides of the object.\nReloads the web page shown on the sides of the object.</string>
          </map>
          <key>llRegionSay</key>
          <map>
@@ -13244,28 +12445,24 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Channel</key>
                <map>
-                  <key>name</key>
-                  <string>Channel</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Any integer value except zero.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Text</key>
                <map>
-                  <key>name</key>
-                  <string>Text</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Message to be transmitted.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Broadcasts Text to entire region on Channel (not 0.).</string>
-            <key>description</key>
-            <string>Says the Text on the specified non-zero Channel, so that it can be heard anywhere in the region by a script listening on that channel.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Broadcasts Text to entire region on Channel (not 0.).\nSays the Text on the specified non-zero Channel, so that it can be heard anywhere in the region by a script listening on that channel.</string>
          </map>
          <key>llRegionSayTo</key>
          <map>
@@ -13276,36 +12473,31 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>TargetID</key>
                <map>
-                  <key>name</key>
-                  <string>TargetID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
-                  <string>Avatar or object to say to.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Channel</key>
                <map>
-                  <key>name</key>
-                  <string>Channel</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Output channel, any integer value.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Text</key>
                <map>
-                  <key>name</key>
-                  <string>Text</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
-                  <string>Message to be transmitted.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Says Text, on Channel, to avatar or object indicated by TargetID (if within region).</string>
-            <key>description</key>
-            <string>Says the Text on the supplied channel number, to the object or avatar specified.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Says Text, on Channel, to avatar or object indicated by TargetID (if within region).\nSays the Text on the supplied channel number, to the object or avatar specified.</string>
          </map>
          <key>llReleaseCamera</key>
          <map>
@@ -13318,20 +12510,17 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>AvatarID</key>
                <map>
-                  <key>name</key>
-                  <string>AvatarID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Return camera to agent.</string>
-            <key>description</key>
-            <string>Deprecated: Use llClearCameraParams instead.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Return camera to agent.\nDeprecated: Use llClearCameraParams instead.</string>
          </map>
          <key>llReleaseControls</key>
          <map>
@@ -13342,11 +12531,9 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Stop taking inputs.</string>
-            <key>description</key>
-            <string>Stop taking inputs from the avatar.</string>
+            <undef/>
+            <key>tooltip</key>
+            <string>Stop taking inputs.\nStop taking inputs from the avatar.</string>
          </map>
          <key>llReleaseURL</key>
          <map>
@@ -13357,20 +12544,17 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>URL</key>
                <map>
-                  <key>name</key>
-                  <string>URL</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
-                  <string>URL to release.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Releases the specified URL, it will no longer be usable.</string>
-            <key>description</key>
-            <string>Releases the specified URL, it will no longer be usable.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Releases the specified URL, it will no longer be usable.\nReleases the specified URL, it will no longer be usable.</string>
          </map>
          <key>llRemoteDataReply</key>
          <map>
@@ -13383,44 +12567,38 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>ChannelID</key>
                <map>
-                  <key>name</key>
-                  <string>ChannelID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>MessageID</key>
                <map>
-                  <key>name</key>
-                  <string>MessageID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Data</key>
                <map>
-                  <key>name</key>
-                  <string>Data</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Data</key>
                <map>
-                  <key>name</key>
-                  <string>Data</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Send an XML-RPC reply to MessageID on ChannelID with payload of string sData and integer iData. Deprecated: Use HTTP functions/events instead.</string>
-            <key>description</key>
-            <string>Deprecated: Use HTTP functions/events instead.\n
+            </map>
+            <key>tooltip</key>
+            <string>Send an XML-RPC reply to MessageID on ChannelID with payload of string sData and integer iData. Deprecated: Use HTTP functions/events instead.\nDeprecated: Use HTTP functions/events instead.\n
 				Send an XML-RPC reply to the request with kMessageID on kChannelID with payload of string sData and integer iData.\n
 				The size of sData is limited to 254 characters.</string>
          </map>
@@ -13435,13 +12613,11 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
+            <undef/>
+            <key>tooltip</key>
             <string>Deprecated: Use HTTP functions/events instead.\n
 				If an object using remote data channels changes regions, you must call this function to re-register the remote data channels.
-				You do not need to make this call if you don't change regions.</string>
-            <key>description</key>
-            <string>Deprecated: Use HTTP functions/events instead.\n
+				You do not need to make this call if you don't change regions.\nDeprecated: Use HTTP functions/events instead.\n
 				Does not work! Use llOpenRemoteDataChannel instead.</string>
          </map>
          <key>llRemoteLoadScript</key>
@@ -13455,44 +12631,38 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>TargetID</key>
                <map>
-                  <key>name</key>
-                  <string>TargetID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Name</key>
                <map>
-                  <key>name</key>
-                  <string>Name</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Running</key>
                <map>
-                  <key>name</key>
-                  <string>Running</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>StartParameter</key>
                <map>
-                  <key>name</key>
-                  <string>StartParameter</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Deprecated. Please use llRemoteLoadScriptPin instead.</string>
-            <key>description</key>
-            <string>Deprecated: Use llRemoteLoadScriptPin instead.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Deprecated. Please use llRemoteLoadScriptPin instead.\nDeprecated: Use llRemoteLoadScriptPin instead.</string>
          </map>
          <key>llRemoteLoadScriptPin</key>
          <map>
@@ -13503,53 +12673,46 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>ObjectID</key>
                <map>
-                  <key>name</key>
-                  <string>ObjectID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
-                  <string>Target prim to attempt copying into.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>ScriptName</key>
                <map>
-                  <key>name</key>
-                  <string>ScriptName</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
-                  <string>Name of the script in current inventory to copy.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>PIN</key>
                <map>
-                  <key>name</key>
-                  <string>PIN</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Integer set on target prim as a Personal Information Number code.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Running</key>
                <map>
-                  <key>name</key>
-                  <string>Running</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>If the script should be set running in the target prim.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>StartParameter</key>
                <map>
-                  <key>name</key>
-                  <string>StartParameter</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Integer. Parameter passed to the script if set to be running.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>summary</key>
+            </map>
+            <key>tooltip</key>
             <string>If the owner of the object this script is attached to can modify ObjectID,
-				they are in the same region, and the matching PIN is used, copy ScriptName into target, if Running == TRUE, start the script with StartParameter.</string>
-            <key>description</key>
-            <string>If the owner of the object containing this script can modify the object identified by the specified object key, and if the PIN matches the PIN previously set using llSetRemoteScriptAccessPin (on the target prim), then the script will be copied into target.</string>
+				they are in the same region, and the matching PIN is used, copy ScriptName into target, if Running == TRUE, start the script with StartParameter.\nIf the owner of the object containing this script can modify the object identified by the specified object key, and if the PIN matches the PIN previously set using llSetRemoteScriptAccessPin (on the target prim), then the script will be copied into target.</string>
          </map>
          <key>llRemoveFromLandBanList</key>
          <map>
@@ -13560,20 +12723,17 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>AvatarID</key>
                <map>
-                  <key>name</key>
-                  <string>AvatarID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Remove avatar from the land ban list.</string>
-            <key>description</key>
-            <string>Remove specified avatar from the land parcel ban list.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Remove avatar from the land ban list.\nRemove specified avatar from the land parcel ban list.</string>
          </map>
          <key>llRemoveFromLandPassList</key>
          <map>
@@ -13584,20 +12744,17 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>AvatarID</key>
                <map>
-                  <key>name</key>
-                  <string>AvatarID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Remove avatar from the land pass list.</string>
-            <key>description</key>
-            <string>Remove specified avatar from the land parcel pass list.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Remove avatar from the land pass list.\nRemove specified avatar from the land parcel pass list.</string>
          </map>
          <key>llRemoveInventory</key>
          <map>
@@ -13608,20 +12765,17 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>InventoryItem</key>
                <map>
-                  <key>name</key>
-                  <string>InventoryItem</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Remove the named inventory item.</string>
-            <key>description</key>
-            <string>Remove the named inventory item from the object inventory.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Remove the named inventory item.\nRemove the named inventory item from the object inventory.</string>
          </map>
          <key>llRemoveVehicleFlags</key>
          <map>
@@ -13632,20 +12786,17 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Vehiclelags</key>
                <map>
-                  <key>name</key>
-                  <string>Vehiclelags</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Removes the enabled bits in 'flags'.</string>
-            <key>description</key>
-            <string>Sets the vehicle flags to FALSE. Valid parameters can be found in the vehicle flags constants section.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Removes the enabled bits in 'flags'.\nSets the vehicle flags to FALSE. Valid parameters can be found in the vehicle flags constants section.</string>
          </map>
          <key>llRequestAgentData</key>
          <map>
@@ -13656,28 +12807,24 @@
             <key>return</key>
             <string>key</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>AvatarID</key>
                <map>
-                  <key>name</key>
-                  <string>AvatarID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Data</key>
                <map>
-                  <key>name</key>
-                  <string>Data</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Requests data about AvatarID. When data is available the dataserver event will be raised.</string>
-            <key>description</key>
-            <string>This function requests data about an avatar. If and when the information is collected, the dataserver event is triggered with the key returned from this function passed in the requested parameter. See the agent data constants (DATA_*) for details about valid values of data and what each will return in the dataserver event.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Requests data about AvatarID. When data is available the dataserver event will be raised.\nThis function requests data about an avatar. If and when the information is collected, the dataserver event is triggered with the key returned from this function passed in the requested parameter. See the agent data constants (DATA_*) for details about valid values of data and what each will return in the dataserver event.</string>
          </map>
          <key>llRequestDisplayName</key>
          <map>
@@ -13688,20 +12835,17 @@
             <key>return</key>
             <string>key</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>AvatarID</key>
                <map>
-                  <key>name</key>
-                  <string>AvatarID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
-                  <string>Avatar UUID</string>
-               </map>
-            </array>
-            <key>summary</key>
-            <string>Requests name of an avatar. When data is available, the dataserver event will be raised.</string>
-            <key>description</key>
-            <string>Requests the Display Name of the agent. When the Display Name is available the dataserver event will be raised.\n
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Requests name of an avatar. When data is available, the dataserver event will be raised.\nRequests the Display Name of the agent. When the Display Name is available the dataserver event will be raised.\n
 				The avatar identified does not need to be in the same region or online at the time of the request.\n
 				Returns a key that is used to identify the dataserver event when it is raised.</string>
          </map>
@@ -13714,20 +12858,17 @@
             <key>return</key>
             <string>key</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>InventoryItem</key>
                <map>
-                  <key>name</key>
-                  <string>InventoryItem</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Requests data from object's inventory object. When data is available the dataserver event will be raised.</string>
-            <key>description</key>
-            <string>Requests data for the object inventory item named.\n
+            </map>
+            <key>tooltip</key>
+            <string>Requests data from object's inventory object. When data is available the dataserver event will be raised.\nRequests data for the object inventory item named.\n
 				When data is available the dataserver event will be raised with the key returned from this function in the requested parameter.\n
 				The only request currently implemented is to request data from landmarks, where the data returned is in the form "&lt;float, float, float&gt;" which can be cast to a vector. This position is in region local coordinates.</string>
          </map>
@@ -13740,28 +12881,24 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>AvatarID</key>
                <map>
-                  <key>name</key>
-                  <string>AvatarID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>PermmissionMask</key>
                <map>
-                  <key>name</key>
-                  <string>PermmissionMask</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Ask AvatarID to allow the script to do PermmissionMask (NB: Debit, ownership, link, joint, and permission requests can only go to the task's owner).</string>
-            <key>description</key>
-            <string>Ask avatar to allow the script to perform certain actions. The permission flag should be one or more PERMISSION_* constants.\n
+            </map>
+            <key>tooltip</key>
+            <string>Ask AvatarID to allow the script to do PermmissionMask (NB: Debit, ownership, link, joint, and permission requests can only go to the task's owner).\nAsk avatar to allow the script to perform certain actions. The permission flag should be one or more PERMISSION_* constants.\n
 				Multiple permissions can be requested simultaneously by ORing the constants together. Many of the permissions requests can only go to object owner.\n
 				This call will not stop script execution. If the avatar grants the requested permissions, the run_time_permissions event will be called.\n
 				Permissions for a single avatar are granted to a script, not to an object. So multiple scripts can hold permissions for multiple avatars.</string>
@@ -13775,11 +12912,9 @@
             <key>return</key>
             <string>key</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Requests one HTTPS:// (SSL) URL for use by this object. An http_request event is triggered with the results.</string>
-            <key>description</key>
-            <string>Requests one HTTPS:// (SSL) URL for use by this object. The http_request event is triggered with results.\n
+            <undef/>
+            <key>tooltip</key>
+            <string>Requests one HTTPS:// (SSL) URL for use by this object. An http_request event is triggered with the results.\nRequests one HTTPS:// (SSL) URL for use by this object. The http_request event is triggered with results.\n
 				Returns a key that is the handle used for identifying the request in the http_request event.</string>
          </map>
          <key>llRequestSimulatorData</key>
@@ -13791,28 +12926,24 @@
             <key>return</key>
             <string>key</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>RegionName</key>
                <map>
-                  <key>name</key>
-                  <string>RegionName</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Data</key>
                <map>
-                  <key>name</key>
-                  <string>Data</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Requests data about a simulator. When data is available the dataserver event will be raised.</string>
-            <key>description</key>
-            <string>Requests data about the region named. Data should use one of the DATA_SIM_* constants.\n
+            </map>
+            <key>tooltip</key>
+            <string>Requests data about a simulator. When data is available the dataserver event will be raised.\nRequests data about the region named. Data should use one of the DATA_SIM_* constants.\n
 			Returns a dataserver query ID and triggers the dataserver event when data is found. The region name is usually not case-sensitive, but sometimes will return data for a similarly-named region if the supplied case doesn't match the intended region's actual name.</string>
          </map>
          <key>llRequestURL</key>
@@ -13824,11 +12955,9 @@
             <key>return</key>
             <string>key</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Requests one HTTP:// URL for use by this object. An http_request event is triggered with the results.</string>
-            <key>description</key>
-            <string>Requests one HTTP:// URL for use by this script. The http_request event is triggered with the result of the request.\n
+            <undef/>
+            <key>tooltip</key>
+            <string>Requests one HTTP:// URL for use by this object. An http_request event is triggered with the results.\nRequests one HTTP:// URL for use by this script. The http_request event is triggered with the result of the request.\n
 				Returns a key that is the handle used for identifying the result in the http_request event.</string>
          </map>
          <key>llRequestUsername</key>
@@ -13840,20 +12969,17 @@
             <key>return</key>
             <string>key</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>AvatarID</key>
                <map>
-                  <key>name</key>
-                  <string>AvatarID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Requests single-word user-name of an avatar. When data is available the dataserver event will be raised.</string>
-            <key>description</key>
-            <string>Requests the user-name of the identified agent. When the user-name is available the dataserver event will be raised.\n
+            </map>
+            <key>tooltip</key>
+            <string>Requests single-word user-name of an avatar. When data is available the dataserver event will be raised.\nRequests the user-name of the identified agent. When the user-name is available the dataserver event will be raised.\n
 				The agent identified does not need to be in the same region or online at the time of the request.\n
 				Returns a key that is used to identify the dataserver event when it is raised.</string>
          </map>
@@ -13866,11 +12992,9 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Removes all residents from the land ban list.</string>
-            <key>description</key>
-            <string>Removes all entries from the land ban list.</string>
+            <undef/>
+            <key>tooltip</key>
+            <string>Removes all residents from the land ban list.\nRemoves all entries from the land ban list.</string>
          </map>
          <key>llResetLandPassList</key>
          <map>
@@ -13881,11 +13005,9 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Removes all residents from the land access/pass list.</string>
-            <key>description</key>
-            <string>Removes all entries from the land access/pass list.</string>
+            <undef/>
+            <key>tooltip</key>
+            <string>Removes all residents from the land access/pass list.\nRemoves all entries from the land access/pass list.</string>
          </map>
          <key>llResetOtherScript</key>
          <map>
@@ -13896,20 +13018,17 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>ScriptName</key>
                <map>
-                  <key>name</key>
-                  <string>ScriptName</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Resets script name.</string>
-            <key>description</key>
-            <string>Resets the named script.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Resets script name.\nResets the named script.</string>
          </map>
          <key>llResetScript</key>
          <map>
@@ -13920,11 +13039,9 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Resets the script.</string>
-            <key>description</key>
-            <string>Resets this script.</string>
+            <undef/>
+            <key>tooltip</key>
+            <string>Resets the script.\nResets this script.</string>
          </map>
          <key>llResetTime</key>
          <map>
@@ -13935,11 +13052,9 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Sets the time to zero.</string>
-            <key>description</key>
-            <string>Sets the internal timer to zero.</string>
+            <undef/>
+            <key>tooltip</key>
+            <string>Sets the time to zero.\nSets the internal timer to zero.</string>
          </map>
          <key>llRezAtRoot</key>
          <map>
@@ -13950,52 +13065,45 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>InventoryItem</key>
                <map>
-                  <key>name</key>
-                  <string>InventoryItem</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Position</key>
                <map>
-                  <key>name</key>
-                  <string>Position</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Velocity</key>
                <map>
-                  <key>name</key>
-                  <string>Velocity</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Rotation</key>
                <map>
-                  <key>name</key>
-                  <string>Rotation</string>
                   <key>type</key>
                   <string>rotation</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>StartParameter</key>
                <map>
-                  <key>name</key>
-                  <string>StartParameter</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Instantiate owner's InventoryItem at Position with Velocity, Rotation and with StartParameter. The last selected root object's location will be set to Position.</string>
-            <key>description</key>
-            <string>Creates object's inventory item at the given Position, with Velocity, Rotation, and StartParameter.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Instantiate owner's InventoryItem at Position with Velocity, Rotation and with StartParameter. The last selected root object's location will be set to Position.\nCreates object's inventory item at the given Position, with Velocity, Rotation, and StartParameter.</string>
          </map>
          <key>llRezObject</key>
          <map>
@@ -14006,52 +13114,45 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>InventoryItem</key>
                <map>
-                  <key>name</key>
-                  <string>InventoryItem</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Position</key>
                <map>
-                  <key>name</key>
-                  <string>Position</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Velocity</key>
                <map>
-                  <key>name</key>
-                  <string>Velocity</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Rotation</key>
                <map>
-                  <key>name</key>
-                  <string>Rotation</string>
                   <key>type</key>
                   <string>rotation</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>StartParameter</key>
                <map>
-                  <key>name</key>
-                  <string>StartParameter</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Instantiate owners InventoryItem at Position with Velocity, Rotation and with start StartParameter.</string>
-            <key>description</key>
-            <string>Creates object's inventory item at Position with Velocity and Rotation supplied. The StartParameter value will be available to the newly created object in the on_rez event or through the llGetStartParameter function.\n
+            </map>
+            <key>tooltip</key>
+            <string>Instantiate owners InventoryItem at Position with Velocity, Rotation and with start StartParameter.\nCreates object's inventory item at Position with Velocity and Rotation supplied. The StartParameter value will be available to the newly created object in the on_rez event or through the llGetStartParameter function.\n
 				The Velocity parameter is ignored if the rezzed object is not physical.</string>
          </map>
          <key>llRot2Angle</key>
@@ -14063,20 +13164,17 @@
             <key>return</key>
             <string>float</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Rotation</key>
                <map>
-                  <key>name</key>
-                  <string>Rotation</string>
                   <key>type</key>
                   <string>rotation</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the rotation angle represented by Rotation.</string>
-            <key>description</key>
-            <string>Returns the angle represented by the Rotation.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the rotation angle represented by Rotation.\nReturns the angle represented by the Rotation.</string>
          </map>
          <key>llRot2Axis</key>
          <map>
@@ -14087,20 +13185,17 @@
             <key>return</key>
             <string>vector</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Rotation</key>
                <map>
-                  <key>name</key>
-                  <string>Rotation</string>
                   <key>type</key>
                   <string>rotation</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the rotation axis represented by Rotation.</string>
-            <key>description</key>
-            <string>Returns the axis represented by the Rotation.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the rotation axis represented by Rotation.\nReturns the axis represented by the Rotation.</string>
          </map>
          <key>llRot2Euler</key>
          <map>
@@ -14111,20 +13206,17 @@
             <key>return</key>
             <string>vector</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Rotation</key>
                <map>
-                  <key>name</key>
-                  <string>Rotation</string>
                   <key>type</key>
                   <string>rotation</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the Euler representation (roll, pitch, yaw) of Rotation.</string>
-            <key>description</key>
-            <string>Returns the Euler Angle representation of the Rotation.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the Euler representation (roll, pitch, yaw) of Rotation.\nReturns the Euler Angle representation of the Rotation.</string>
          </map>
          <key>llRot2Fwd</key>
          <map>
@@ -14135,20 +13227,17 @@
             <key>return</key>
             <string>vector</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Rotation</key>
                <map>
-                  <key>name</key>
-                  <string>Rotation</string>
                   <key>type</key>
                   <string>rotation</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the forward vector defined by Rotation.</string>
-            <key>description</key>
-            <string>Returns the forward axis represented by the Rotation.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the forward vector defined by Rotation.\nReturns the forward axis represented by the Rotation.</string>
          </map>
          <key>llRot2Left</key>
          <map>
@@ -14159,20 +13248,17 @@
             <key>return</key>
             <string>vector</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Rotation</key>
                <map>
-                  <key>name</key>
-                  <string>Rotation</string>
                   <key>type</key>
                   <string>rotation</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the left vector defined by Rotation.</string>
-            <key>description</key>
-            <string>Returns the left axis represented by the Rotation.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the left vector defined by Rotation.\nReturns the left axis represented by the Rotation.</string>
          </map>
          <key>llRot2Up</key>
          <map>
@@ -14183,20 +13269,17 @@
             <key>return</key>
             <string>vector</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Rotation</key>
                <map>
-                  <key>name</key>
-                  <string>Rotation</string>
                   <key>type</key>
                   <string>rotation</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the up vector defined by Rotation.</string>
-            <key>description</key>
-            <string>Returns the up axis represented by the Rotation.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the up vector defined by Rotation.\nReturns the up axis represented by the Rotation.</string>
          </map>
          <key>llRotateTexture</key>
          <map>
@@ -14207,28 +13290,24 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Radians</key>
                <map>
-                  <key>name</key>
-                  <string>Radians</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Face</key>
                <map>
-                  <key>name</key>
-                  <string>Face</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Sets the texture rotation for the chosen face.</string>
-            <key>description</key>
-            <string>Sets the rotation of the texture on the given side.\n
+            </map>
+            <key>tooltip</key>
+            <string>Sets the texture rotation for the chosen face.\nSets the rotation of the texture on the given side.\n
 				If face is ALL_SIDES, rotates the texture of all sides.</string>
          </map>
          <key>llRotBetween</key>
@@ -14240,28 +13319,24 @@
             <key>return</key>
             <string>rotation</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Vector1</key>
                <map>
-                  <key>name</key>
-                  <string>Vector1</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Vector2</key>
                <map>
-                  <key>name</key>
-                  <string>Vector2</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the rotation to rotate Vector1 to Vector2.</string>
-            <key>description</key>
-            <string>Returns the rotation needed to rotate Vector1 to Vector2.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the rotation to rotate Vector1 to Vector2.\nReturns the rotation needed to rotate Vector1 to Vector2.</string>
          </map>
          <key>llRotLookAt</key>
          <map>
@@ -14272,36 +13347,31 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Rotation</key>
                <map>
-                  <key>name</key>
-                  <string>Rotation</string>
                   <key>type</key>
                   <string>rotation</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Strength</key>
                <map>
-                  <key>name</key>
-                  <string>Strength</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Damping</key>
                <map>
-                  <key>name</key>
-                  <string>Damping</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Cause object to point it's forward axis towards Rotation.</string>
-            <key>description</key>
-            <string>Cause object to rotate to Rotation. Good strength values are around half the mass of the object and good damping values are less than 1/10th of the strength.\n
+            </map>
+            <key>tooltip</key>
+            <string>Cause object to point it's forward axis towards Rotation.\nCause object to rotate to Rotation. Good strength values are around half the mass of the object and good damping values are less than 1/10th of the strength.\n
 				Asymmetrical shapes require smaller damping.\n
 				A strength of 0.0 cancels the look at.</string>
          </map>
@@ -14314,28 +13384,24 @@
             <key>return</key>
             <string>integer</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Rotation</key>
                <map>
-                  <key>name</key>
-                  <string>Rotation</string>
                   <key>type</key>
                   <string>rotation</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>LeeWay</key>
                <map>
-                  <key>name</key>
-                  <string>LeeWay</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Set rotations with error of LeeWay as a rotational target and return an ID for the rotational target.</string>
-            <key>description</key>
-            <string>Set object rotation within the given lee way of rotation as a rotational target and return an integer number for the target.\n
+            </map>
+            <key>tooltip</key>
+            <string>Set rotations with error of LeeWay as a rotational target and return an ID for the rotational target.\nSet object rotation within the given lee way of rotation as a rotational target and return an integer number for the target.\n
 				The returned number is a handle that can be used in llRotTargetRemove.</string>
          </map>
          <key>llRotTargetRemove</key>
@@ -14347,20 +13413,17 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Handle</key>
                <map>
-                  <key>name</key>
-                  <string>Handle</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Removes rotational target number.</string>
-            <key>description</key>
-            <string>Remove rotational target indicated by the handle.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Removes rotational target number.\nRemove rotational target indicated by the handle.</string>
          </map>
          <key>llRound</key>
          <map>
@@ -14371,20 +13434,17 @@
             <key>return</key>
             <string>integer</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Value</key>
                <map>
-                  <key>name</key>
-                  <string>Value</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns Value rounded to the nearest integer.</string>
-            <key>description</key>
-            <string>Returns the Value rounded to the nearest integer.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns Value rounded to the nearest integer.\nReturns the Value rounded to the nearest integer.</string>
          </map>
          <key>llSameGroup</key>
          <map>
@@ -14395,20 +13455,17 @@
             <key>return</key>
             <string>integer</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>ID</key>
                <map>
-                  <key>name</key>
-                  <string>ID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns TRUE if avatar ID is in the same region and has the same active group, otherwise FALSE.</string>
-            <key>description</key>
-            <string>Returns TRUE if the object or agent identified is in the same simulator and has the same active group as this object. Otherwise, returns FALSE.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns TRUE if avatar ID is in the same region and has the same active group, otherwise FALSE.\nReturns TRUE if the object or agent identified is in the same simulator and has the same active group as this object. Otherwise, returns FALSE.</string>
          </map>
          <key>llSay</key>
          <map>
@@ -14419,28 +13476,24 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Channel</key>
                <map>
-                  <key>name</key>
-                  <string>Channel</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Channel to use to say text on.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Text</key>
                <map>
-                  <key>name</key>
-                  <string>Text</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
-                  <string>Text to say.</string>
-               </map>
-            </array>
-            <key>summary</key>
-            <string>Says Text on Channel.</string>
-            <key>description</key>
-            <string>Say Text on channel.\n
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Says Text on Channel.\nSay Text on channel.\n
 			Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 to 2,147,483,648 are private channels that are not sent to avatars but other scripts can listen for through the llListen/listen event system.</string>
          </map>
          <key>llScaleTexture</key>
@@ -14452,36 +13505,31 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Horizontal</key>
                <map>
-                  <key>name</key>
-                  <string>Horizontal</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Vertical</key>
                <map>
-                  <key>name</key>
-                  <string>Vertical</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Face</key>
                <map>
-                  <key>name</key>
-                  <string>Face</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Sets the texture's S and T scales for the chosen Face.</string>
-            <key>description</key>
-            <string>Sets the Horizontal and Vertical repeats per Face on Face.\n
+            </map>
+            <key>tooltip</key>
+            <string>Sets the texture's S and T scales for the chosen Face.\nSets the Horizontal and Vertical repeats per Face on Face.\n
 				If Face == ALL_SIDES, all sides are set in one call.\n
 				Negative values for horizontal and vertical will flip the texture.</string>
          </map>
@@ -14494,20 +13542,17 @@
             <key>return</key>
             <string>integer</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Position</key>
                <map>
-                  <key>name</key>
-                  <string>Position</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns TRUE if Position is over public land, sandbox land, land that doesn't allow everyone to edit and build, or land that doesn't allow outside scripts.</string>
-            <key>description</key>
-            <string>Returns true if the position is over public land, land that doesn't allow everyone to edit and build, or land that doesn't allow outside scripts.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns TRUE if Position is over public land, sandbox land, land that doesn't allow everyone to edit and build, or land that doesn't allow outside scripts.\nReturns true if the position is over public land, land that doesn't allow everyone to edit and build, or land that doesn't allow outside scripts.</string>
          </map>
          <key>llScriptProfiler</key>
          <map>
@@ -14518,21 +13563,18 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>State</key>
                <map>
-                  <key>name</key>
-                  <string>State</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>PROFILE_NONE or PROFILE_SCRIPT_MEMORY flags to control the state.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>summary</key>
+            </map>
+            <key>tooltip</key>
             <string>Enables or disables script profiling options. Currently only supports PROFILE_SCRIPT_MEMORY (Mono only) and PROFILE_NONE.\n
-				MAY SIGNIFICANTLY REDUCE SCRIPT PERFORMANCE!.</string>
-            <key>description</key>
-            <string>Enables or disables the scripts profiling state.. Currently only supports PROFILE_SCRIPT_MEMORY (Mono only) and PROFILE_NONE.\n
+				MAY SIGNIFICANTLY REDUCE SCRIPT PERFORMANCE!.\nEnables or disables the scripts profiling state.. Currently only supports PROFILE_SCRIPT_MEMORY (Mono only) and PROFILE_NONE.\n
 				MAY SIGNIFICANTLY REDUCE SCRIPT PERFORMANCE!.</string>
          </map>
          <key>llSendRemoteData</key>
@@ -14546,46 +13588,40 @@
             <key>return</key>
             <string>key</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>ChannelID</key>
                <map>
-                  <key>name</key>
-                  <string>ChannelID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Destination</key>
                <map>
-                  <key>name</key>
-                  <string>Destination</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Value</key>
                <map>
-                  <key>name</key>
-                  <string>Value</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Text</key>
                <map>
-                  <key>name</key>
-                  <string>Text</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
+            </map>
+            <key>tooltip</key>
             <string>Deprecated: use HTTP instead.\n
 				Sends an XML-RPC request to Destination through ChannelID with payload of ChannelID (in a string), integer Value and string Text.
-				Returns a key that is the message_id for the resulting remote_data events.</string>
-            <key>description</key>
-            <string>Send an XML-RPC request to the Destination (probably an URL) through the ChannelID, with a payload of ChannelID (in a string), integer Value and string Text.</string>
+				Returns a key that is the message_id for the resulting remote_data events.\nSend an XML-RPC request to the Destination (probably an URL) through the ChannelID, with a payload of ChannelID (in a string), integer Value and string Text.</string>
          </map>
          <key>llSensor</key>
          <map>
@@ -14596,52 +13632,45 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Name</key>
                <map>
-                  <key>name</key>
-                  <string>Name</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
-                  <string>Object or avatar name.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>ID</key>
                <map>
-                  <key>name</key>
-                  <string>ID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
-                  <string>Object or avatar UUID.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Type</key>
                <map>
-                  <key>name</key>
-                  <string>Type</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Bit-field mask of AGENT, AGENT_BY_LEGACY_NAME, AGENT_BY_USERNAME, ACTIVE, PASSIVE, and/or SCRIPTED</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Range</key>
                <map>
-                  <key>name</key>
-                  <string>Range</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
-                  <string>Distance to scan. 0.0 - 96.0m.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Arc</key>
                <map>
-                  <key>name</key>
-                  <string>Arc</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
-                  <string>Angle, in radians, from the local x-axis of the prim to scan.</string>
-               </map>
-            </array>
-            <key>summary</key>
-            <string>Performs a single scan for Name and ID with Type (AGENT, ACTIVE, PASSIVE, and/or SCRIPTED) within Range meters and Arc radians of forward vector (Name, ID, and/or Type can be empty or 0).</string>
-            <key>description</key>
-            <string>Performs a single scan for Name and ID with Type within Range meters and Arc radians of the forward vector.\n
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Performs a single scan for Name and ID with Type (AGENT, ACTIVE, PASSIVE, and/or SCRIPTED) within Range meters and Arc radians of forward vector (Name, ID, and/or Type can be empty or 0).\nPerforms a single scan for Name and ID with Type within Range meters and Arc radians of the forward vector.\n
 				Specifying a blank Name or NULL_KEY ID will prevent filtering results for a particular Name or ID. A range of 0.0 does not perform a scan. The Type parameter should be an object type constant value.</string>
          </map>
          <key>llSensorRemove</key>
@@ -14653,11 +13682,9 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>removes sensor.</string>
-            <key>description</key>
-            <string>Removes the sensor set by llSensorRepeat.</string>
+            <undef/>
+            <key>tooltip</key>
+            <string>removes sensor.\nRemoves the sensor set by llSensorRepeat.</string>
          </map>
          <key>llSensorRepeat</key>
          <map>
@@ -14668,60 +13695,52 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Name</key>
                <map>
-                  <key>name</key>
-                  <string>Name</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
-                  <string>Object or avatar name.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>ID</key>
                <map>
-                  <key>name</key>
-                  <string>ID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
-                  <string>Object or avatar UUID.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Type</key>
                <map>
-                  <key>name</key>
-                  <string>Type</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Bit-field mask of AGENT, AGENT_BY_LEGACY_NAME, AGENT_BY_USERNAME, ACTIVE, PASSIVE, and/or SCRIPTED</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Range</key>
                <map>
-                  <key>name</key>
-                  <string>Range</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
-                  <string>Distance to scan. 0.0 - 96.0m.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Arc</key>
                <map>
-                  <key>name</key>
-                  <string>Arc</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
-                  <string>Angle, in radians, from the local x-axis of the prim to scan.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Rate</key>
                <map>
-                  <key>name</key>
-                  <string>Rate</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
-                  <string>Period, in seconds, between scans.</string>
-               </map>
-            </array>
-            <key>summary</key>
-            <string>Sets a callback for Name and ID with Type (AGENT, ACTIVE, PASSIVE, and/or SCRIPTED) within Range meters and Arc radians of forward vector (Name, ID, and/or Type can be empty or 0) and repeats every Rate seconds.</string>
-            <key>description</key>
-            <string>Performs a repeating sensor scan for Name and ID with Type within Range meters and Arc radians of the forward vector (Name and/or ID can be empty or NULL_KEY).\n
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets a callback for Name and ID with Type (AGENT, ACTIVE, PASSIVE, and/or SCRIPTED) within Range meters and Arc radians of forward vector (Name, ID, and/or Type can be empty or 0) and repeats every Rate seconds.\nPerforms a repeating sensor scan for Name and ID with Type within Range meters and Arc radians of the forward vector (Name and/or ID can be empty or NULL_KEY).\n
 				A range of 0.0m does not perform a scan. The parameters have the same function as llSensor, except Rate, which defines the number of seconds between repeated scans and subsequent sensor or no_sensor events.</string>
          </map>
          <key>llSetAlpha</key>
@@ -14733,28 +13752,24 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Opacity</key>
                <map>
-                  <key>name</key>
-                  <string>Opacity</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Face</key>
                <map>
-                  <key>name</key>
-                  <string>Face</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Sets the alpha (opacity) of Face.</string>
-            <key>description</key>
-            <string>Sets the alpha (opacity) value for Face. If Face is ALL_SIDES, sets the alpha for all faces. The alpha value is interpreted as an opacity percentage (1.0 is fully opaque, and 0.2 is mostly transparent). This function will clamp alpha values less than 0.1 to 0.1 and greater than 1.0 to 1.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the alpha (opacity) of Face.\nSets the alpha (opacity) value for Face. If Face is ALL_SIDES, sets the alpha for all faces. The alpha value is interpreted as an opacity percentage (1.0 is fully opaque, and 0.2 is mostly transparent). This function will clamp alpha values less than 0.1 to 0.1 and greater than 1.0 to 1.</string>
          </map>
          <key>llSetAngularVelocity</key>
          <map>
@@ -14765,28 +13780,24 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Force</key>
                <map>
-                  <key>name</key>
-                  <string>Force</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
-                  <string>The force to apply.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Local</key>
                <map>
-                  <key>name</key>
-                  <string>Local</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>If TRUE, the Force is treated as a local directional vector instead of a regional directional vector.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Sets an object's angular velocity, in local coordinates if local == TRUE (if the script is physical).</string>
-            <key>description</key>
-            <string>Applies angular (rotational) velocity to a physical object. Has no effect on non-physical objects.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Sets an object's angular velocity, in local coordinates if local == TRUE (if the script is physical).\nApplies angular (rotational) velocity to a physical object. Has no effect on non-physical objects.</string>
          </map>
          <key>llSetBuoyancy</key>
          <map>
@@ -14797,20 +13808,17 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Buoyancy</key>
                <map>
-                  <key>name</key>
-                  <string>Buoyancy</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Set the tasks buoyancy (0 is none, &lt; 1.0 sinks, 1.0 floats, &gt; 1.0 rises).</string>
-            <key>description</key>
-            <string>Set the object buoyancy. A value of 0 is none, less than 1.0 sinks, 1.0 floats, and greater than 1.0 rises.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Set the tasks buoyancy (0 is none, &lt; 1.0 sinks, 1.0 floats, &gt; 1.0 rises).\nSet the object buoyancy. A value of 0 is none, less than 1.0 sinks, 1.0 floats, and greater than 1.0 rises.</string>
          </map>
          <key>llSetCameraAtOffset</key>
          <map>
@@ -14821,20 +13829,17 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Offset</key>
                <map>
-                  <key>name</key>
-                  <string>Offset</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Sets the camera used in this object, at offset, if an avatar sits on it.</string>
-            <key>description</key>
-            <string>Sets the offset that an avatar's camera will be moved to if the avatar sits on the object.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the camera used in this object, at offset, if an avatar sits on it.\nSets the offset that an avatar's camera will be moved to if the avatar sits on the object.</string>
          </map>
          <key>llSetCameraEyeOffset</key>
          <map>
@@ -14845,20 +13850,17 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Offset</key>
                <map>
-                  <key>name</key>
-                  <string>Offset</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Sets the camera eye offset used in this object if an avatar sits on it.</string>
-            <key>description</key>
-            <string>Sets the camera eye offset used in this object if an avatar sits on it.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the camera eye offset used in this object if an avatar sits on it.\nSets the camera eye offset used in this object if an avatar sits on it.</string>
          </map>
          <key>llSetCameraParams</key>
          <map>
@@ -14869,20 +13871,17 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Parameters</key>
                <map>
-                  <key>name</key>
-                  <string>Parameters</string>
                   <key>type</key>
                   <string>list</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Sets multiple camera parameters at once. List format is [ rule-1, data-1, rule-2, data-2 . . . rule-n, data-n ].</string>
-            <key>description</key>
-            <string>Sets multiple camera parameters at once.\n
+            </map>
+            <key>tooltip</key>
+            <string>Sets multiple camera parameters at once. List format is [ rule-1, data-1, rule-2, data-2 . . . rule-n, data-n ].\nSets multiple camera parameters at once.\n
 				List format is [rule-1, value-1, rule-2, value-2 ... rule-N, value-N]</string>
          </map>
          <key>llSetClickAction</key>
@@ -14894,20 +13893,17 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Action</key>
                <map>
-                  <key>name</key>
-                  <string>Action</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>A CLICK_ACTION_* flag</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Sets the action performed when a prim is clicked upon.</string>
-            <key>description</key>
-            <string>Sets the Action performed when a prim is clicked upon.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the action performed when a prim is clicked upon.\nSets the Action performed when a prim is clicked upon.</string>
          </map>
          <key>llSetColor</key>
          <map>
@@ -14918,28 +13914,24 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Colour</key>
                <map>
-                  <key>name</key>
-                  <string>Colour</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Face</key>
                <map>
-                  <key>name</key>
-                  <string>Face</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Sets the color, for the face.</string>
-            <key>description</key>
-            <string>Sets the colour of the side specified. If Face is ALL_SIDES, sets the colour on all faces.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the color, for the face.\nSets the colour of the side specified. If Face is ALL_SIDES, sets the colour on all faces.</string>
          </map>
          <key>llSetContentType</key>
          <map>
@@ -14950,28 +13942,24 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>HTTPRequestID</key>
                <map>
-                  <key>name</key>
-                  <string>HTTPRequestID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
-                  <string>A valid http_request() key</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>ContentType</key>
                <map>
-                  <key>name</key>
-                  <string>ContentType</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Media type to use with any following llHTTPResponse(HTTPRequestID, ...)</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Set the media type of an LSL HTTP server response.</string>
-            <key>description</key>
-            <string>Set the media type of an LSL HTTP server response.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Set the media type of an LSL HTTP server response.\nSet the media type of an LSL HTTP server response.</string>
          </map>
          <key>llSetDamage</key>
          <map>
@@ -14982,20 +13970,17 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Damage</key>
                <map>
-                  <key>name</key>
-                  <string>Damage</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Sets the amount of damage that will be done to an avatar that this task hits.	Task will be killed.</string>
-            <key>description</key>
-            <string>Sets the amount of damage that will be done to an avatar that this object hits. This object will be destroyed on damaging an avatar, and no collision event is triggered.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the amount of damage that will be done to an avatar that this task hits.	Task will be killed.\nSets the amount of damage that will be done to an avatar that this object hits. This object will be destroyed on damaging an avatar, and no collision event is triggered.</string>
          </map>
          <key>llSetForce</key>
          <map>
@@ -15006,28 +13991,24 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Force</key>
                <map>
-                  <key>name</key>
-                  <string>Force</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
-                  <string>Directional force.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Local</key>
                <map>
-                  <key>name</key>
-                  <string>Local</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Boolean, if TRUE uses local axis, if FALSE uses region axis.</string>
-               </map>
-            </array>
-            <key>summary</key>
-            <string>Sets Force on object, in local coordinates if Local == TRUE (if the script is physical).</string>
-            <key>description</key>
-            <string>If the object is physical, this function sets the force.\n
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets Force on object, in local coordinates if Local == TRUE (if the script is physical).\nIf the object is physical, this function sets the force.\n
 				The vector is in local coordinates if local is TRUE, global if FALSE.</string>
          </map>
          <key>llSetForceAndTorque</key>
@@ -15039,36 +14020,31 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Force</key>
                <map>
-                  <key>name</key>
-                  <string>Force</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
-                  <string>Directional force.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Torque</key>
                <map>
-                  <key>name</key>
-                  <string>Torque</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
-                  <string>Torque force.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Local</key>
                <map>
-                  <key>name</key>
-                  <string>Local</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Boolean, if TRUE uses local axis, if FALSE uses region axis.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Sets the Force and Torque of object, in local coordinates if Local == TRUE (if the script is physical).</string>
-            <key>description</key>
-            <string>If the object is physical, this function sets the Force and Torque. The vectors are in local coordinates if Local is TRUE, global if FALSE.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the Force and Torque of object, in local coordinates if Local == TRUE (if the script is physical).\nIf the object is physical, this function sets the Force and Torque. The vectors are in local coordinates if Local is TRUE, global if FALSE.</string>
          </map>
          <key>llSetHoverHeight</key>
          <map>
@@ -15079,36 +14055,31 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Height</key>
                <map>
-                  <key>name</key>
-                  <string>Height</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
-                  <string>Distance above the ground.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Water</key>
                <map>
-                  <key>name</key>
-                  <string>Water</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Boolean, if TRUE then hover above water too.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Tau</key>
                <map>
-                  <key>name</key>
-                  <string>Tau</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
-                  <string>Seconds to critically damp in.</string>
-               </map>
-            </array>
-            <key>summary</key>
-            <string>Critically damps to a Height (either above ground level or above the higher of land and water if water == TRUE).</string>
-            <key>description</key>
-            <string>Critically damps to a Height. The height is above ground and water (which ever is greater) if water is TRUE. Only works with physics-enabled objects.\n
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Critically damps to a Height (either above ground level or above the higher of land and water if water == TRUE).\nCritically damps to a Height. The height is above ground and water (which ever is greater) if water is TRUE. Only works with physics-enabled objects.\n
 				Do not use with vehicles. Use llStopHover to stop hovering.</string>
          </map>
          <key>llSetInventoryPermMask</key>
@@ -15120,36 +14091,31 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>InventoryItem</key>
                <map>
-                  <key>name</key>
-                  <string>InventoryItem</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
-                  <string>An item in the prim's inventory</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>PermissionFlag</key>
                <map>
-                  <key>name</key>
-                  <string>PermissionFlag</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>MASK_* flag</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>PermissionMask</key>
                <map>
-                  <key>name</key>
-                  <string>PermissionMask</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Permission bit-field (PERM_* flags)</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Sets the given permission mask to the new value on the inventory item.</string>
-            <key>description</key>
-            <string>Sets the given permission mask to the new value on the inventory item.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the given permission mask to the new value on the inventory item.\nSets the given permission mask to the new value on the inventory item.</string>
          </map>
          <key>llSetKeyframedMotion</key>
          <map>
@@ -15160,28 +14126,24 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Keyframes</key>
                <map>
-                  <key>name</key>
-                  <string>Keyframes</string>
                   <key>type</key>
                   <string>list</string>
-                  <key>description</key>
-                  <string>Strided keyframe list of the form: position, orientation, time. Each keyframe is interpreted relative to the previous transform of the object.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Options</key>
                <map>
-                  <key>name</key>
-                  <string>Options</string>
                   <key>type</key>
                   <string>list</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Requests that a non-physical object be key-framed according to key-frame list.</string>
-            <key>description</key>
-            <string>Specify a list of times, positions, and orientations to be followed by an object. The object will be smoothly moved between key-frames by the simulator. Collisions with other non-physical or key-framed objects will be ignored (no script events will fire and collision processing will not occur). Collisions with physical objects will be computed and reported, but the key-framed object will be unaffected by those collisions.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Requests that a non-physical object be key-framed according to key-frame list.\nSpecify a list of times, positions, and orientations to be followed by an object. The object will be smoothly moved between key-frames by the simulator. Collisions with other non-physical or key-framed objects will be ignored (no script events will fire and collision processing will not occur). Collisions with physical objects will be computed and reported, but the key-framed object will be unaffected by those collisions.</string>
          </map>
          <key>llSetLinkAlpha</key>
          <map>
@@ -15192,36 +14154,31 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>LinkNumber</key>
                <map>
-                  <key>name</key>
-                  <string>LinkNumber</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Opacity</key>
                <map>
-                  <key>name</key>
-                  <string>Opacity</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Face</key>
                <map>
-                  <key>name</key>
-                  <string>Face</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>If a prim exists in the link chain at LinkNumber, set Face to Opacity.</string>
-            <key>description</key>
-            <string>Sets the Face, on the linked prim specified, to the Opacity.</string>
+            </map>
+            <key>tooltip</key>
+            <string>If a prim exists in the link chain at LinkNumber, set Face to Opacity.\nSets the Face, on the linked prim specified, to the Opacity.</string>
          </map>
          <key>llSetLinkCamera</key>
          <map>
@@ -15232,36 +14189,31 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>LinkNumber</key>
                <map>
-                  <key>name</key>
-                  <string>LinkNumber</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Prim link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>EyeOffset</key>
                <map>
-                  <key>name</key>
-                  <string>EyeOffset</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
-                  <string>Offset, relative to the object's centre and expressed in local coordinates, that the camera looks from.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>LookOffset</key>
                <map>
-                  <key>name</key>
-                  <string>LookOffset</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
-                  <string>Offset, relative to the object's centre and expressed in local coordinates, that the camera looks toward.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Sets the camera eye offset, and the offset that camera is looking at, for avatars that sit on the linked prim.</string>
-            <key>description</key>
-            <string>Sets the camera eye offset, and the offset that camera is looking at, for avatars that sit on the linked prim.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the camera eye offset, and the offset that camera is looking at, for avatars that sit on the linked prim.\nSets the camera eye offset, and the offset that camera is looking at, for avatars that sit on the linked prim.</string>
          </map>
          <key>llSetLinkColor</key>
          <map>
@@ -15272,36 +14224,31 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>LinkNumber</key>
                <map>
-                  <key>name</key>
-                  <string>LinkNumber</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Colour</key>
                <map>
-                  <key>name</key>
-                  <string>Colour</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
-                  <string>Colour in RGB &lt;R.R, G.G, B.B&gt;</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Face</key>
                <map>
-                  <key>name</key>
-                  <string>Face</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Side number or ALL_SIDES.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>If a task exists in the link chain at LinkNumber, set the Face to color.</string>
-            <key>description</key>
-            <string>Sets the colour of the linked child's side, specified by LinkNumber.</string>
+            </map>
+            <key>tooltip</key>
+            <string>If a task exists in the link chain at LinkNumber, set the Face to color.\nSets the colour of the linked child's side, specified by LinkNumber.</string>
          </map>
          <key>llSetLinkMedia</key>
          <map>
@@ -15312,36 +14259,31 @@
             <key>return</key>
             <string>integer</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Link</key>
                <map>
-                  <key>name</key>
-                  <string>Link</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims).</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Face</key>
                <map>
-                  <key>name</key>
-                  <string>Face</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Face number.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Parameters</key>
                <map>
-                  <key>name</key>
-                  <string>Parameters</string>
                   <key>type</key>
                   <string>list</string>
-                  <key>description</key>
-                  <string>A set of name/value pairs (in no particular order)</string>
-               </map>
-            </array>
-            <key>summary</key>
-            <string>Set the media parameters for a particular face on linked prim.	Parameters is a list of name/value pairs (in no particular order). If media is not already on this object, add it. Parameters not specified are unchanged, or if new media is added set to the default specified.</string>
-            <key>description</key>
-            <string>Set the media parameters for a particular face on the linked prim(s) without a delay.\n
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Set the media parameters for a particular face on linked prim.	Parameters is a list of name/value pairs (in no particular order). If media is not already on this object, add it. Parameters not specified are unchanged, or if new media is added set to the default specified.\nSet the media parameters for a particular face on the linked prim(s) without a delay.\n
 				Returns an integer that is a STATUS_* flag which details the success/failure of the operation(s).</string>
          </map>
          <key>llSetLinkPrimitiveParams</key>
@@ -15353,28 +14295,24 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>LinkNumber</key>
                <map>
-                  <key>name</key>
-                  <string>LinkNumber</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Parameters</key>
                <map>
-                  <key>name</key>
-                  <string>Parameters</string>
                   <key>type</key>
                   <string>list</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Set primitive parameters for LinkNumber based on Parameters.</string>
-            <key>description</key>
-            <string>Sets the parameters (or properties) of any linked prim in one step.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Set primitive parameters for LinkNumber based on Parameters.\nSets the parameters (or properties) of any linked prim in one step.</string>
          </map>
          <key>llSetLinkPrimitiveParamsFast</key>
          <map>
@@ -15385,28 +14323,24 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>LinkNumber</key>
                <map>
-                  <key>name</key>
-                  <string>LinkNumber</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Parameters</key>
                <map>
-                  <key>name</key>
-                  <string>Parameters</string>
                   <key>type</key>
                   <string>list</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Set primitive parameters for LinkNumber based on Parameters, without a delay.</string>
-            <key>description</key>
-            <string>Set parameters for link number, from the list of Parameters, with no built-in script sleep. This function is identical to llSetLinkPrimitiveParams, except without the delay.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Set primitive parameters for LinkNumber based on Parameters, without a delay.\nSet parameters for link number, from the list of Parameters, with no built-in script sleep. This function is identical to llSetLinkPrimitiveParams, except without the delay.</string>
          </map>
          <key>llSetLinkTexture</key>
          <map>
@@ -15417,36 +14351,31 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>LinkNumber</key>
                <map>
-                  <key>name</key>
-                  <string>LinkNumber</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Texture</key>
                <map>
-                  <key>name</key>
-                  <string>Texture</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Face</key>
                <map>
-                  <key>name</key>
-                  <string>Face</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Sets the Texture of Face for LinkNumber.</string>
-            <key>description</key>
-            <string>Sets the Texture of linked prims.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the Texture of Face for LinkNumber.\nSets the Texture of linked prims.</string>
          </map>
          <key>llSetLinkTextureAnim</key>
          <map>
@@ -15457,76 +14386,66 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>LinkNumber</key>
                <map>
-                  <key>name</key>
-                  <string>LinkNumber</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag to effect</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Mode</key>
                <map>
-                  <key>name</key>
-                  <string>Mode</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Mask of Mode flags.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Face</key>
                <map>
-                  <key>name</key>
-                  <string>Face</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Face number or ALL_SIDES.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>SizeX</key>
                <map>
-                  <key>name</key>
-                  <string>SizeX</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Horizontal frames (ignored for ROTATE and SCALE).</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>SizeY</key>
                <map>
-                  <key>name</key>
-                  <string>SizeY</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Vertical frames (ignored for ROTATE and SCALE).</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Start</key>
                <map>
-                  <key>name</key>
-                  <string>Start</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
-                  <string>Start position/frame number (or radians for ROTATE).</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Length</key>
                <map>
-                  <key>name</key>
-                  <string>Length</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
-                  <string>number of frames to display (or radians for ROTATE).</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Rate</key>
                <map>
-                  <key>name</key>
-                  <string>Rate</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
-                  <string>Frames per second (must not greater than zero).</string>
-               </map>
-            </array>
-            <key>summary</key>
-            <string>Animate the texture on the specified prim's face/faces.</string>
-            <key>description</key>
-            <string>Animate the texture on the specified face/faces of the specified prim/prims by setting the texture scale and offset.\n
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Animate the texture on the specified prim's face/faces.\nAnimate the texture on the specified face/faces of the specified prim/prims by setting the texture scale and offset.\n
 				Identical to llSetTextureAnim except able to modify any prim in the link set.</string>
          </map>
          <key>llSetLocalRot</key>
@@ -15538,20 +14457,17 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Rotation</key>
                <map>
-                  <key>name</key>
-                  <string>Rotation</string>
                   <key>type</key>
                   <string>rotation</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Sets the rotation of a child prim relative to the root prim.</string>
-            <key>description</key>
-            <string>Sets the rotation of a child prim relative to the root prim.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the rotation of a child prim relative to the root prim.\nSets the rotation of a child prim relative to the root prim.</string>
          </map>
          <key>llSetMemoryLimit</key>
          <map>
@@ -15562,20 +14478,17 @@
             <key>return</key>
             <string>integer</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Limit</key>
                <map>
-                  <key>name</key>
-                  <string>Limit</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>The amount to reserve, which must be less than the allowed maximum (currently 64KB) and not already have been exceeded.</string>
-               </map>
-            </array>
-            <key>summary</key>
-            <string>Request Limit bytes to be reserved for this script. This function has no effect if the script is running in the LSO VM.</string>
-            <key>description</key>
-            <string>Request Limit bytes to be reserved for this script. This function has no effect if the script is running in the LSO VM.\n
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Request Limit bytes to be reserved for this script. This function has no effect if the script is running in the LSO VM.\nRequest Limit bytes to be reserved for this script. This function has no effect if the script is running in the LSO VM.\n
 				Return TRUE or FALSE indicating whether the limit was set successfully.</string>
          </map>
          <key>llSetObjectDesc</key>
@@ -15587,20 +14500,17 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Description</key>
                <map>
-                  <key>name</key>
-                  <string>Description</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Sets the object's description.</string>
-            <key>description</key>
-            <string>Sets the description of the scripted prim. You can get the description using llGetObjectDesc.\n
+            </map>
+            <key>tooltip</key>
+            <string>Sets the object's description.\nSets the description of the scripted prim. You can get the description using llGetObjectDesc.\n
 				The description is limited to 127 characters.</string>
          </map>
          <key>llSetObjectName</key>
@@ -15612,20 +14522,17 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Name</key>
                <map>
-                  <key>name</key>
-                  <string>Name</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Sets the object's name.</string>
-            <key>description</key>
-            <string>Sets the object's name.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the object's name.\nSets the object's name.</string>
          </map>
          <key>llSetObjectPermMask</key>
          <map>
@@ -15636,28 +14543,24 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>PermissionFlag</key>
                <map>
-                  <key>name</key>
-                  <string>PermissionFlag</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>MASK_* flag</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>PermissionMask</key>
                <map>
-                  <key>name</key>
-                  <string>PermissionMask</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Permission bit-field (PERM_* flags)</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Sets the given permission mask to the new value on the root object the task is attached to.</string>
-            <key>description</key>
-            <string>Sets the given permission mask to the new value on the root object the task is attached to.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the given permission mask to the new value on the root object the task is attached to.\nSets the given permission mask to the new value on the root object the task is attached to.</string>
          </map>
          <key>llSetParcelMusicURL</key>
          <map>
@@ -15668,20 +14571,17 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>URL</key>
                <map>
-                  <key>name</key>
-                  <string>URL</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Sets the streaming audio URL for the parcel object is on.</string>
-            <key>description</key>
-            <string>Sets the streaming audio URL for the parcel the scripted object is on (the object must be owned by the owner of the parcel, if the parcel is group owned the object must be owned by that group).</string>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the streaming audio URL for the parcel object is on.\nSets the streaming audio URL for the parcel the scripted object is on (the object must be owned by the owner of the parcel, if the parcel is group owned the object must be owned by that group).</string>
          </map>
          <key>llSetPayPrice</key>
          <map>
@@ -15692,28 +14592,24 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Price</key>
                <map>
-                  <key>name</key>
-                  <string>Price</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>QuickButtons</key>
                <map>
-                  <key>name</key>
-                  <string>QuickButtons</string>
                   <key>type</key>
                   <string>list</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Sets the default amount when someone chooses to pay this object.</string>
-            <key>description</key>
-            <string>Sets the values of the buttons and the text box default for the Pay dialogue, when a user right-clicks on the object and selects "Pay".\n
+            </map>
+            <key>tooltip</key>
+            <string>Sets the default amount when someone chooses to pay this object.\nSets the values of the buttons and the text box default for the Pay dialogue, when a user right-clicks on the object and selects "Pay".\n
 				llSetPayPrice will affect what buttons exist, what their values are, and whether or not there is a manual payment text entry box.</string>
          </map>
          <key>llSetPhysicsMaterial</key>
@@ -15725,52 +14621,45 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>MaterialBits</key>
                <map>
-                  <key>name</key>
-                  <string>MaterialBits</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>GravityMultiplier</key>
                <map>
-                  <key>name</key>
-                  <string>GravityMultiplier</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Restitution</key>
                <map>
-                  <key>name</key>
-                  <string>Restitution</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Friction</key>
                <map>
-                  <key>name</key>
-                  <string>Friction</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Density</key>
                <map>
-                  <key>name</key>
-                  <string>Density</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Sets the requested attributes of the root object's physics material.</string>
-            <key>description</key>
-            <string>Sets the requested attributes of the root object's physics material.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the requested attributes of the root object's physics material.\nSets the requested attributes of the root object's physics material.</string>
          </map>
          <key>llSetPos</key>
          <map>
@@ -15781,20 +14670,17 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Position</key>
                <map>
-                  <key>name</key>
-                  <string>Position</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Sets the position (if the script isn't physical).</string>
-            <key>description</key>
-            <string>If the object is not physical, this function sets the position in region coordinates. If the object is a child prim, the position is treated as root relative and the link-set is adjusted.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the position (if the script isn't physical).\nIf the object is not physical, this function sets the position in region coordinates. If the object is a child prim, the position is treated as root relative and the link-set is adjusted.</string>
          </map>
          <key>llSetPrimitiveParams</key>
          <map>
@@ -15805,20 +14691,17 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Parameters</key>
                <map>
-                  <key>name</key>
-                  <string>Parameters</string>
                   <key>type</key>
                   <string>list</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Set primitive parameters.</string>
-            <key>description</key>
-            <string>This function changes the many properties (or "parameters") of a prim in one operation. The Parameters are a list of changes.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Set primitive parameters.\nThis function changes the many properties (or "parameters") of a prim in one operation. The Parameters are a list of changes.</string>
          </map>
          <key>llSetPrimMediaParams</key>
          <map>
@@ -15829,29 +14712,25 @@
             <key>return</key>
             <string>integer</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Face</key>
                <map>
-                  <key>name</key>
-                  <string>Face</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Face number</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>MediaParameters</key>
                <map>
-                  <key>name</key>
-                  <string>MediaParameters</string>
                   <key>type</key>
                   <string>list</string>
-                  <key>description</key>
-                  <string>A set of name/value pairs (in no particular order)</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>summary</key>
+            </map>
+            <key>tooltip</key>
             <string>Sets the MediaParameters for a particular Face on an object. If media is not already on this object, add it.
-				MediaParameters is a set of name/value pairs in no particular order. Parameters not specified are unchanged, or if new media is added then set to the default specified.</string>
-            <key>description</key>
-            <string>Set the MediaParameters for a particular face.\n
+				MediaParameters is a set of name/value pairs in no particular order. Parameters not specified are unchanged, or if new media is added then set to the default specified.\nSet the MediaParameters for a particular face.\n
 				Returns an integer that is a STATUS_* flag which details the success/failure of the operation(s).</string>
          </map>
          <key>llSetPrimURL</key>
@@ -15865,20 +14744,17 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>URL</key>
                <map>
-                  <key>name</key>
-                  <string>URL</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Deprecated: Use llSetPrimMediaParams instead.</string>
-            <key>description</key>
-            <string>Deprecated: Use llSetPrimMediaParams instead. Updates the URL for the web page shown on the sides of the object.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Deprecated: Use llSetPrimMediaParams instead.\nDeprecated: Use llSetPrimMediaParams instead. Updates the URL for the web page shown on the sides of the object.</string>
          </map>
          <key>llSetRegionPos</key>
          <map>
@@ -15889,20 +14765,17 @@
             <key>return</key>
             <string>integer</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Position</key>
                <map>
-                  <key>name</key>
-                  <string>Position</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
-                  <string>Vector. The location to move to, in region coordinates.</string>
-               </map>
-            </array>
-            <key>summary</key>
-            <string>Sets the Position anywhere within the region (if the object isn't physical).</string>
-            <key>description</key>
-            <string>Tries to moves the entire object so that the root prim is within 0.1m of Position.\n
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the Position anywhere within the region (if the object isn't physical).\nTries to moves the entire object so that the root prim is within 0.1m of Position.\n
 				Returns an integer boolean, TRUE if the object is successfully placed within 0.1 m of Position, FALSE otherwise.\n
 				The object with the script will move the root prim position to the given location. The position is any position within the region. If the position is below ground, it will be set to the ground level at that x,y location. The function has no delay or throttle.</string>
          </map>
@@ -15915,20 +14788,17 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>PIN</key>
                <map>
-                  <key>name</key>
-                  <string>PIN</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>If PIN is set to a non-zero number, the task will accept remote script loads via llRemoteLoadScriptPin if it passes in the correct PIN. Othersise, llRemoteLoadScriptPin is ignored.</string>
-            <key>description</key>
-            <string>If PIN is set to a non-zero number, the task will accept remote script loads via llRemoteLoadScriptPin if passed the matching PIN. Otherwise llRemoteLoadScriptPin is ignored</string>
+            </map>
+            <key>tooltip</key>
+            <string>If PIN is set to a non-zero number, the task will accept remote script loads via llRemoteLoadScriptPin if it passes in the correct PIN. Othersise, llRemoteLoadScriptPin is ignored.\nIf PIN is set to a non-zero number, the task will accept remote script loads via llRemoteLoadScriptPin if passed the matching PIN. Otherwise llRemoteLoadScriptPin is ignored</string>
          </map>
          <key>llSetRot</key>
          <map>
@@ -15939,20 +14809,17 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Rotation</key>
                <map>
-                  <key>name</key>
-                  <string>Rotation</string>
                   <key>type</key>
                   <string>rotation</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Sets the rotation (if the script isn't physical).</string>
-            <key>description</key>
-            <string>If the object is not physical, this function sets the rotation.\n
+            </map>
+            <key>tooltip</key>
+            <string>Sets the rotation (if the script isn't physical).\nIf the object is not physical, this function sets the rotation.\n
 				If the script is in a child prim, the position is treated as root relative and the linked set is adjusted.</string>
          </map>
          <key>llSetScale</key>
@@ -15964,20 +14831,17 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Scale</key>
                <map>
-                  <key>name</key>
-                  <string>Scale</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Sets the scale.</string>
-            <key>description</key>
-            <string>Sets the prim's scale (size).</string>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the scale.\nSets the prim's scale (size).</string>
          </map>
          <key>llSetScriptState</key>
          <map>
@@ -15988,28 +14852,24 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>ScriptName</key>
                <map>
-                  <key>name</key>
-                  <string>ScriptName</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Running</key>
                <map>
-                  <key>name</key>
-                  <string>Running</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Control the state of a named script.</string>
-            <key>description</key>
-            <string>Control the state of a script in the prim.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Control the state of a named script.\nControl the state of a script in the prim.</string>
          </map>
          <key>llSetSitText</key>
          <map>
@@ -16020,20 +14880,17 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Text</key>
                <map>
-                  <key>name</key>
-                  <string>Text</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Displays Text rather than "Sit" in context menu.</string>
-            <key>description</key>
-            <string>Displays Text rather than 'Sit' in the viewer's menu.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Displays Text rather than "Sit" in context menu.\nDisplays Text rather than 'Sit' in the viewer's menu.</string>
          </map>
          <key>llSetSoundQueueing</key>
          <map>
@@ -16044,20 +14901,17 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>QueueEnable</key>
                <map>
-                  <key>name</key>
-                  <string>QueueEnable</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Boolean, sound queuing: TRUE enables, FALSE disables (default).</string>
-               </map>
-            </array>
-            <key>summary</key>
-            <string>Determines whether attached sound calls wait for the current sound to finish (0 = no [default], non-zero = yes).</string>
-            <key>description</key>
-            <string>Sets whether successive calls to llPlaySound, llLoopSound, etc., (attached sounds) interrupt the playing sound.\n
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Determines whether attached sound calls wait for the current sound to finish (0 = no [default], non-zero = yes).\nSets whether successive calls to llPlaySound, llLoopSound, etc., (attached sounds) interrupt the playing sound.\n
 				The default for objects is FALSE. Setting this value to TRUE will make the sound wait until the current playing sound reaches its end. The queue is one level deep.</string>
          </map>
          <key>llSetSoundRadius</key>
@@ -16069,20 +14923,17 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Radius</key>
                <map>
-                  <key>name</key>
-                  <string>Radius</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Establishes a hard cut-off radius for audibility of scripted sounds (both attached and triggered).</string>
-            <key>description</key>
-            <string>Establishes a hard cut-off radius for audibility of scripted sounds (both attached and triggered).</string>
+            </map>
+            <key>tooltip</key>
+            <string>Establishes a hard cut-off radius for audibility of scripted sounds (both attached and triggered).\nEstablishes a hard cut-off radius for audibility of scripted sounds (both attached and triggered).</string>
          </map>
          <key>llSetStatus</key>
          <map>
@@ -16093,28 +14944,24 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Status</key>
                <map>
-                  <key>name</key>
-                  <string>Status</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Value</key>
                <map>
-                  <key>name</key>
-                  <string>Value</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Sets status (STATUS_PHYSICS, STATUS_PHANTOM, STATUS_BLOCK_GRAB, STATUS_ROTATE_X, STATUS_ROTATE_Y, and/or STATUS_ROTATE_Z) to value.</string>
-            <key>description</key>
-            <string>Sets the Status to Value. Use STATUS_* constants for the values of status.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Sets status (STATUS_PHYSICS, STATUS_PHANTOM, STATUS_BLOCK_GRAB, STATUS_ROTATE_X, STATUS_ROTATE_Y, and/or STATUS_ROTATE_Z) to value.\nSets the Status to Value. Use STATUS_* constants for the values of status.</string>
          </map>
          <key>llSetText</key>
          <map>
@@ -16125,36 +14972,31 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Text</key>
                <map>
-                  <key>name</key>
-                  <string>Text</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Colour</key>
                <map>
-                  <key>name</key>
-                  <string>Colour</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Opacity</key>
                <map>
-                  <key>name</key>
-                  <string>Opacity</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Set text floating over object.</string>
-            <key>description</key>
-            <string>Sets the text that floats above the object, using the specified colour and opacity level.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Set text floating over object.\nSets the text that floats above the object, using the specified colour and opacity level.</string>
          </map>
          <key>llSetTexture</key>
          <map>
@@ -16165,28 +15007,24 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Texture</key>
                <map>
-                  <key>name</key>
-                  <string>Texture</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Face</key>
                <map>
-                  <key>name</key>
-                  <string>Face</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Sets the Texture of Face.</string>
-            <key>description</key>
-            <string>Sets the Texture of Face. If Face is ALL_SIDES, set the texture on all faces.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the Texture of Face.\nSets the Texture of Face. If Face is ALL_SIDES, set the texture on all faces.</string>
          </map>
          <key>llSetTextureAnim</key>
          <map>
@@ -16197,68 +15035,59 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Mode</key>
                <map>
-                  <key>name</key>
-                  <string>Mode</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Mask of Mode flags.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Face</key>
                <map>
-                  <key>name</key>
-                  <string>Face</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Face number or ALL_SIDES.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>SizeX</key>
                <map>
-                  <key>name</key>
-                  <string>SizeX</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Horizontal frames (ignored for ROTATE and SCALE).</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>SizeY</key>
                <map>
-                  <key>name</key>
-                  <string>SizeY</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Vertical frames (ignored for ROTATE and SCALE).</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Start</key>
                <map>
-                  <key>name</key>
-                  <string>Start</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
-                  <string>Start position/frame number (or radians for ROTATE).</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Length</key>
                <map>
-                  <key>name</key>
-                  <string>Length</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
-                  <string>number of frames to display (or radians for ROTATE).</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Rate</key>
                <map>
-                  <key>name</key>
-                  <string>Rate</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
-                  <string>Frames per second (must not greater than zero).</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Animate the texture on the specified face/faces.</string>
-            <key>description</key>
-            <string>Animates a texture by setting the texture scale and offset.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Animate the texture on the specified face/faces.\nAnimates a texture by setting the texture scale and offset.</string>
          </map>
          <key>llSetTimerEvent</key>
          <map>
@@ -16269,20 +15098,17 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Rate</key>
                <map>
-                  <key>name</key>
-                  <string>Rate</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Cause the timer event to be triggered every Rate seconds.</string>
-            <key>description</key>
-            <string>Sets the timer event to be triggered at the specified Rate, in seconds.\n
+            </map>
+            <key>tooltip</key>
+            <string>Cause the timer event to be triggered every Rate seconds.\nSets the timer event to be triggered at the specified Rate, in seconds.\n
 				Passing in 0.0 stops further timer events.</string>
          </map>
          <key>llSetTorque</key>
@@ -16294,28 +15120,24 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Torque</key>
                <map>
-                  <key>name</key>
-                  <string>Torque</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
-                  <string>Torque force.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Local</key>
                <map>
-                  <key>name</key>
-                  <string>Local</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Boolean, if TRUE uses local axis, if FALSE uses region axis.</string>
-               </map>
-            </array>
-            <key>summary</key>
-            <string>Sets the Torque of object, in local coordinates if Local == TRUE (if the script is physical).</string>
-            <key>description</key>
-            <string>If the object is physical, this function sets the torque.\n
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the Torque of object, in local coordinates if Local == TRUE (if the script is physical).\nIf the object is physical, this function sets the torque.\n
 			The vector is in local coordinates if Local is TRUE, global if FALSE.</string>
          </map>
          <key>llSetTouchText</key>
@@ -16327,20 +15149,17 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Text</key>
                <map>
-                  <key>name</key>
-                  <string>Text</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Displays Text in the menu that acts on a touch.</string>
-            <key>description</key>
-            <string>Displays Text in the viewer context menu that acts on a touch.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Displays Text in the menu that acts on a touch.\nDisplays Text in the viewer context menu that acts on a touch.</string>
          </map>
          <key>llSetVehicleFlags</key>
          <map>
@@ -16351,20 +15170,17 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Flags</key>
                <map>
-                  <key>name</key>
-                  <string>Flags</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Sets the enabled bits in 'flags'.</string>
-            <key>description</key>
-            <string>Sets the vehicle flags to TRUE.\nValid parameters can be found in the vehicle flags constants section.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the enabled bits in 'flags'.\nSets the vehicle flags to TRUE.\nValid parameters can be found in the vehicle flags constants section.</string>
          </map>
          <key>llSetVehicleFloatParam</key>
          <map>
@@ -16375,28 +15191,24 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>ParameterName</key>
                <map>
-                  <key>name</key>
-                  <string>ParameterName</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>ParameterValue</key>
                <map>
-                  <key>name</key>
-                  <string>ParameterValue</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Sets the specified vehicle float parameter.</string>
-            <key>description</key>
-            <string>Sets the vehicle floating point parameter.\n
+            </map>
+            <key>tooltip</key>
+            <string>Sets the specified vehicle float parameter.\nSets the vehicle floating point parameter.\n
 				Valid parameters and their expected values can be found in the vehicle parameter constants section.</string>
          </map>
          <key>llSetVehicleRotationParam</key>
@@ -16408,28 +15220,24 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>ParameterName</key>
                <map>
-                  <key>name</key>
-                  <string>ParameterName</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>ParameterValue</key>
                <map>
-                  <key>name</key>
-                  <string>ParameterValue</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Sets the specified vehicle rotation parameter.</string>
-            <key>description</key>
-            <string>Sets the vehicle rotation parameter.\n
+            </map>
+            <key>tooltip</key>
+            <string>Sets the specified vehicle rotation parameter.\nSets the vehicle rotation parameter.\n
 				Valid parameters can be found in the vehicle parameter constants section.</string>
          </map>
          <key>llSetVehicleType</key>
@@ -16441,20 +15249,17 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Type</key>
                <map>
-                  <key>name</key>
-                  <string>Type</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Sets vehicle to one of the default types.</string>
-            <key>description</key>
-            <string>Activates the vehicle action and choose vehicle Type.\n
+            </map>
+            <key>tooltip</key>
+            <string>Sets vehicle to one of the default types.\nActivates the vehicle action and choose vehicle Type.\n
 				Valid Types and an explanation of their characteristics can be found in the vehicle type constants section.</string>
          </map>
          <key>llSetVehicleVectorParam</key>
@@ -16466,28 +15271,24 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>ParameterName</key>
                <map>
-                  <key>name</key>
-                  <string>ParameterName</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>ParameterValue</key>
                <map>
-                  <key>name</key>
-                  <string>ParameterValue</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Sets the specified vehicle vector parameter.</string>
-            <key>description</key>
-            <string>Sets the vehicle vector parameter.\nValid parameters can be found in the vehicle parameter constants section.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the specified vehicle vector parameter.\nSets the vehicle vector parameter.\nValid parameters can be found in the vehicle parameter constants section.</string>
          </map>
          <key>llSetVelocity</key>
          <map>
@@ -16498,28 +15299,24 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Force</key>
                <map>
-                  <key>name</key>
-                  <string>Force</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
-                  <string>The force to apply.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Local</key>
                <map>
-                  <key>name</key>
-                  <string>Local</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>If TRUE, the vForce is treated as a local directional vector instead of a regional directional vector.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Sets an objects velocity, in local coordinates if Local == TRUE (if the script is physical).</string>
-            <key>description</key>
-            <string>Applies Force to a physical object.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Sets an objects velocity, in local coordinates if Local == TRUE (if the script is physical).\nApplies Force to a physical object.</string>
          </map>
          <key>llSHA1String</key>
          <map>
@@ -16530,20 +15327,17 @@
             <key>return</key>
             <string>string</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Text</key>
                <map>
-                  <key>name</key>
-                  <string>Text</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns a string of 40 hex characters that is the SHA1 security Hash of Text.</string>
-            <key>description</key>
-            <string>Returns a string of 40 hex characters that is the SHA1 security hash of the supplied string.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns a string of 40 hex characters that is the SHA1 security Hash of Text.\nReturns a string of 40 hex characters that is the SHA1 security hash of the supplied string.</string>
          </map>
          <key>llShout</key>
          <map>
@@ -16554,28 +15348,24 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Channel</key>
                <map>
-                  <key>name</key>
-                  <string>Channel</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Text</key>
                <map>
-                  <key>name</key>
-                  <string>Text</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>shouts Text on Channel.</string>
-            <key>description</key>
-            <string>Shout Text on Channel. Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 to 2,147,483,648 are private channels that are not sent to avatars but other scripts can listen for through the llListen function.</string>
+            </map>
+            <key>tooltip</key>
+            <string>shouts Text on Channel.\nShout Text on Channel. Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 to 2,147,483,648 are private channels that are not sent to avatars but other scripts can listen for through the llListen function.</string>
          </map>
          <key>llSin</key>
          <map>
@@ -16586,20 +15376,17 @@
             <key>return</key>
             <string>float</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Theta</key>
                <map>
-                  <key>name</key>
-                  <string>Theta</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the sine of Theta (Theta in radians).</string>
-            <key>description</key>
-            <string>Returns the sine of Theta in radians.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the sine of Theta (Theta in radians).\nReturns the sine of Theta in radians.</string>
          </map>
          <key>llSitTarget</key>
          <map>
@@ -16610,28 +15397,24 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Offset</key>
                <map>
-                  <key>name</key>
-                  <string>Offset</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Rotation</key>
                <map>
-                  <key>name</key>
-                  <string>Rotation</string>
                   <key>type</key>
                   <string>rotation</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Set the sit location for this object (if offset == &lt;0,0,0&gt; clear it).</string>
-            <key>description</key>
-            <string>Set the sit location for this object. If offset == ZERO_VECTOR, clears the sit target.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Set the sit location for this object (if offset == &lt;0,0,0&gt; clear it).\nSet the sit location for this object. If offset == ZERO_VECTOR, clears the sit target.</string>
          </map>
          <key>llSleep</key>
          <map>
@@ -16642,20 +15425,17 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Time</key>
                <map>
-                  <key>name</key>
-                  <string>Time</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Put script to sleep for Time seconds.</string>
-            <key>description</key>
-            <string>Puts the script to sleep for time specified, in seconds.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Put script to sleep for Time seconds.\nPuts the script to sleep for time specified, in seconds.</string>
          </map>
          <key>llSound</key>
          <map>
@@ -16668,44 +15448,38 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Sound</key>
                <map>
-                  <key>name</key>
-                  <string>Sound</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Volume</key>
                <map>
-                  <key>name</key>
-                  <string>Volume</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Queue</key>
                <map>
-                  <key>name</key>
-                  <string>Queue</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Loop</key>
                <map>
-                  <key>name</key>
-                  <string>Loop</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Deprecated: Use llPlaySound instead.</string>
-            <key>description</key>
-            <string>Deprecated: Use llPlaySound instead.\nPlays Sound at Volume and specifies whether it should loop or not.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Deprecated: Use llPlaySound instead.\nDeprecated: Use llPlaySound instead.\nPlays Sound at Volume and specifies whether it should loop or not.</string>
          </map>
          <key>llSoundPreload</key>
          <map>
@@ -16718,20 +15492,17 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Sound</key>
                <map>
-                  <key>name</key>
-                  <string>Sound</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Deprecated: Use llPreloadSound instead.</string>
-            <key>description</key>
-            <string>Deprecated: Use llPreloadSound instead.\nPreloads a sound on viewers within range.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Deprecated: Use llPreloadSound instead.\nDeprecated: Use llPreloadSound instead.\nPreloads a sound on viewers within range.</string>
          </map>
          <key>llSqrt</key>
          <map>
@@ -16742,20 +15513,17 @@
             <key>return</key>
             <string>float</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Value</key>
                <map>
-                  <key>name</key>
-                  <string>Value</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the square root of Value, or returns 0 and triggers a Math Error for imaginary results.</string>
-            <key>description</key>
-            <string>Returns the square root of the value. If the value is less than 0.0, this function returns 0.0 and raises a maths runtime error.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the square root of Value, or returns 0 and triggers a Math Error for imaginary results.\nReturns the square root of the value. If the value is less than 0.0, this function returns 0.0 and raises a maths runtime error.</string>
          </map>
          <key>llStartAnimation</key>
          <map>
@@ -16766,20 +15534,17 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Animation</key>
                <map>
-                  <key>name</key>
-                  <string>Animation</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Start Animation for agent that owns object.</string>
-            <key>description</key>
-            <string>This function starts the animation for the last avatar that granted the object PERMISSION_TRIGGER_ANIMATION permission.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Start Animation for agent that owns object.\nThis function starts the animation for the last avatar that granted the object PERMISSION_TRIGGER_ANIMATION permission.</string>
          </map>
          <key>llStopAnimation</key>
          <map>
@@ -16790,20 +15555,17 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Animation</key>
                <map>
-                  <key>name</key>
-                  <string>Animation</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Stop Animation for agent that owns object.</string>
-            <key>description</key>
-            <string>This function stops the animation for the last avatar that granted the object PERMISSION_TRIGGER_ANIMATION permission.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Stop Animation for agent that owns object.\nThis function stops the animation for the last avatar that granted the object PERMISSION_TRIGGER_ANIMATION permission.</string>
          </map>
          <key>llStopHover</key>
          <map>
@@ -16814,11 +15576,9 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Stop hovering to a height.</string>
-            <key>description</key>
-            <string>Stop hovering at a height.</string>
+            <undef/>
+            <key>tooltip</key>
+            <string>Stop hovering to a height.\nStop hovering at a height.</string>
          </map>
          <key>llStopLookAt</key>
          <map>
@@ -16829,11 +15589,9 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Stop causing object to point at a target.</string>
-            <key>description</key>
-            <string>Stop causing object to look at target.</string>
+            <undef/>
+            <key>tooltip</key>
+            <string>Stop causing object to point at a target.\nStop causing object to look at target.</string>
          </map>
          <key>llStopMoveToTarget</key>
          <map>
@@ -16844,11 +15602,9 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Stops critically damped motion.</string>
-            <key>description</key>
-            <string>Stops critically damped motion.</string>
+            <undef/>
+            <key>tooltip</key>
+            <string>Stops critically damped motion.\nStops critically damped motion.</string>
          </map>
          <key>llStopSound</key>
          <map>
@@ -16859,11 +15615,9 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array/>
-            <key>summary</key>
-            <string>Stops currently attached sound.</string>
-            <key>description</key>
-            <string>Stops the currently playing attached sound started with llPlaySound or llLoopSound. Has no effect on sounds started with llTriggerSound.</string>
+            <undef/>
+            <key>tooltip</key>
+            <string>Stops currently attached sound.\nStops the currently playing attached sound started with llPlaySound or llLoopSound. Has no effect on sounds started with llTriggerSound.</string>
          </map>
          <key>llStringLength</key>
          <map>
@@ -16874,20 +15628,17 @@
             <key>return</key>
             <string>integer</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Text</key>
                <map>
-                  <key>name</key>
-                  <string>Text</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the length of string.</string>
-            <key>description</key>
-            <string>Returns the number of characters in the specified text.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the length of string.\nReturns the number of characters in the specified text.</string>
          </map>
          <key>llStringToBase64</key>
          <map>
@@ -16898,20 +15649,17 @@
             <key>return</key>
             <string>string</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Text</key>
                <map>
-                  <key>name</key>
-                  <string>Text</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Converts a string to the Base64 representation of the string.</string>
-            <key>description</key>
-            <string>Converts a string to the Base 64 representation of the string.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Converts a string to the Base64 representation of the string.\nConverts a string to the Base 64 representation of the string.</string>
          </map>
          <key>llStringTrim</key>
          <map>
@@ -16922,29 +15670,25 @@
             <key>return</key>
             <string>string</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Text</key>
                <map>
-                  <key>name</key>
-                  <string>Text</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
-                  <string>String to trim</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>TrimType</key>
                <map>
-                  <key>name</key>
-                  <string>TrimType</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>STRING_TRIM_HEAD, STRING_TRIM_TAIL, or STRING_TRIM.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>summary</key>
+            </map>
+            <key>tooltip</key>
             <string>Trims the leading and/or trailing white spaces from a string.\n
-				TrimType can be STRING_TRIM, STRING_TRIM_HEAD or STRING_TRIM_TAIL.</string>
-            <key>description</key>
-            <string>Outputs a string, eliminating white-space from the start and/or end of the specified string.\n
+				TrimType can be STRING_TRIM, STRING_TRIM_HEAD or STRING_TRIM_TAIL.\nOutputs a string, eliminating white-space from the start and/or end of the specified string.\n
 				Constants for trim_type:\n
 				STRING_TRIM_HEAD: trim all leading spaces in text\n
 				STRING_TRIM_TAIL: trim all trailing spaces in text\n
@@ -16959,28 +15703,24 @@
             <key>return</key>
             <string>integer</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Text</key>
                <map>
-                  <key>name</key>
-                  <string>Text</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Sequence</key>
                <map>
-                  <key>name</key>
-                  <string>Sequence</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns an integer that is the index in source where pattern first appears. Returns -1 if not found.</string>
-            <key>description</key>
-            <string>Returns an index of the text where the sequence of characters first appears.\n
+            </map>
+            <key>tooltip</key>
+            <string>Returns an integer that is the index in source where pattern first appears. Returns -1 if not found.\nReturns an index of the text where the sequence of characters first appears.\n
 				Returns -1 if no match is found.</string>
          </map>
          <key>llTakeCamera</key>
@@ -16994,20 +15734,17 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>AvatarID</key>
                <map>
-                  <key>name</key>
-                  <string>AvatarID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Deprecated: Use llSetCameraParams instead.</string>
-            <key>description</key>
-            <string>Deprecated: Use llSetCameraParams instead. Move avatar's viewpoint to task.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Deprecated: Use llSetCameraParams instead.\nDeprecated: Use llSetCameraParams instead. Move avatar's viewpoint to task.</string>
          </map>
          <key>llTakeControls</key>
          <map>
@@ -17018,36 +15755,31 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Controls</key>
                <map>
-                  <key>name</key>
-                  <string>Controls</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Bit-field of CONTROL_* flags.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Accept</key>
                <map>
-                  <key>name</key>
-                  <string>Accept</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Boolean, determines whether control events are generated.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>PassOn</key>
                <map>
-                  <key>name</key>
-                  <string>PassOn</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>Boolean, determines whether controls are disabled.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Take controls from agent task has permissions for.	If (Accept == (controls &amp; input)), send input to task.	If PassOn send to agent also.</string>
-            <key>description</key>
-            <string>Requires the PERMISSION_TAKE_CONTROLS permission to run.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Take controls from agent task has permissions for.	If (Accept == (controls &amp; input)), send input to task.	If PassOn send to agent also.\nRequires the PERMISSION_TAKE_CONTROLS permission to run.</string>
          </map>
          <key>llTan</key>
          <map>
@@ -17058,20 +15790,17 @@
             <key>return</key>
             <string>float</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Theta</key>
                <map>
-                  <key>name</key>
-                  <string>Theta</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the tangent of Theta (Theta in radians).</string>
-            <key>description</key>
-            <string>Returns the tangent of Theta radians.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the tangent of Theta (Theta in radians).\nReturns the tangent of Theta radians.</string>
          </map>
          <key>llTarget</key>
          <map>
@@ -17082,28 +15811,24 @@
             <key>return</key>
             <string>integer</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Position</key>
                <map>
-                  <key>name</key>
-                  <string>Position</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Range</key>
                <map>
-                  <key>name</key>
-                  <string>Range</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Sets positions within range of position as a target and return an ID for the target.</string>
-            <key>description</key>
-            <string>Set object position, within range of position, as a target and returns an integer ID for the target.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Sets positions within range of position as a target and return an ID for the target.\nSet object position, within range of position, as a target and returns an integer ID for the target.</string>
          </map>
          <key>llTargetOmega</key>
          <map>
@@ -17114,36 +15839,31 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Axis</key>
                <map>
-                  <key>name</key>
-                  <string>Axis</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>SpinRate</key>
                <map>
-                  <key>name</key>
-                  <string>SpinRate</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Gain</key>
                <map>
-                  <key>name</key>
-                  <string>Gain</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Attempt to spin at SpinRate with strength Gain.</string>
-            <key>description</key>
-            <string>Attempt to spin at SpinRate with strength Gain on axis.\n
+            </map>
+            <key>tooltip</key>
+            <string>Attempt to spin at SpinRate with strength Gain.\nAttempt to spin at SpinRate with strength Gain on axis.\n
 			A spin-rate of 0.0 cancels the spin. This function always works in object local coordinates.</string>
          </map>
          <key>llTargetRemove</key>
@@ -17155,20 +15875,17 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Target</key>
                <map>
-                  <key>name</key>
-                  <string>Target</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Removes target number.</string>
-            <key>description</key>
-            <string>Remove target number.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Removes target number.\nRemove target number.</string>
          </map>
          <key>llTeleportAgent</key>
          <map>
@@ -17179,45 +15896,39 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>AvatarID</key>
                <map>
-                  <key>name</key>
-                  <string>AvatarID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
-                  <string>UUID of avatar.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>LandmarkName</key>
                <map>
-                  <key>name</key>
-                  <string>LandmarkName</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
-                  <string>Name of landmark (in object contents), or empty string, to use.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Position</key>
                <map>
-                  <key>name</key>
-                  <string>Position</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
-                  <string>If no landmark was provided, the position within the current region to teleport the avatar to.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>LookAtPoint</key>
                <map>
-                  <key>name</key>
-                  <string>LookAtPoint</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
-                  <string>The position within the target region that the avatar should be turned to face upon arrival.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>summary</key>
+            </map>
+            <key>tooltip</key>
             <string>Requests a teleport of avatar to a landmark stored in the object's inventory. If no landmark is provided (an empty string), the avatar is teleported to the location position in the current region. In either case, the avatar is turned to face the position given by look_at in local coordinates.
 				Requires the PERMISSION_TELEPORT permission. This function can only teleport the owner of the object.</string>
-            <key>description</key>
-            <string/>
          </map>
          <key>llTeleportAgentGlobalCoords</key>
          <map>
@@ -17228,44 +15939,38 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>AvatarID</key>
                <map>
-                  <key>name</key>
-                  <string>AvatarID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
-                  <string>UUID of avatar.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>GlobalPosition</key>
                <map>
-                  <key>name</key>
-                  <string>GlobalPosition</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
-                  <string>Global coordinates of the destination region. Can be retrieved by using llRequestSimulatorData(region_name, DATA_SIM_POS).</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>RegionPosition</key>
                <map>
-                  <key>name</key>
-                  <string>RegionPosition</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
-                  <string>The position within the target region to teleport the avatar to, if no landmark was provided.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>LookAtPoint</key>
                <map>
-                  <key>name</key>
-                  <string>LookAtPoint</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
-                  <string>The position within the target region that the avatar should be turned to face upon arrival.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>summary</key>
+            </map>
+            <key>tooltip</key>
             <string>Teleports an agent to set of a region_coordinates within a region at the specified global_coordinates. The agent lands facing the position defined by look_at local coordinates.</string>
-            <key>description</key>
-            <string/>
          </map>
          <key>llTeleportAgentHome</key>
          <map>
@@ -17276,20 +15981,17 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>AvatarID</key>
                <map>
-                  <key>name</key>
-                  <string>AvatarID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Teleports agent on owner's land to agent's home location.</string>
-            <key>description</key>
-            <string>Teleport agent over the owner's land to agent's home location.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Teleports agent on owner's land to agent's home location.\nTeleport agent over the owner's land to agent's home location.</string>
          </map>
          <key>llTextBox</key>
          <map>
@@ -17300,36 +16002,31 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>AvatarID</key>
                <map>
-                  <key>name</key>
-                  <string>AvatarID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Text</key>
                <map>
-                  <key>name</key>
-                  <string>Text</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Channel</key>
                <map>
-                  <key>name</key>
-                  <string>Channel</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Shows a dialog box on the avatar's screen with the message. A text box asks for input, and if entered the Text is chatted on Channel.</string>
-            <key>description</key>
-            <string>Shows a dialogue box on avatar's screen with the text message.\n
+            </map>
+            <key>tooltip</key>
+            <string>Shows a dialog box on the avatar's screen with the message. A text box asks for input, and if entered the Text is chatted on Channel.\nShows a dialogue box on avatar's screen with the text message.\n
 				It contains a text box for input. Any text that is entered is said on the specified channel (as if by the avatar) when the "OK" button is clicked.</string>
          </map>
          <key>llToLower</key>
@@ -17341,20 +16038,17 @@
             <key>return</key>
             <string>string</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Text</key>
                <map>
-                  <key>name</key>
-                  <string>Text</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns a string that is Text with all lower-case characters.</string>
-            <key>description</key>
-            <string>Returns Text in all lower case.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns a string that is Text with all lower-case characters.\nReturns Text in all lower case.</string>
          </map>
          <key>llToUpper</key>
          <map>
@@ -17365,20 +16059,17 @@
             <key>return</key>
             <string>string</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Text</key>
                <map>
-                  <key>name</key>
-                  <string>Text</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns a string that is Text with all upper-case characters.</string>
-            <key>description</key>
-            <string>Returns Text in all upper case.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns a string that is Text with all upper-case characters.\nReturns Text in all upper case.</string>
          </map>
          <key>llTransferLindenDollars</key>
          <map>
@@ -17389,28 +16080,24 @@
             <key>return</key>
             <string>key</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>AvatarID</key>
                <map>
-                  <key>name</key>
-                  <string>AvatarID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Amount</key>
                <map>
-                  <key>name</key>
-                  <string>Amount</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Transfer Amount of linden dollars (L$) from script owner to AvatarID. Returns a key to a corresponding transaction_result event for the success of the transfer.</string>
-            <key>description</key>
-            <string>Attempts to send the amount of money to the specified avatar, and trigger a transaction_result event identified by the returned key.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Transfer Amount of linden dollars (L$) from script owner to AvatarID. Returns a key to a corresponding transaction_result event for the success of the transfer.\nAttempts to send the amount of money to the specified avatar, and trigger a transaction_result event identified by the returned key.</string>
          </map>
          <key>llTriggerSound</key>
          <map>
@@ -17421,28 +16108,24 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Sound</key>
                <map>
-                  <key>name</key>
-                  <string>Sound</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Volume</key>
                <map>
-                  <key>name</key>
-                  <string>Volume</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Plays Sound at Volume (0.0 - 1.0), centered at but not attached to object.</string>
-            <key>description</key>
-            <string>Plays a transient sound NOT attached to an object.\n
+            </map>
+            <key>tooltip</key>
+            <string>Plays Sound at Volume (0.0 - 1.0), centered at but not attached to object.\nPlays a transient sound NOT attached to an object.\n
 				The sound plays from a stationary position located at the centre of the object at the time of the triggering.\n
 				There is no limit to the number of triggered sounds which can be generated by an object, and calling llTriggerSound does not affect the attached sounds created by llPlaySound and llLoopSound. This is very useful for things like collision noises, explosions, etc. There is no way to stop or alter the volume of a sound triggered by this function.</string>
          </map>
@@ -17455,44 +16138,38 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Sound</key>
                <map>
-                  <key>name</key>
-                  <string>Sound</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Volume</key>
                <map>
-                  <key>name</key>
-                  <string>Volume</string>
                   <key>type</key>
                   <string>float</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>TNE</key>
                <map>
-                  <key>name</key>
-                  <string>TNE</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>BSW</key>
                <map>
-                  <key>name</key>
-                  <string>BSW</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Plays Sound at Volume (0.0 - 1.0), centered at but not attached to object, limited to axis-aligned bounding box defined by vectors top-north-east (TNE) and bottom-south-west (BSW).</string>
-            <key>description</key>
-            <string>Plays a transient sound NOT attached to an object, with its audible range limited by the axis-aligned bounding box define by TNE (top-north-east) and BSW (bottom-south-west).\n
+            </map>
+            <key>tooltip</key>
+            <string>Plays Sound at Volume (0.0 - 1.0), centered at but not attached to object, limited to axis-aligned bounding box defined by vectors top-north-east (TNE) and bottom-south-west (BSW).\nPlays a transient sound NOT attached to an object, with its audible range limited by the axis-aligned bounding box define by TNE (top-north-east) and BSW (bottom-south-west).\n
 				The sound plays from a stationary position located at the centre of the object at the time of the triggering.\n
 				There is no limit to the number of triggered sounds which can be generated by an object, and calling llTriggerSound does not affect the attached sounds created by llPlaySound and llLoopSound. This is very useful for things like collision noises, explosions, etc. There is no way to stop or alter the volume of a sound triggered by this function.</string>
          </map>
@@ -17505,20 +16182,17 @@
             <key>return</key>
             <string>string</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>URL</key>
                <map>
-                  <key>name</key>
-                  <string>URL</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns an unescaped/ unencoded version of URL, replacing %20 with spaces etc.</string>
-            <key>description</key>
-            <string>Returns the string that is the URL unescaped, replacing "%20" with spaces, etc., version of URL.\n
+            </map>
+            <key>tooltip</key>
+            <string>Returns an unescaped/ unencoded version of URL, replacing %20 with spaces etc.\nReturns the string that is the URL unescaped, replacing "%20" with spaces, etc., version of URL.\n
 				The function can output raw UTF-8 strings.</string>
          </map>
          <key>llUnSit</key>
@@ -17530,20 +16204,17 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>AvatarID</key>
                <map>
-                  <key>name</key>
-                  <string>AvatarID</string>
                   <key>type</key>
                   <string>key</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>If agent identified by AvatarID is sitting on the object the script is attached to or is over land owned by the objects owner, the agent is forced to stand up.</string>
-            <key>description</key>
-            <string>If the agent identified is sitting on the object the script is attached to or is over land owned by the objects owner, the agent is forced to stand up.</string>
+            </map>
+            <key>tooltip</key>
+            <string>If agent identified by AvatarID is sitting on the object the script is attached to or is over land owned by the objects owner, the agent is forced to stand up.\nIf the agent identified is sitting on the object the script is attached to or is over land owned by the objects owner, the agent is forced to stand up.</string>
          </map>
          <key>llUpdateCharacter</key>
          <map>
@@ -17554,20 +16225,17 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Options</key>
                <map>
-                  <key>name</key>
-                  <string>Options</string>
                   <key>type</key>
                   <string>list</string>
-                  <key>description</key>
-                  <string>Character configuration options. Takes the same constants as llCreateCharacter().</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Change the character's settings.</string>
-            <key>description</key>
-            <string>Updates settings for a character.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Change the character's settings.\nUpdates settings for a character.</string>
          </map>
          <key>llVecDist</key>
          <map>
@@ -17578,28 +16246,24 @@
             <key>return</key>
             <string>float</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Location1</key>
                <map>
-                  <key>name</key>
-                  <string>Location1</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Location2</key>
                <map>
-                  <key>name</key>
-                  <string>Location2</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the 3D distance between Location1 and Location2.</string>
-            <key>description</key>
-            <string>Returns the distance from location 1 to location 2.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the 3D distance between Location1 and Location2.\nReturns the distance from location 1 to location 2.</string>
          </map>
          <key>llVecMag</key>
          <map>
@@ -17610,20 +16274,17 @@
             <key>return</key>
             <string>float</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Vector</key>
                <map>
-                  <key>name</key>
-                  <string>Vector</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the magnitude of Vector.</string>
-            <key>description</key>
-            <string>Returns the magnitude of the vector.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the magnitude of Vector.\nReturns the magnitude of the vector.</string>
          </map>
          <key>llVecNorm</key>
          <map>
@@ -17634,20 +16295,17 @@
             <key>return</key>
             <string>vector</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Vector</key>
                <map>
-                  <key>name</key>
-                  <string>Vector</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the v normalized.</string>
-            <key>description</key>
-            <string>Returns normalized vector.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the v normalized.\nReturns normalized vector.</string>
          </map>
          <key>llVolumeDetect</key>
          <map>
@@ -17658,20 +16316,17 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>DetectEnabled</key>
                <map>
-                  <key>name</key>
-                  <string>DetectEnabled</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
-                  <string>.TRUE enables, FALSE disables.</string>
-               </map>
-            </array>
-            <key>summary</key>
-            <string>If DetectEnabled = TRUE, object becomes phantom but triggers collision_start and collision_end events when other objects start and stop interpenetrating. Must be applied to the root object.</string>
-            <key>description</key>
-            <string>When detect = TRUE, this makes the entire link set the script is attached to phantom. If another object (including avatars) interpenetrates it, it will get a collision_start event.\n
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>If DetectEnabled = TRUE, object becomes phantom but triggers collision_start and collision_end events when other objects start and stop interpenetrating. Must be applied to the root object.\nWhen detect = TRUE, this makes the entire link set the script is attached to phantom. If another object (including avatars) interpenetrates it, it will get a collision_start event.\n
 				When an object stops interpenetrating, a collision_end event is generated. While the other is inter-penetrating, collision events are NOT generated. The script must be applied to the root object of the link set to get the collision events.\n
 				Collision filters work normally.</string>
          </map>
@@ -17684,36 +16339,31 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Origin</key>
                <map>
-                  <key>name</key>
-                  <string>Origin</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
-                  <string>Central point to wander about.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Area</key>
                <map>
-                  <key>name</key>
-                  <string>Area</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
-                  <string>Half-extents of an area the character may wander within. (i.e., it can wander from the specified origin by up to +/-Distance.x in x, +/-Distance.y in y, etc.)</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
+               <key>Options</key>
                <map>
-                  <key>name</key>
-                  <string>Options</string>
                   <key>type</key>
                   <string>list</string>
-                  <key>description</key>
-                  <string>No options available at this time.</string>
+                  <key>tooltip</key>
+                  <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Wander within a specified volume.</string>
-            <key>description</key>
-            <string>Sets a character to wander about a central spot within a specified area.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Wander within a specified volume.\nSets a character to wander about a central spot within a specified area.</string>
          </map>
          <key>llWater</key>
          <map>
@@ -17724,20 +16374,17 @@
             <key>return</key>
             <string>float</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Offset</key>
                <map>
-                  <key>name</key>
-                  <string>Offset</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the water height below the object position + offset.</string>
-            <key>description</key>
-            <string>Returns the water height at the object's position + offset.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the water height below the object position + offset.\nReturns the water height at the object's position + offset.</string>
          </map>
          <key>llWhisper</key>
          <map>
@@ -17748,28 +16395,24 @@
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Channel</key>
                <map>
-                  <key>name</key>
-                  <string>Channel</string>
                   <key>type</key>
                   <string>integer</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Text</key>
                <map>
-                  <key>name</key>
-                  <string>Text</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Whispers Text on Channel.</string>
-            <key>description</key>
-            <string>Whisper Text on Channel. Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 to 2,147,483,648 are private channels that are not sent to avatars but other scripts can listen for through the llListen function.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Whispers Text on Channel.\nWhisper Text on Channel. Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 to 2,147,483,648 are private channels that are not sent to avatars but other scripts can listen for through the llListen function.</string>
          </map>
          <key>llWind</key>
          <map>
@@ -17780,23 +16423,22 @@
             <key>return</key>
             <string>vector</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Offset</key>
                <map>
-                  <key>name</key>
-                  <string>Offset</string>
                   <key>type</key>
                   <string>vector</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
-            <string>Returns the wind velocity at the object position + offset.</string>
-            <key>description</key>
-            <string>Returns the wind velocity at the object's position + offset.</string>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the wind velocity at the object position + offset.\nReturns the wind velocity at the object's position + offset.</string>
          </map>
          <key>llXorBase64Strings</key>
          <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
             <key>energy</key>
             <real>10.0</real>
             <key>sleep</key>
@@ -17804,29 +16446,25 @@
             <key>return</key>
             <string>string</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Text1</key>
                <map>
-                  <key>name</key>
-                  <string>Text1</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Text2</key>
                <map>
-                  <key>name</key>
-                  <string>Text2</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
+            </map>
+            <key>tooltip</key>
             <string>Deprecated: Please use llXorBase64StringsCorrect instead.\n
-				Incorrectly performs an exclusive OR on two Base64 strings and returns a Base64 string.	Text2 repeats if it is shorter than Text1.	Retained for backwards compatibility.</string>
-            <key>description</key>
-            <string>Deprecated: Use llXorBase64StringsCorrect instead.\nIncorrectly performs an exclusive OR on two Base64 strings and returns a Base64 string.</string>
+				Incorrectly performs an exclusive OR on two Base64 strings and returns a Base64 string.	Text2 repeats if it is shorter than Text1.	Retained for backwards compatibility.\nDeprecated: Use llXorBase64StringsCorrect instead.\nIncorrectly performs an exclusive OR on two Base64 strings and returns a Base64 string.</string>
          </map>
          <key>llXorBase64StringsCorrect</key>
          <map>
@@ -17837,29 +16475,25 @@
             <key>return</key>
             <string>string</string>
             <key>arguments</key>
-            <array>
+            <map>
+               <key>Text1</key>
                <map>
-                  <key>name</key>
-                  <string>Text1</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
+               <key>Text2</key>
                <map>
-                  <key>name</key>
-                  <string>Text2</string>
                   <key>type</key>
                   <string>string</string>
-                  <key>description</key>
+                  <key>tooltip</key>
                   <string/>
                </map>
-            </array>
-            <key>summary</key>
+            </map>
+            <key>tooltip</key>
             <string>Correctly performs an exclusive OR on two Base64 strings and returns a Base64 string.\n
-				Text2 repeats if it is shorter than Text1.</string>
-            <key>description</key>
-            <string>Performs an exclusive-OR on two Base64 strings and returns a Base64 string. text-2 repeats if it is shorter than text-1.\n
+				Text2 repeats if it is shorter than Text1.\nPerforms an exclusive-OR on two Base64 strings and returns a Base64 string. text-2 repeats if it is shorter than text-1.\n
 				This function is for encrypting data. Put your data in text-1 and your key in text-2 to encrypt or put the encrypted data into text-1 with the same key in text-2 to decrypt again.</string>
          </map>
       </map>
-- 
cgit v1.2.3


From 9db5ed51f00f98f2567882d525d9d547cac3ed62 Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Thu, 14 Feb 2013 16:54:24 +0000
Subject: STORM-1831 Refactoring serial if's to be prettier ;-) + Minor edit to
 comment tootips

---
 indra/llui/llkeywords.cpp | 63 ++++++-----------------------------------------
 1 file changed, 7 insertions(+), 56 deletions(-)

(limited to 'indra')

diff --git a/indra/llui/llkeywords.cpp b/indra/llui/llkeywords.cpp
index 0481948a09..d738d5127f 100644
--- a/indra/llui/llkeywords.cpp
+++ b/indra/llui/llkeywords.cpp
@@ -306,37 +306,14 @@ void LLKeywords::processTokens()
 	// Add 'standard' stuff: Quotes, Comments, Strings, Labels, etc. before processing the LLSD
 	std::string delimiter;
 	addToken(LLKeywordToken::TT_LABEL, "@", getColorGroup("label"), "Label\nTarget for jump statement", delimiter );
-	addToken(LLKeywordToken::TT_ONE_SIDED_DELIMITER, "//", getColorGroup("misc-comments_1_sided"), "Comment\nNon-functional commentary or disabled code", delimiter );
-	addToken(LLKeywordToken::TT_TWO_SIDED_DELIMITER, "/*", getColorGroup("misc-comments_2_sided"), "Comment\nNon-functional commentary or disabled code (multi-line)", "*/" );
+	addToken(LLKeywordToken::TT_ONE_SIDED_DELIMITER, "//", getColorGroup("misc-comments_1_sided"), "Comment (single-line)\nNon-functional commentary or disabled code", delimiter );
+	addToken(LLKeywordToken::TT_TWO_SIDED_DELIMITER, "/*", getColorGroup("misc-comments_2_sided"), "Comment (multi-line)\nNon-functional commentary or disabled code", "*/" );
 	addToken(LLKeywordToken::TT_DOUBLE_QUOTATION_MARKS, "\"", getColorGroup("misc-double_quotation_marks"), "String literal", "\"" );
 
 	LLSD::map_iterator outerIt = mSyntax.beginMap();
 	for ( ; outerIt != mSyntax.endMap(); ++outerIt)
 	{
-		// TODO Collapse the 'if's into two, those that call 'processTokens' directly and an else if (for 'misc') that doesn't
-		if (outerIt->first == "constants")
-		{
-			if (outerIt->second.isMap())
-			{
-				processTokensGroup(outerIt->second, "constants");
-			}
-			else
-			{
-				LL_ERRS("Tokens-Constants") << "No constants map to process!" << LL_ENDL;
-			}
-		}
-		else if (outerIt->first == "controls")
-		{
-			if (outerIt->second.isMap())
-			{
-				processTokensGroup(outerIt->second, "controls");
-			}
-			else
-			{
-				LL_ERRS("Tokens-Controls") << "No controls map to process!" << LL_ENDL;
-			}
-		}
-		else if(outerIt->first == "misc")
+		if (outerIt->first == "misc")
 		{
 			if (outerIt->second.isMap())
 			{
@@ -348,46 +325,20 @@ void LLKeywords::processTokens()
 			}
 			else
 			{
-				LL_ERRS("Tokens-Misc") << "No misc map to process!" << LL_ENDL;
-			}
-		}
-		else if(outerIt->first == "events")
-		{
-			if (outerIt->second.isMap())
-			{
-				processTokensGroup(outerIt->second, "events");
-			}
-			else
-			{
-				LL_ERRS("Tokens-Events") << "No event map to process!" << LL_ENDL;
-			}
-		}
-		else if(outerIt->first == "functions")
-		{
-			if (outerIt->second.isMap())
-			{
-				processTokensGroup(outerIt->second, "functions");
-			}
-			else
-			{
-				LL_ERRS("Tokens-Functions") << "No function map to process!" << LL_ENDL;
+				LL_ERRS("LSL-Tokens-Processing") << "Map for misc entries is missing! Ignoring." << LL_ENDL;
 			}
 		}
-		else if(outerIt->first == "types")
+		else
 		{
 			if (outerIt->second.isMap())
 			{
-				processTokensGroup(outerIt->second, "types");
+				processTokensGroup(outerIt->second, outerIt->first);
 			}
 			else
 			{
-				LL_ERRS("Tokens-Types") << "No types array to process!" << LL_ENDL;
+				LL_ERRS("LSL-Tokens-Processing") << "Map for " + outerIt->first + " entries is missing! Ignoring." << LL_ENDL;
 			}
 		}
-		else
-		{
-			LL_ERRS("Tokens") << "Unknown token group '" << outerIt->first << "'" << LL_ENDL;
-		}
 	}
 	LL_INFOS("") << LL_ENDL;
 }
-- 
cgit v1.2.3


From 14b00fc6bfc298b423e03e2efe6ca811798043ee Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Thu, 14 Feb 2013 18:34:13 +0000
Subject: STORM-1831 Removing an unnecessary assignment.

---
 indra/llui/llkeywords.cpp | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

(limited to 'indra')

diff --git a/indra/llui/llkeywords.cpp b/indra/llui/llkeywords.cpp
index d738d5127f..5305826c8a 100644
--- a/indra/llui/llkeywords.cpp
+++ b/indra/llui/llkeywords.cpp
@@ -145,8 +145,7 @@ std::string LLKeywords::getArguments(LLSD& arguments)
 		LLSD::map_iterator argsIt = arguments.beginMap();
 		for ( ; argsIt != arguments.endMap(); ++argsIt)
 		{
-				LLSD arg = argsIt->second;
-				args += arg.get("type").asString() + " " + argsIt->first;
+				args += argsIt->second.get("type").asString() + " " + argsIt->first;
 				if (count-- > 1)
 				{
 					args += ", ";
-- 
cgit v1.2.3


From 5e4b6e77fb566a559b7ae4c1e08114438afa5742 Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Mon, 25 Feb 2013 23:26:40 +0000
Subject: Adding missing llGenerate() to tokens file.

---
 indra/newview/app_settings/keywords_lsl_tokens.xml | 243 +++++++++------------
 1 file changed, 102 insertions(+), 141 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/app_settings/keywords_lsl_tokens.xml b/indra/newview/app_settings/keywords_lsl_tokens.xml
index ebb63ef487..2e54482f33 100644
--- a/indra/newview/app_settings/keywords_lsl_tokens.xml
+++ b/indra/newview/app_settings/keywords_lsl_tokens.xml
@@ -308,7 +308,7 @@
             <key>value</key>
             <integer>40</integer>
             <key>tooltip</key>
-            <string/>
+            <string>Attach to the avatar's geometric centre.</string>
          </map>
          <key>ATTACH_BACK</key>
          <map>
@@ -4726,10 +4726,7 @@
             <key>value</key>
             <integer>64</integer>
             <key>tooltip</key>
-            <string>Controls whether the object can be grabbed.
-			A grab is the default action when in third person, and is available as the hand tool in build mode.
-			This is useful for physical objects that you don't want other people to be able to trivially disturb.
-			The default is FALSE</string>
+            <string>Controls whether the object can be grabbed.\nA grab is the default action when in third person, and is available as the hand tool in build mode. This is useful for physical objects that you don't want other people to be able to trivially disturb. The default is FALSE</string>
          </map>
          <key>STATUS_BLOCK_GRAB_OBJECT</key>
          <map>
@@ -4765,7 +4762,7 @@
             <key>value</key>
             <integer>0x80</integer>
             <key>tooltip</key>
-            <string>Controls whether the object is returned to the owners inventory if it wanders off the edge of the world. It is useful to set this status TRUE for things like bullets or rockets. The default is TRUE</string>
+            <string>Controls whether the object is returned to the owners inventory if it wanders off the edge of the world.\nIt is useful to set this status TRUE for things like bullets or rockets. The default is TRUE</string>
          </map>
          <key>STATUS_INTERNAL_ERROR</key>
          <map>
@@ -4810,7 +4807,7 @@
             <key>value</key>
             <integer>0</integer>
             <key>tooltip</key>
-            <string>Result of function call was a success</string>
+            <string>Result of function call was a success.</string>
          </map>
          <key>STATUS_PHANTOM</key>
          <map>
@@ -4819,11 +4816,7 @@
             <key>value</key>
             <integer>0x10</integer>
             <key>tooltip</key>
-            <string>Controls/indicates whether the object collides or not.
-			Setting the value to TRUE makes the object non-colliding with
-			all objects. It is a good idea to use this for most objects
-			that move or rotate, but are non-physical. It is also
-			useful for simulating volumetric lighting. The default is FALSE.</string>
+            <string>Controls/indicates whether the object collides or not.\nSetting the value to TRUE makes the object non-colliding with all objects. It is a good idea to use this for most objects that move or rotate, but are non-physical. It is also useful for simulating volumetric lighting. The default is FALSE.</string>
          </map>
          <key>STATUS_PHYSICS</key>
          <map>
@@ -4832,8 +4825,7 @@
             <key>value</key>
             <integer>0x1</integer>
             <key>tooltip</key>
-            <string>Controls/indicates whether the object moves physically.
-			This controls the same flag that the UI check-box for Physical controls. The default is FALSE.</string>
+            <string>Controls/indicates whether the object moves physically.\nThis controls the same flag that the UI check-box for Physical controls. The default is FALSE.</string>
          </map>
          <key>STATUS_RETURN_AT_EDGE</key>
          <map>
@@ -6511,7 +6503,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Returns the absolute (positive) version of Value.\nReturns the absolute value of Value.</string>
+            <string>Returns the absolute (positive) version of Value.</string>
          </map>
          <key>llAcos</key>
          <map>
@@ -6532,7 +6524,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Returns the arc-cosine of Value, in radians.\nReturns the arc-cosine of Value, in radians.</string>
+            <string>Returns the arc-cosine of Value, in radians.</string>
          </map>
          <key>llAddToLandBanList</key>
          <map>
@@ -6560,10 +6552,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Add avatar ID to the land ban list, for a duration of Hours.\nAdds agent ID to the parcel ban list for the specified number of hours. A value of 0 for hours will add the agent indefinitely.\n
-			The smallest value that Hours will accept is 0.01; anything smaller will be seen as 0.\n
-			When values that small are used, it seems the function bans in 30 second increments (Probably 36 second increments, as 0.01 of an hour is 36 seconds).\n
-			Residents teleporting to a parcel where they are banned will be redirected to a neighbouring parcel.</string>
+            <string>Add avatar ID to the parcel ban list for the specified number of Hours.\nA value of 0 for Hours will add the agent indefinitely.\nThe smallest value that Hours will accept is 0.01; anything smaller will be seen as 0.\nWhen values that small are used, it seems the function bans in approximately 30 second increments (Probably 36 second increments, as 0.01 of an hour is 36 seconds).\nResidents teleporting to a parcel where they are banned will be redirected to a neighbouring parcel.</string>
          </map>
          <key>llAddToLandPassList</key>
          <map>
@@ -6591,7 +6580,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Add avatar ID to the land pass list, for a duration of Hours.\nAdd avatar ID to the land pass list, for a duration of Hours.</string>
+            <string>Add avatar ID to the land pass list, for a duration of Hours.</string>
          </map>
          <key>llAdjustSoundVolume</key>
          <map>
@@ -6612,8 +6601,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Adjusts the volume (0.0 - 1.0) of the currently playing attached sound started with llPlaySound or llLoopSound.\nAdjusts the volume of the currently playing attached sound started with llPlaySound or llLoopSound.\n
-			This function has no effect on sounds started with llTriggerSound.</string>
+            <string>Adjusts the volume (0.0 - 1.0) of the currently playing attached sound started with llPlaySound or llLoopSound.\nAdjusts the volume of the currently playing attached sound started with llPlaySound or llLoopSound.\nThis function has no effect on sounds started with llTriggerSound.</string>
          </map>
          <key>llAllowInventoryDrop</key>
          <map>
@@ -6634,7 +6622,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>If Flag == TRUE, users without object modify permissions can still drop inventory items into the object.\nIf Flag == TRUE, users that do not have object modify permissions can still drop inventory items into the object.</string>
+            <string>If Flag == TRUE, users without object modify permissions can still drop inventory items into the object.</string>
          </map>
          <key>llAngleBetween</key>
          <map>
@@ -6662,7 +6650,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Returns the angle, in radians, between rotations Rot1 and Rot2.\nReturns the angle, in radians, between rotations Rot1 and Rot2.</string>
+            <string>Returns the angle, in radians, between rotations Rot1 and Rot2.</string>
          </map>
          <key>llApplyImpulse</key>
          <map>
@@ -6690,8 +6678,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Applies impulse to object, in local coordinates if local == TRUE (if the script is physical).\n 	Applies the Force in local coordinates if Local == TRUE. Otherwise the Force is applied in global coordinates.\n
-			This function only works on physical objects.</string>
+            <string>Applies impulse to the object.\nApplies the Force in local coordinates if Local == TRUE. Otherwise the Force is applied in global coordinates.\nThis function only works on physical objects.</string>
          </map>
          <key>llApplyRotationalImpulse</key>
          <map>
@@ -6719,8 +6706,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Applies rotational impulse to object, in local coordinates if local == TRUE (if the script is physical).\nApplies a rotational impulse force in local coordinates if Local == TRUE. Otherwise the impulse is applied in global coordinates.\n
-			This function only works on physical objects.</string>
+            <string>Applies rotational impulse to the object,\nThe force is in local coordinates, if Local == TRUE, otherwise the impulse is applied in global coordinates.\nThis function only works on physical objects.</string>
          </map>
          <key>llAsin</key>
          <map>
@@ -6741,7 +6727,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Returns the arc-sine, in radians, of Value.\nReturns the arc-sine, in radians, of Value.</string>
+            <string>Returns the arc-sine, in radians, of Value.</string>
          </map>
          <key>llAtan2</key>
          <map>
@@ -6769,7 +6755,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Returns the arc-tangent2 of y, x.\nReturns the arc-tangent2 of y, x.</string>
+            <string>Returns the arc-tangent2 of y, x.</string>
          </map>
          <key>llAttachToAvatar</key>
          <map>
@@ -6790,8 +6776,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Attach to avatar at point AttachmentPoint, if task has permissions to do so.\nAttach to avatar at point iAttachmentPoint.\n
-			Requires the PERMISSION_ATTACH runtime permission.</string>
+            <string>Attach to avatar at point AttachmentPoint, if task has permissions to do so.\nAttach to avatar at point iAttachmentPoint.\nRequires the PERMISSION_ATTACH runtime permission.</string>
          </map>
          <key>llAttachToAvatarTemp</key>
          <map>
@@ -6846,7 +6831,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>If an avatar is seated on the sit target, returns the avatar's key, otherwise NULL_KEY.\nIf an avatar is sitting on the sit target, return the avatars key, NULL_KEY otherwise. This only will detect avatars sitting on sit targets defined with llSitTarget.</string>
+            <string>If an avatar is seated on the sit target, returns the avatar's key, otherwise NULL_KEY.\nThis only will detect avatars sitting on sit targets defined with llSitTarget.</string>
          </map>
          <key>llAxes2Rot</key>
          <map>
@@ -6881,7 +6866,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Returns the rotation defined by the coordinate axes.\nReturns the rotation represented by coordinate axes Forward, Left, and Up.</string>
+            <string>Returns the rotation represented by coordinate axes Forward, Left, and Up.</string>
          </map>
          <key>llAxisAngle2Rot</key>
          <map>
@@ -6909,7 +6894,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Returns the rotation that is a generated Angle about Axis.\nReturns the rotation generated Angle about Axis.</string>
+            <string>Returns the rotation that is a generated Angle about Axis.</string>
          </map>
          <key>llBase64ToInteger</key>
          <map>
@@ -6930,8 +6915,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Returns an integer that is the Text, Base64 decoded as a big endian integer.\nReturns an integer that is the Text, Base64 decoded as a big endian integer.\n
-				Returns zero if Text is longer then 8 characters. If Text contains fewer then 6 characters, the return value is unpredictable.</string>
+            <string>Returns an integer that is the Text, Base64 decoded as a big endian integer.\nReturns zero if Text is longer then 8 characters. If Text contains fewer then 6 characters, the return value is unpredictable.</string>
          </map>
          <key>llBase64ToString</key>
          <map>
@@ -6952,9 +6936,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Converts a Base64 string to a conventional string.\n
-				If the conversion creates any unprintable characters, they are converted to spaces.\nConverts a Base 64 string to a conventional string.\n
-			If the conversion creates any unprintable characters, they are converted to question marks (this behaviour is different than llUnescapeURL's).</string>
+            <string>Converts a Base64 string to a conventional string.\nIf the conversion creates any unprintable characters, they are converted to question marks.</string>
          </map>
          <key>llBreakAllLinks</key>
          <map>
@@ -6967,7 +6949,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>De-links all tasks in the link set (requires permission PERMISSION_CHANGE_LINKS be set).\nDe-links all objects in the link set. Requires the permission PERMISSION_CHANGE_LINKS be set.</string>
+            <string>De-links all prims in the link set (requires permission PERMISSION_CHANGE_LINKS be set).</string>
          </map>
          <key>llBreakLink</key>
          <map>
@@ -6988,7 +6970,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>De-links the task with the given link number (requires permission PERMISSION_CHANGE_LINKS be set).\nDe-links the object with the given link number. Requires permission PERMISSION_CHANGE_LINKS be set.</string>
+            <string>De-links the prim with the given link number (requires permission PERMISSION_CHANGE_LINKS be set).</string>
          </map>
          <key>llCastRay</key>
          <map>
@@ -7023,8 +7005,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Casts a ray into the physics world from 'start' to 'end' and returns data according to details in Options.\nCast a ray from Start to End and report collision data for intersections with objects.\n
-			Return value: [UUID_1, {link_number_1}, hit_position_1, {hit_normal_1}, UUID_2, {link_number_2}, hit_position_2, {hit_normal_2}, ... , status_code] where {} indicates optional data.</string>
+            <string>Casts a ray into the physics world from 'start' to 'end' and returns data according to details in Options.\nReports collision data for intersections with objects.\nReturn value: [UUID_1, {link_number_1}, hit_position_1, {hit_normal_1}, UUID_2, {link_number_2}, hit_position_2, {hit_normal_2}, ... , status_code] where {} indicates optional data.</string>
          </map>
          <key>llCeil</key>
          <map>
@@ -7045,7 +7026,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Returns smallest integer value &gt;= Value.\nReturns smallest integer value &gt;= Value.</string>
+            <string>Returns smallest integer value &gt;= Value.</string>
          </map>
          <key>llClearCameraParams</key>
          <map>
@@ -7058,7 +7039,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Resets all camera parameters to default values and turns off scripted camera control.\nResets all camera parameters to default values and turns off scripted camera control.</string>
+            <string>Resets all camera parameters to default values and turns off scripted camera control.</string>
          </map>
          <key>llClearLinkMedia</key>
          <map>
@@ -7086,8 +7067,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Clears (deletes) the media and all parameters from the given Face on the linked prim.\nClears (deletes) the media and all parameters from the given from the given Face on the Linked prim(s).\n
-			Returns an integer that is a STATUS_* flag which details the success/failure of the operation.</string>
+            <string>Clears (deletes) the media and all parameters from the given Face on the linked prim.\nReturns an integer that is a STATUS_* flag, which details the success/failure of the operation.</string>
          </map>
          <key>llClearPrimMedia</key>
          <map>
@@ -7108,8 +7088,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Clears (deletes) the media and all parameters from the given face.\nClears (deletes) the media and all parameters from the given Face.\n
-			Returns an integer that is a STATUS_* flag which details the success/failure of the operation.</string>
+            <string>Clears (deletes) the media and all parameters from the given Face.\nReturns an integer that is a STATUS_* flag which details the success/failure of the operation.</string>
          </map>
          <key>llCloseRemoteDataChannel</key>
          <map>
@@ -7130,7 +7109,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Closes XML-RPC channel.\nCloses the specified XML-RPC channel.</string>
+            <string>Closes the specified XML-RPC channel.</string>
          </map>
          <key>llCloud</key>
          <map>
@@ -7151,7 +7130,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Returns the cloud density at the object's position + Offset.\nReturns the cloud density at the object's position + Offset.</string>
+            <string>Returns the cloud density at the object's position + Offset.</string>
          </map>
          <key>llCollisionFilter</key>
          <map>
@@ -7186,8 +7165,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>if Accept == TRUE, only accept collisions with specified name and id (either is optional), otherwise with objects not name or id.\nIf Accept == TRUE, only accept collisions with objects Name and ID, otherwise with objects not Name or ID.\n
-			Specify an empty string or NULL_KEY to not filter on the corresponding parameter.</string>
+            <string>If Accept == TRUE, only accept collisions with objects Name and ID, otherwise with objects not Name or ID.\nSpecify an empty string or NULL_KEY to not filter on the corresponding parameter.</string>
          </map>
          <key>llCollisionSound</key>
          <map>
@@ -7215,8 +7193,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Suppress default collision sounds, replace default impact sounds with ImpactSound (empty string to suppress).\nSuppress default collision sounds, replace default impact sounds with ImpactSound, found in the object inventory.\n
-			Supply an empty string to suppress collision sounds.</string>
+            <string>Suppress default collision sounds, replace default impact sounds with ImpactSound.\nThe ImpactSound must be in the object inventory.\nSupply an empty string to suppress collision sounds.</string>
          </map>
          <key>llCollisionSprite</key>
          <map>
@@ -7237,8 +7214,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Suppress default collision sprites, replace default impact sprite with impact_sprite (empty string to just suppress).\nSuppress default collision sprites, replace default impact sprite with ImpactSprite, found in the object inventory.\n
-			Supply an empty string to just suppress.</string>
+            <string>Suppress default collision sprites, replace default impact sprite with ImpactSprite; found in the object inventory (empty string to just suppress).</string>
          </map>
          <key>llCos</key>
          <map>
@@ -7259,7 +7235,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Returns the cosine of Theta (Theta in radians).\nReturns the cosine of Theta radians.</string>
+            <string>Returns the cosine of Theta (Theta in radians).</string>
          </map>
          <key>llCreateCharacter</key>
          <map>
@@ -7280,8 +7256,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Convert link-set to AI/Physics character.\nCreates a path-finding entity, known as a "character", from the object containing the script. Required to activate use of path-finding functions.\n
-			Options is a list of key/value pairs.</string>
+            <string>Convert link-set to AI/Physics character.\nCreates a path-finding entity, known as a "character", from the object containing the script. Required to activate use of path-finding functions.\nOptions is a list of key/value pairs.</string>
          </map>
          <key>llCreateLink</key>
          <map>
@@ -7309,8 +7284,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Attempt to link task script is attached to and target (requires permission PERMISSION_CHANGE_LINKS be set). If parent == TRUE, task script is attached to is the root.\nAttempt to link the object that the script is attached to and the target object.\n
-			Requires permission PERMISSION_CHANGE_LINKS be set.</string>
+            <string>Attempt to link the object the script is in, to target (requires permission PERMISSION_CHANGE_LINKS be set).\nIf parent == TRUE, the object the script is attached to is the root.\nRequires permission PERMISSION_CHANGE_LINKS be set.</string>
          </map>
          <key>llCSV2List</key>
          <map>
@@ -7331,7 +7305,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Creates a list, from a string of comma separated values.\nCreate a list from a string of comma separated values specified in Text.</string>
+            <string>Create a list from a string of comma separated values specified in Text.</string>
          </map>
          <key>llDeleteCharacter</key>
          <map>
@@ -7379,9 +7353,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Removes the slice from start to end and returns the remainder of the list.\nRemove a slice from the list and return the remainder, start and end are inclusive.\n
-				Using negative numbers for start and/or end causes the index to count backwards from the length of the list, so 0, -1 would delete the entire list.\n
-				If Start is larger than End the list deleted is the exclusion of the entries; so 6, 4 would delete the entire list except for the 5th. list entry.</string>
+            <string>Removes the slice from start to end and returns the remainder of the list.\nRemove a slice from the list and return the remainder, start and end are inclusive.\nUsing negative numbers for start and/or end causes the index to count backwards from the length of the list, so 0, -1 would delete the entire list.\nIf Start is larger than End the list deleted is the exclusion of the entries; so 6, 4 would delete the entire list except for the 5th. list entry.</string>
          </map>
          <key>llDeleteSubString</key>
          <map>
@@ -7416,9 +7388,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Removes the indicated sub-string and returns the result.\nRemoves the indicated sub-string and returns the result, start and end are inclusive.\n
-			Using negative numbers for start and/or end causes the index to count backwards from the length of the string, so 0, -1 would delete the entire string.\n
-			If start is larger than end, the sub string is the exclusion of the entries; so 6, 4 would delete the entire string except for the 5th. character.</string>
+            <string>Removes the indicated sub-string and returns the result.\nStart and End are inclusive.\nUsing negative numbers for Start and/or End causes the index to count backwards from the length of the string, so 0, -1 would delete the entire string.\nIf Start is larger than End, the sub-string is the exclusion of the entries; so 6, 4 would delete the entire string except for the 5th. character.</string>
          </map>
          <key>llDetachFromAvatar</key>
          <map>
@@ -7431,7 +7401,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Remove the object containing the script from the avatar.\nRemove the object containing the script from the avatar.</string>
+            <string>Remove the object containing the script from the avatar.</string>
          </map>
          <key>llDetectedGrab</key>
          <map>
@@ -7452,8 +7422,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Returns the grab offset of the user touching object (returns &lt;0,0,0&gt; if number is not a valid sensed object).\nReturns the grab offset of detected object number.\n
-			Returns &lt;0.0, 0.0, 0.0&gt; if Number is not a valid object.</string>
+            <string>Returns the grab offset of a user touching the object.\nReturns &lt;0.0, 0.0, 0.0&gt; if Number is not a valid object.</string>
          </map>
          <key>llDetectedGroup</key>
          <map>
@@ -7474,8 +7443,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Returns TRUE if detected object is part of same group as owner.\nReturns TRUE if detected object or agent Number has the same user group active as this object.\n
-			It will return FALSE if the object or agent is in the group, but the group is not active.</string>
+            <string>Returns TRUE if detected object or agent Number has the same user group active as this object.\nIt will return FALSE if the object or agent is in the group, but the group is not active.</string>
          </map>
          <key>llDetectedKey</key>
          <map>
@@ -7496,8 +7464,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Returns the key of detected object or avatar number (returns empty key if number is not a valid index).\nReturns the key of detected object or avatar number.\n
-			Returns NULL_KEY if Number is not a valid index.</string>
+            <string>Returns the key of detected object or avatar number.\nReturns NULL_KEY if Number is not a valid index.</string>
          </map>
          <key>llDetectedLinkNumber</key>
          <map>
@@ -7518,8 +7485,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Returns the link position of the triggered event for touches and collisions only.\nReturns the link position of the triggered event for touches.\n
-			0 for a non-linked object, 1 for the root of a linked object, 2 for the first child, etc.</string>
+            <string>Returns the link position of the triggered event for touches and collisions only.\n0 for a non-linked object, 1 for the root of a linked object, 2 for the first child, etc.</string>
          </map>
          <key>llDetectedName</key>
          <map>
@@ -7540,8 +7506,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Returns the name of detected object or avatar number (returns empty string if number is not a valid index).\nReturns the name of detected object number.\n
-			Returns empty string if number is not a valid index.</string>
+            <string>Returns the name of detected object or avatar number.\nReturns the name of detected object number.\nReturns empty string if Number is not a valid index.</string>
          </map>
          <key>llDetectedOwner</key>
          <map>
@@ -7562,8 +7527,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Returns the key of detected object's owner (returns empty key if number is not a valid index).\nReturns the key of detected number objects owner.\n
-			Returns invalid key if number is not a valid index.</string>
+            <string>Returns the key of detected object's owner.\nReturns invalid key if Number is not a valid index.</string>
          </map>
          <key>llDetectedPos</key>
          <map>
@@ -7584,8 +7548,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Returns the position of detected object or avatar number (returns &lt;0,0,0&gt; if number is not a valid index).\nReturns the position of detected object Number.\n
-			Returns &lt;0.0, 0.0, 0.0&gt; if number is not a valid index.</string>
+            <string>Returns the position of detected object or avatar number.\nReturns &lt;0.0, 0.0, 0.0&gt; if Number is not a valid index.</string>
          </map>
          <key>llDetectedRot</key>
          <map>
@@ -7606,8 +7569,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Returns the rotation of detected object or avatar number (returns &lt;0,0,0,1&gt; if number is not a valid index).\nReturns the rotation of detected object or avatar number.\n
-			Returns &lt;0.0, 0.0, 0.0, 1.0&gt; if number is not a valid offset.</string>
+            <string>Returns the rotation of detected object or avatar number.\nReturns &lt;0.0, 0.0, 0.0, 1.0&gt; if Number is not a valid offset.</string>
          </map>
          <key>llDetectedTouchBinormal</key>
          <map>
@@ -7649,7 +7611,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Returns the index of the face where the avatar clicked in a triggered touch event.\nReturns an integer that is the index of the face the avatar clicked on.</string>
+            <string>Returns the index of the face where the avatar clicked in a triggered touch event.</string>
          </map>
          <key>llDetectedTouchNormal</key>
          <map>
@@ -7691,7 +7653,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Returns the position where the object was touched in a triggered touch event.\nReturns a vector that is the position of the touched object, in region coordinates; unless it is a HUD, in which case it returns the position relative to the attach point.</string>
+            <string>Returns the position, in region coordinates, where the object was touched in a triggered touch event.\nUnless it is a HUD, in which case it returns the position relative to the attach point.</string>
          </map>
          <key>llDetectedTouchST</key>
          <map>
@@ -7712,10 +7674,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Returns the s and t coordinates, in the first two components of a vector, for the surface coordinates where the prim was touched in a triggered touch event.\nReturns a vector that is the surface coordinates where the prim was touched.\n
-			The x and y vector positions contain the horizontal (s) and vertical (t) face coordinates respectively.\n
-			Each component is in the interval [0.0, 1.0].\n
-			TOUCH_INVALID_TEXCOORD is returned if the surface coordinates cannot be determined (e.g. when the viewer does not support this function).</string>
+            <string>Returns a vector that is the surface coordinates where the prim was touched.\nThe X and Y vector positions contain the horizontal (S) and vertical (T) face coordinates respectively.\nEach component is in the interval [0.0, 1.0].\nTOUCH_INVALID_TEXCOORD is returned if the surface coordinates cannot be determined (e.g. when the viewer does not support this function).</string>
          </map>
          <key>llDetectedTouchUV</key>
          <map>
@@ -7736,8 +7695,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Returns the u and v coordinates in the first two components of a vector, for the texture coordinates where the prim was touched in a triggered touch event.\nReturns a vector that is the texture coordinates for where the prim was touched. The x and y vector positions contain the u and v face coordinates respectively.\n
-			TOUCH_INVALID_TEXCOORD is returned if the touch UV coordinates cannot be determined (e.g. when the viewer does not support this function).</string>
+            <string>Returns a vector that is the texture coordinates for where the prim was touched.\nThe X and Y vector positions contain the U and V face coordinates respectively.\nTOUCH_INVALID_TEXCOORD is returned if the touch UV coordinates cannot be determined (e.g. when the viewer does not support this function).</string>
          </map>
          <key>llDetectedType</key>
          <map>
@@ -7758,13 +7716,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Returns the type (AGENT, ACTIVE, PASSIVE, SCRIPTED) of detected object (returns 0 if number is not a valid index).\nReturns the type (AGENT, ACTIVE, PASSIVE, SCRIPTED) of detected object number. Returns 0 if number is not a valid index.\n
-			Note that number is a bit-field, so comparisons need to be a bitwise checked. e.g.:\n
-			integer iType = llDetectedType(0);\n
-			if (iType &amp; AGENT)\n
-			{\n
-				// ...do stuff with the agent\n
-			}</string>
+            <string>Returns the type (AGENT, ACTIVE, PASSIVE, SCRIPTED) of detected object.\nReturns 0 if number is not a valid index.\nNote that number is a bit-field, so comparisons need to be a bitwise checked. e.g.:\ninteger iType = llDetectedType(0);\n{\n	// ...do stuff with the agent\n}</string>
          </map>
          <key>llDetectedVel</key>
          <map>
@@ -7785,8 +7737,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Returns the velocity of detected object number (returns &lt;0,0,0&gt; if number is not a valid sensed object).\nReturns the velocity of the detected object number.\n
-			Returns&lt;0.0, 0.0, 0.0&gt; if number is not a valid offset.</string>
+            <string>Returns the velocity of the detected object Number.\nReturns&lt;0.0, 0.0, 0.0&gt; if Number is not a valid offset.</string>
          </map>
          <key>llDialog</key>
          <map>
@@ -7837,7 +7788,7 @@
 			Examples:\n
 			llDialog(who, "Are you a boy or a girl?", [ "Boy", "Girl" ], -4913);\n
 			llDialog(who, "This shows only an OK button.", [], -192);\n
-			llDialog(who, "This chats so you can hear it.", ["Hooray"], 0);</string>
+			llDialog(who, "This chats so you can 'hear' it.", ["Hooray"], 0);</string>
          </map>
          <key>llDie</key>
          <map>
@@ -8139,7 +8090,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Returns largest integer value &lt;= Value.\nReturns largest integer value &lt;= Value.</string>
+            <string>Returns largest integer value &lt;= Value.</string>
          </map>
          <key>llForceMouselook</key>
          <map>
@@ -8184,6 +8135,19 @@
             <key>tooltip</key>
             <string>Returns a pseudo random number in the range [0, Magnitude] or [Magnitude, 0].\nReturns a pseudo-random number between [0, Magnitude].</string>
          </map>
+         <key>llGenerateKey</key>
+         <map>
+            <key>energy</key>
+            <real>0</real>
+            <key>sleep</key>
+            <real>0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Generates a key (SHA-1 hash) using UUID generation to create a unique key.\nAs the UUID produced is versioned, it should never return a value of NULL_KEY.\nThe specific UUID version is an implementation detail that has changed in the past and may change again in the future. Do not depend upon the UUID that is returned to be version 5 SHA-1 hash.</string>
+         </map>
          <key>llGetAccel</key>
          <map>
             <key>energy</key>
@@ -8438,7 +8402,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Returns the prim's centre of mass (unless called from the root prim, where it returns the object's centre of mass).\nReturns the prim's centre of mass (unless called from the root prim, where it returns the object's centre of mass).</string>
+            <string>Returns the prim's centre of mass (unless called from the root prim, where it returns the object's centre of mass).</string>
          </map>
          <key>llGetClosestNavPoint</key>
          <map>
@@ -8549,7 +8513,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Returns how much energy is in the object as a percentage of maximum.\nReturns how much energy is in the object as a percentage of maximum.</string>
+            <string>Returns how much energy is in the object as a percentage of maximum.</string>
          </map>
          <key>llGetEnv</key>
          <map>
@@ -8570,7 +8534,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Returns a string with the requested data about the region.\nReturns a string with the requested data about the region.</string>
+            <string>Returns a string with the requested data about the region.</string>
          </map>
          <key>llGetForce</key>
          <map>
@@ -9087,7 +9051,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Acts as llGetMass(), except that the units of the value returned are Kg.\nActs as llGetMass(), except that the units of the value returned are Kg.</string>
+            <string>Acts as llGetMass(), except that the units of the value returned are Kg.</string>
          </map>
          <key>llGetMemoryLimit</key>
          <map>
@@ -9305,7 +9269,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Returns the requested permission mask for the root object the task is attached to.\nReturns the requested permission mask for the root object the task is attached to.</string>
+            <string>Returns the requested permission mask for the root object the task is attached to.</string>
          </map>
          <key>llGetObjectPrimCount</key>
          <map>
@@ -9574,7 +9538,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Returns a list of the form [float gravity_multiplier, float restitution, float friction, float density].\nReturns a list of the form [float gravity_multiplier, float restitution, float friction, float density].</string>
+            <string>Returns a list of the form [float gravity_multiplier, float restitution, float friction, float density].</string>
          </map>
          <key>llGetPos</key>
          <map>
@@ -9690,7 +9654,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Returns the mean region frames per second.\nReturns the mean region frames per second.</string>
+            <string>Returns the mean region frames per second.</string>
          </map>
          <key>llGetRegionName</key>
          <map>
@@ -9703,7 +9667,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Returns the current region name.\nReturns the current region name.</string>
+            <string>Returns the current region name.</string>
          </map>
          <key>llGetRegionTimeDilation</key>
          <map>
@@ -9978,7 +9942,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Returns the texture offset of face in the x and y components of a vector.\nReturns the texture offset of Face in the x and y components of a vector.</string>
+            <string>Returns the texture offset of face in the x and y components of a vector.</string>
          </map>
          <key>llGetTextureRot</key>
          <map>
@@ -9999,7 +9963,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Returns the texture rotation of side.\nReturns the texture rotation of side.</string>
+            <string>Returns the texture rotation of side.</string>
          </map>
          <key>llGetTextureScale</key>
          <map>
@@ -10033,7 +9997,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Returns the time in seconds since the last region reset, script reset, or call to either llResetTime or llGetAndResetTime.\nReturns the time in seconds since the last region reset, script reset, or call to either llResetTime or llGetAndResetTime.</string>
+            <string>Returns the time in seconds since the last region reset, script reset, or call to either llResetTime or llGetAndResetTime.</string>
          </map>
          <key>llGetTimeOfDay</key>
          <map>
@@ -11816,7 +11780,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Set the minimum time between events being handled.\nSet the minimum time between events being handled.</string>
+            <string>Set the minimum time between events being handled.</string>
          </map>
          <key>llModifyLand</key>
          <map>
@@ -12434,7 +12398,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Reloads the web page shown on the sides of the object.\nReloads the web page shown on the sides of the object.</string>
+            <string>Reloads the web page shown on the sides of the object.</string>
          </map>
          <key>llRegionSay</key>
          <map>
@@ -12554,7 +12518,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Releases the specified URL, it will no longer be usable.\nReleases the specified URL, it will no longer be usable.</string>
+            <string>Releases the specified URL, it will no longer be usable.</string>
          </map>
          <key>llRemoteDataReply</key>
          <map>
@@ -12979,9 +12943,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Requests single-word user-name of an avatar. When data is available the dataserver event will be raised.\nRequests the user-name of the identified agent. When the user-name is available the dataserver event will be raised.\n
-				The agent identified does not need to be in the same region or online at the time of the request.\n
-				Returns a key that is used to identify the dataserver event when it is raised.</string>
+            <string>Requests single-word user-name of an avatar. When data is available the dataserver event will be raised.\nRequests the user-name of the identified agent. When the user-name is available the dataserver event is raised.\nThe agent identified does not need to be in the same region or online at the time of the request.\nReturns a key that is used to identify the dataserver event when it is raised.</string>
          </map>
          <key>llResetLandBanList</key>
          <map>
@@ -12994,7 +12956,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Removes all residents from the land ban list.\nRemoves all entries from the land ban list.</string>
+            <string>Removes all residents from the land ban list.</string>
          </map>
          <key>llResetLandPassList</key>
          <map>
@@ -13007,7 +12969,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Removes all residents from the land access/pass list.\nRemoves all entries from the land access/pass list.</string>
+            <string>Removes all residents from the land access/pass list.</string>
          </map>
          <key>llResetOtherScript</key>
          <map>
@@ -13028,7 +12990,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Resets script name.\nResets the named script.</string>
+            <string>Resets the named script.</string>
          </map>
          <key>llResetScript</key>
          <map>
@@ -13041,7 +13003,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Resets the script.\nResets this script.</string>
+            <string>Resets the script.</string>
          </map>
          <key>llResetTime</key>
          <map>
@@ -13152,8 +13114,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Instantiate owners InventoryItem at Position with Velocity, Rotation and with start StartParameter.\nCreates object's inventory item at Position with Velocity and Rotation supplied. The StartParameter value will be available to the newly created object in the on_rez event or through the llGetStartParameter function.\n
-				The Velocity parameter is ignored if the rezzed object is not physical.</string>
+            <string>Instantiate owners InventoryItem at Position with Velocity, Rotation and with start StartParameter.\nCreates object's inventory item at Position with Velocity and Rotation supplied. The StartParameter value will be available to the newly created object in the on_rez event or through the llGetStartParameter function.\nThe Velocity parameter is ignored if the rezzed object is not physical.</string>
          </map>
          <key>llRot2Angle</key>
          <map>
@@ -13860,7 +13821,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Sets the camera eye offset used in this object if an avatar sits on it.\nSets the camera eye offset used in this object if an avatar sits on it.</string>
+            <string>Sets the camera eye offset used in this object if an avatar sits on it.</string>
          </map>
          <key>llSetCameraParams</key>
          <map>
@@ -13903,7 +13864,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Sets the action performed when a prim is clicked upon.\nSets the Action performed when a prim is clicked upon.</string>
+            <string>Sets the action performed when a prim is clicked upon.</string>
          </map>
          <key>llSetColor</key>
          <map>
@@ -13959,7 +13920,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Set the media type of an LSL HTTP server response.\nSet the media type of an LSL HTTP server response.</string>
+            <string>Set the media type of an LSL HTTP server response.</string>
          </map>
          <key>llSetDamage</key>
          <map>
@@ -14115,7 +14076,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Sets the given permission mask to the new value on the inventory item.\nSets the given permission mask to the new value on the inventory item.</string>
+            <string>Sets the given permission mask to the new value on the inventory item.</string>
          </map>
          <key>llSetKeyframedMotion</key>
          <map>
@@ -14213,7 +14174,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Sets the camera eye offset, and the offset that camera is looking at, for avatars that sit on the linked prim.\nSets the camera eye offset, and the offset that camera is looking at, for avatars that sit on the linked prim.</string>
+            <string>Sets the camera eye offset, and the offset that camera is looking at, for avatars that sit on the linked prim.</string>
          </map>
          <key>llSetLinkColor</key>
          <map>
@@ -14467,7 +14428,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Sets the rotation of a child prim relative to the root prim.\nSets the rotation of a child prim relative to the root prim.</string>
+            <string>Sets the rotation of a child prim relative to the root prim.</string>
          </map>
          <key>llSetMemoryLimit</key>
          <map>
@@ -14532,7 +14493,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Sets the object's name.\nSets the object's name.</string>
+            <string>Sets the object's name.</string>
          </map>
          <key>llSetObjectPermMask</key>
          <map>
@@ -14560,7 +14521,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Sets the given permission mask to the new value on the root object the task is attached to.\nSets the given permission mask to the new value on the root object the task is attached to.</string>
+            <string>Sets the given permission mask to the new value on the root object the task is attached to.</string>
          </map>
          <key>llSetParcelMusicURL</key>
          <map>
@@ -14659,7 +14620,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Sets the requested attributes of the root object's physics material.\nSets the requested attributes of the root object's physics material.</string>
+            <string>Sets the requested attributes of the root object's physics material.</string>
          </map>
          <key>llSetPos</key>
          <map>
@@ -14933,7 +14894,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Establishes a hard cut-off radius for audibility of scripted sounds (both attached and triggered).\nEstablishes a hard cut-off radius for audibility of scripted sounds (both attached and triggered).</string>
+            <string>Establishes a hard cut-off radius for audibility of scripted sounds (both attached and triggered).</string>
          </map>
          <key>llSetStatus</key>
          <map>
@@ -15604,7 +15565,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Stops critically damped motion.\nStops critically damped motion.</string>
+            <string>Stops critically damped motion.</string>
          </map>
          <key>llStopSound</key>
          <map>
-- 
cgit v1.2.3


From e63d92ab504d74399cae2a9cc7625ef3ec330c38 Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Wed, 26 Jun 2013 17:30:07 +0100
Subject: Updating lsl tokens file with last four months of additions.

---
 indra/newview/app_settings/keywords_lsl_tokens.xml | 495 +++++++++++++++++++--
 1 file changed, 449 insertions(+), 46 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/app_settings/keywords_lsl_tokens.xml b/indra/newview/app_settings/keywords_lsl_tokens.xml
index 2e54482f33..6806f80169 100644
--- a/indra/newview/app_settings/keywords_lsl_tokens.xml
+++ b/indra/newview/app_settings/keywords_lsl_tokens.xml
@@ -1187,6 +1187,24 @@
             <key>tooltip</key>
             <string>When the prim is clicked, touch events are triggered".</string>
          </map>
+         <key>CONTENT_TYPE_ATOM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string>"application/atom+xml"</string>
+         </map>
+         <key>CONTENT_TYPE_FORM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>7</integer>
+            <key>tooltip</key>
+            <string>"application/x-www-form-urlencoded"</string>
+         </map>
          <key>CONTENT_TYPE_HTML</key>
          <map>
             <key>type</key>
@@ -1196,6 +1214,33 @@
             <key>tooltip</key>
             <string>"text/html", only valid for embedded browsers on content owned by the person viewing. Falls back to "text/plain" otherwise.</string>
          </map>
+         <key>CONTENT_TYPE_JSON</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string>"application/json"</string>
+         </map>
+         <key>CONTENT_TYPE_LLSD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string>"application/llsd+xml"</string>
+         </map>
+         <key>CONTENT_TYPE_RSS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>8</integer>
+            <key>tooltip</key>
+            <string>"application/rss+xml"</string>
+         </map>
          <key>CONTENT_TYPE_TEXT</key>
          <map>
             <key>type</key>
@@ -1205,6 +1250,24 @@
             <key>tooltip</key>
             <string>"text/plain"</string>
          </map>
+         <key>CONTENT_TYPE_XHTML</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string>"application/xhtml+xml"</string>
+         </map>
+         <key>CONTENT_TYPE_XML</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>"application/xml"</string>
+         </map>
          <key>CONTROL_BACK</key>
          <map>
             <key>type</key>
@@ -1410,6 +1473,51 @@
             <key>tooltip</key>
             <string/>
          </map>
+         <key>ERR_GENERIC</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>ERR_MALFORMED_PARAMS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-3</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>ERR_PARCEL_PERMISSIONS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>ERR_RUNTIME_PERMISSIONS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-4</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>ERR_THROTTLED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-5</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
          <key>ESTATE_ACCESS_ALLOWED_AGENT_ADD</key>
          <map>
             <key>type</key>
@@ -1689,6 +1797,78 @@
             <key>tooltip</key>
             <string/>
          </map>
+         <key>JSON_ARRAY</key>
+         <map>
+            <key>type</key>
+            <string>string</string>
+            <key>value</key>
+            <string>U+FDD2</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>JSON_FALSE</key>
+         <map>
+            <key>type</key>
+            <string>string</string>
+            <key>value</key>
+            <string>U+FDD7</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>JSON_INVALID</key>
+         <map>
+            <key>type</key>
+            <string>string</string>
+            <key>value</key>
+            <string>U+FDD0</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>JSON_NULL</key>
+         <map>
+            <key>type</key>
+            <string>string</string>
+            <key>value</key>
+            <string>U+FDD5</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>JSON_NUMBER</key>
+         <map>
+            <key>type</key>
+            <string>string</string>
+            <key>value</key>
+            <string>U+FDD3</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>JSON_OBJECT</key>
+         <map>
+            <key>type</key>
+            <string>string</string>
+            <key>value</key>
+            <string>U+FDD1</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>JSON_STRING</key>
+         <map>
+            <key>type</key>
+            <string>string</string>
+            <key>value</key>
+            <string>U+FDD4</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>JSON_TRUE</key>
+         <map>
+            <key>type</key>
+            <string>string</string>
+            <key>value</key>
+            <string>U+FDD6</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
          <key>KFM_CMD_PAUSE</key>
          <map>
             <key>type</key>
@@ -2904,6 +3084,15 @@
             <key>tooltip</key>
             <string>If this permission is enabled, the object can successfully call llGiveMoney or llTransferLindenDollars to debit the owners account.</string>
          </map>
+         <key>PERMISSION_OVERRIDE_ANIMATIONS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x8000</integer>
+            <key>tooltip</key>
+            <string>Permission to override default animations.</string>
+         </map>
          <key>PERMISSION_RELEASE_OWNERSHIP</key>
          <map>
             <key>type</key>
@@ -8329,6 +8518,27 @@
             <key>tooltip</key>
             <string>Returns a list of keys of playing animations for an avatar.\nReturns a list of keys of all playing animations for the specified avatar ID.</string>
          </map>
+         <key>llGetAnimationOverride</key>
+         <map>
+            <key>energy</key>
+            <real>0</real>
+            <key>sleep</key>
+            <real>0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>AnimationState</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns a string that is the name of the animation that is used for the specified animation state\nTo use this function the script must obtain either the PERMISSION_OVERRIDE_ANIMATIONS or PERMISSION_TRIGGER_ANIMATION permission (automatically granted to attached objects).</string>
+         </map>
          <key>llGetAttached</key>
          <map>
             <key>energy</key>
@@ -10515,6 +10725,118 @@
             <key>tooltip</key>
             <string>Returns a string that is a Base64 big endian encode of Value.\nEncodes the Value as an 8-character Base64 string.</string>
          </map>
+         <key>llJson2List</key>
+         <map>
+            <key>energy</key>
+            <real>0.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <map>
+               <key>JSON</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Converts the top level of the JSON string to a list.</string>
+         </map>
+         <key>llJsonGetValue</key>
+         <map>
+            <key>energy</key>
+            <real>0.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>JSON</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Specifiers</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Gets the value indicated by Specifiers from the JSON string.</string>
+         </map>
+         <key>llJsonSetValue</key>
+         <map>
+            <key>energy</key>
+            <real>0.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>JSON</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Specifiers</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Value</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns a new JSON string that is the JSON given with the Value indicated by Specifiers set to Value.</string>
+         </map>
+         <key>llJsonValueType</key>
+         <map>
+            <key>energy</key>
+            <real>0.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>JSON</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Specifiers</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the type constant (JSON_*) for the value in JSON indicated by Specifiers.</string>
+         </map>
          <key>llKey2Name</key>
          <map>
             <key>energy</key>
@@ -10677,6 +10999,34 @@
             <key>tooltip</key>
             <string>Copies the integer at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to an integer, then zero is returned.</string>
          </map>
+         <key>llList2Json</key>
+         <map>
+            <key>energy</key>
+            <real>0</real>
+            <key>sleep</key>
+            <real>0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>JsonType</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Values</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Converts either a strided list of key:value pairs to a JSON_OBJECT, or a list of values to a JSON_ARRAY.</string>
+         </map>
          <key>llList2Key</key>
          <map>
             <key>energy</key>
@@ -12584,50 +12934,6 @@
 				You do not need to make this call if you don't change regions.\nDeprecated: Use HTTP functions/events instead.\n
 				Does not work! Use llOpenRemoteDataChannel instead.</string>
          </map>
-         <key>llRemoteLoadScript</key>
-         <map>
-            <key>deprecated</key>
-            <boolean>true</boolean>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>3.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>TargetID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Name</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Running</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>StartParameter</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Deprecated. Please use llRemoteLoadScriptPin instead.\nDeprecated: Use llRemoteLoadScriptPin instead.</string>
-         </map>
          <key>llRemoteLoadScriptPin</key>
          <map>
             <key>energy</key>
@@ -12675,8 +12981,7 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>If the owner of the object this script is attached to can modify ObjectID,
-				they are in the same region, and the matching PIN is used, copy ScriptName into target, if Running == TRUE, start the script with StartParameter.\nIf the owner of the object containing this script can modify the object identified by the specified object key, and if the PIN matches the PIN previously set using llSetRemoteScriptAccessPin (on the target prim), then the script will be copied into target.</string>
+            <string>If the owner of the object this script is attached to can modify ObjectID, they are in the same region, and the matching PIN is used, copy ScriptName into target, if Running == TRUE, start the script with StartParameter.\nIf the owner of the object containing this script can modify the object identified by the specified object key, and if the PIN matches the PIN previously set using llSetRemoteScriptAccessPin (on the target prim), then the script will be copied into target.</string>
          </map>
          <key>llRemoveFromLandBanList</key>
          <map>
@@ -12945,6 +13250,27 @@
             <key>tooltip</key>
             <string>Requests single-word user-name of an avatar. When data is available the dataserver event will be raised.\nRequests the user-name of the identified agent. When the user-name is available the dataserver event is raised.\nThe agent identified does not need to be in the same region or online at the time of the request.\nReturns a key that is used to identify the dataserver event when it is raised.</string>
          </map>
+         <key>llResetAnimationOverride</key>
+         <map>
+            <key>energy</key>
+            <real>0</real>
+            <key>sleep</key>
+            <real>0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>AnimationState</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Resets the animation of the specified animation state to the default value.\nIf animation state equals "ALL", then all animation states are reset.</string>
+         </map>
          <key>llResetLandBanList</key>
          <map>
             <key>energy</key>
@@ -13018,6 +13344,55 @@
             <key>tooltip</key>
             <string>Sets the time to zero.\nSets the internal timer to zero.</string>
          </map>
+         <key>llReturnObjectsByID</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>lObjectIDs</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Return objects using their UUIDs</string>
+         </map>
+         <key>llReturnObjectsByOwner</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>kID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>iScope</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Return objects based upon their owner and a scope of parcel, parcel owner, or region.</string>
+         </map>
          <key>llRezAtRoot</key>
          <map>
             <key>energy</key>
@@ -13760,6 +14135,34 @@
             <key>tooltip</key>
             <string>Sets an object's angular velocity, in local coordinates if local == TRUE (if the script is physical).\nApplies angular (rotational) velocity to a physical object. Has no effect on non-physical objects.</string>
          </map>
+         <key>llSetAnimationOverride</key>
+         <map>
+            <key>energy</key>
+            <real>0</real>
+            <key>sleep</key>
+            <real>0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>AnimationState</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>AnimationName</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the animation (in object inventory) that will play for the given animation state.\nTo use this function the script must obtain the PERMISSION_OVERRIDE_ANIMATIONS permission.</string>
+         </map>
          <key>llSetBuoyancy</key>
          <map>
             <key>energy</key>
-- 
cgit v1.2.3


From 7d5ed4f7477c2c564f0e9dededf7131ed42d55b8 Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Thu, 27 Jun 2013 21:28:52 +0100
Subject: Moving LSL highlighting colour info into .../skins/default/colors.xml
 where it makes more sense than its own xml file. Changing other functions to
 read it.

---
 indra/llui/llkeywords.cpp                          |  90 ++++++-----
 indra/llui/llkeywords.h                            |  23 ++-
 indra/llui/lltexteditor.cpp                        |   2 +-
 indra/llui/lltexteditor.h                          |   2 +-
 indra/newview/app_settings/keywords_lsl_colors.xml | 176 ---------------------
 indra/newview/skins/default/colors.xml             |  53 +++++++
 6 files changed, 113 insertions(+), 233 deletions(-)
 delete mode 100644 indra/newview/app_settings/keywords_lsl_colors.xml

(limited to 'indra')

diff --git a/indra/llui/llkeywords.cpp b/indra/llui/llkeywords.cpp
index b7eb4c63bc..521134f26c 100755
--- a/indra/llui/llkeywords.cpp
+++ b/indra/llui/llkeywords.cpp
@@ -71,7 +71,6 @@ inline BOOL LLKeywordToken::isTail(const llwchar* s) const
 
 LLKeywords::LLKeywords() : mLoaded(FALSE)
 {
-	setFilenameColors( gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS,"keywords_lsl_colors.xml") );
 	setFilenameSyntax( gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS,"keywords_lsl_tokens.xml") );
 }
 
@@ -84,7 +83,7 @@ LLKeywords::~LLKeywords()
 
 
 
-void LLKeywords::addColorGroup(const std::string key_in, const LLColor3 color)
+void LLKeywords::addColorGroup(const std::string key_in, const LLColor4 color)
 {
 	WStringMapIndex key ( utf8str_to_wstring(key_in) );
 	mColorGroupMap[key] = color;
@@ -93,7 +92,7 @@ void LLKeywords::addColorGroup(const std::string key_in, const LLColor3 color)
 // Add the token as described
 void LLKeywords::addToken(LLKeywordToken::TOKEN_TYPE type,
 						  const std::string& key_in,
-						  const LLColor3& color,
+						  const LLColor4& color,
 						  const std::string& tool_tip_in,
 						  const std::string& delimiter_in)
 {
@@ -165,33 +164,47 @@ std::string LLKeywords::getAttribute(const std::string& key)
 	return (it != mAttributes.end()) ? it->second : "";
 }
 
-LLColor3 LLKeywords::getColorGroup(const std::string key_in)
+LLColor4 LLKeywords::getColorGroup(const std::string key_in)
 {
-	// LLColor3 initialises to Black (0,0,0)
-	LLColor3 Colour;
-	WStringMapIndex key ( utf8str_to_wstring(key_in) );
-	group_color_map_t::iterator it = mColorGroupMap.find(key);
-	if (it == mColorGroupMap.end())
-	{
-		LL_WARNS("Colour lookup") << "'" << key_in << "' not found!" << LL_ENDL;
-	}
-	else
-	{
-		Colour = it->second;
-	}
-
-	return Colour;
+	std::string ColourGroup = "Black";
+	if (key_in == "constants-float") {
+		ColourGroup = "SyntaxLslConstantFloat";
+	} else if (key_in == "constants-integer") {
+		ColourGroup = "SyntaxLslConstantInteger";
+	} else if (key_in == "constants-key") {
+		ColourGroup = "SyntaxLslConstantKey";
+	} else if (key_in == "constants-string") {
+		ColourGroup = "SyntaxLslConstantRotation";
+	} else if (key_in == "constants-string") {
+		ColourGroup = "SyntaxLslConstantString";
+	} else if (key_in == "constants-vector") {
+		ColourGroup = "SyntaxLslConstantVector";
+	} else if (key_in == "controls") {
+		ColourGroup = "SyntaxLslControlFlow";
+	} else if (key_in == "events") {
+		ColourGroup = "SyntaxLslEvent";
+	} else if (key_in == "functions") {
+		ColourGroup = "SyntaxLslFunction";
+	} else if (key_in == "types") {
+		ColourGroup = "SyntaxLslDataType";
+	} else if (key_in == "sections") {
+		ColourGroup = "SyntaxLslSection";
+	} else if (key_in == "misc-double_quotation_marks") {
+		ColourGroup = "SyntaxLslStringLiteral";
+	} else if (key_in == "misc-comments_1_sided") {
+		ColourGroup = "SyntaxLslComment1Sided";
+	} else if (key_in == "misc-comments_2_sided") {
+		ColourGroup = "SyntaxLslComment2Sided";	
+	}
+
+	return LLUIColorTable::instance().getColor(ColourGroup);
 }
 
 BOOL LLKeywords::initialise()
 {
 	mReady = false;
 
-	if (! loadIntoLLSD(mFilenameColors, mColors) )
-	{
-		LL_ERRS("") << "Failed to load color data, cannot continue!" << LL_ENDL;
-	}
-	else if (! loadIntoLLSD(mFilenameSyntax, mSyntax) )
+	if (! loadIntoLLSD(mFilenameSyntax, mSyntax) )
 	{
 		LL_ERRS("") << "Failed to load syntax data from '" << mFilenameSyntax << "', cannot continue!" << LL_ENDL;
 	}
@@ -199,16 +212,6 @@ BOOL LLKeywords::initialise()
 	{
 		mReady = true;
 	}
-
-	if (ready())
-	{
-		processColors();
-	}
-	else
-	{
-		LL_ERRS("") << LL_ENDL;
-		LL_ERRS("") << "Failed to load one or both data files, cannot continue!" << LL_ENDL;
-	}
 	return mReady;
 }
 
@@ -251,7 +254,7 @@ BOOL LLKeywords::loadIntoLLSD(const std::string& filename, LLSD& data)
 /**
  * @brief Start processing the colour LLSD from its beginning.
  *
- */
+ * /
 std::string LLKeywords::processColors()
 {
 	return processColors(mColors, "");
@@ -261,7 +264,7 @@ std::string LLKeywords::processColors()
  * @brief	Recursively process the colour LLSD from an arbitrary level.
  * @desc	Process the supplied LLSD for colour data. The strPrefix is a string
  *			of hyphen separated keys from previous levels.
- */
+ * /
 std::string LLKeywords::processColors(LLSD &settings, const std::string strPrefix)
 {
 	if (settings.isMap() || (! settings.isMap() && strPrefix != "") )
@@ -299,12 +302,13 @@ std::string LLKeywords::processColors(LLSD &settings, const std::string strPrefi
 	}
 	return strPrefix;
 }
+*/
 
 void LLKeywords::processTokens()
 {
 	// Add 'standard' stuff: Quotes, Comments, Strings, Labels, etc. before processing the LLSD
 	std::string delimiter;
-	addToken(LLKeywordToken::TT_LABEL, "@", getColorGroup("label"), "Label\nTarget for jump statement", delimiter );
+	addToken(LLKeywordToken::TT_LABEL, "@", getColorGroup("misc-flow-label"), "Label\nTarget for jump statement", delimiter );
 	addToken(LLKeywordToken::TT_ONE_SIDED_DELIMITER, "//", getColorGroup("misc-comments_1_sided"), "Comment (single-line)\nNon-functional commentary or disabled code", delimiter );
 	addToken(LLKeywordToken::TT_TWO_SIDED_DELIMITER, "/*", getColorGroup("misc-comments_2_sided"), "Comment (multi-line)\nNon-functional commentary or disabled code", "*/" );
 	addToken(LLKeywordToken::TT_DOUBLE_QUOTATION_MARKS, "\"", getColorGroup("misc-double_quotation_marks"), "String literal", "\"" );
@@ -344,7 +348,7 @@ void LLKeywords::processTokens()
 
 void LLKeywords::processTokensGroup(LLSD& Tokens, const std::string Group)
 {
-	LLColor3 Color = getColorGroup(Group);
+	LLColor4 Color;
 	LL_INFOS("Tokens") << "Group: '" << Group << "', using colour: '" << Color << "'" << LL_ENDL;
 
 	LLKeywordToken::TOKEN_TYPE token_type = LLKeywordToken::TT_UNKNOWN;
@@ -534,7 +538,7 @@ bool LLKeywords::WStringMapIndex::operator<(const LLKeywords::WStringMapIndex &o
 	return result;
 }
 
-LLColor3 LLKeywords::readColor( const std::string& s )
+LLColor4 LLKeywords::readColor( const std::string& s )
 {
 	F32 r, g, b;
 	r = g = b = 0.0f;
@@ -543,22 +547,22 @@ LLColor3 LLKeywords::readColor( const std::string& s )
 	{
 		llinfos << " poorly formed color in keyword file" << llendl;
 	}
-	return LLColor3( r, g, b );
+	return LLColor4( r, g, b, 1.f);
 }
 
-LLColor3 LLKeywords::readColor(LLSD& sd)
+LLColor4 LLKeywords::readColor(LLSD& sd)
 {
 	if (sd.isArray())
 	{
-		return LLColor3 (sd);
+		return LLColor4 (sd, 1.f);
 	}
 	else if (sd.isMap())
 	{
-		return LLColor3 ( sd.get("x").asReal(), sd.get("y").asReal(), sd.get("z").asReal() );
+		return LLColor4 ( sd.get("x").asReal(), sd.get("y").asReal(), sd.get("z").asReal(), 1.f );
 	}
 	else
 	{
-		return LLColor3::black;
+		return LLColor4::black;
 	}
 }
 
diff --git a/indra/llui/llkeywords.h b/indra/llui/llkeywords.h
index badbd2ae85..6889b95339 100755
--- a/indra/llui/llkeywords.h
+++ b/indra/llui/llkeywords.h
@@ -30,6 +30,7 @@
 
 #include "llstring.h"
 #include "v3color.h"
+#include "v4color.h"
 #include <map>
 #include <list>
 #include <deque>
@@ -69,7 +70,7 @@ public:
 		TT_TYPE								// WORD
 	};
 
-	LLKeywordToken( TOKEN_TYPE type, const LLColor3& color, const LLWString& token, const LLWString& tool_tip, const LLWString& delimiter  )
+	LLKeywordToken( TOKEN_TYPE type, const LLColor4& color, const LLWString& token, const LLWString& tool_tip, const LLWString& delimiter  )
 		:
 		mType( type ),
 		mToken( token ),
@@ -84,7 +85,7 @@ public:
 	BOOL				isHead(const llwchar* s) const;
 	BOOL				isTail(const llwchar* s) const;
 	const LLWString&	getToken() const		{ return mToken; }
-	const LLColor3&		getColor() const		{ return mColor; }
+	const LLColor4&		getColor() const		{ return mColor; }
 	TOKEN_TYPE			getType()  const		{ return mType; }
 	const LLWString&	getToolTip() const		{ return mToolTip; }
 	const LLWString&	getDelimiter() const	{ return mDelimiter; }
@@ -96,7 +97,7 @@ public:
 private:
 	TOKEN_TYPE	mType;
 	LLWString	mToken;
-	LLColor3	mColor;
+	LLColor4	mColor;
 	LLWString	mToolTip;
 	LLWString	mDelimiter;
 };
@@ -107,12 +108,11 @@ public:
 	LLKeywords();
 	~LLKeywords();
 
-	void		addColorGroup(const std::string key_in, const LLColor3 color);
-	LLColor3	getColorGroup(const std::string key_in);
+	void		addColorGroup(const std::string key_in, const LLColor4 color);
+	LLColor4	getColorGroup(const std::string key_in);
 	BOOL		loadFromFile();
 	BOOL		loadFromFile(const std::string& filename);
 	BOOL		isLoaded() const	{ return mLoaded; }
-	void		setFilenameColors(const std::string filename) { mFilenameColors = filename; }
 	void		setFilenameSyntax(const std::string filename) { mFilenameSyntax = filename; }
 
 	void		findSegments(std::vector<LLTextSegmentPtr> *seg_list, const LLWString& text, const LLColor4 &defaultColor, class LLTextEditor& editor );
@@ -124,7 +124,7 @@ public:
 	// Add the token as described
 	void addToken(LLKeywordToken::TOKEN_TYPE type,
 					const std::string& key,
-					const LLColor3& color,
+					const LLColor4& color,
 					const std::string& tool_tip = LLStringUtil::null,
 					const std::string& delimiter = LLStringUtil::null);
 
@@ -153,7 +153,7 @@ public:
 		bool mOwner;
 
 
-		LLColor3			mColor;
+		LLColor4			mColor;
 	};
 
 	typedef std::map<WStringMapIndex, LLKeywordToken*> word_token_map_t;
@@ -161,7 +161,7 @@ public:
 	keyword_iterator_t begin() const { return mWordTokenMap.begin(); }
 	keyword_iterator_t end() const { return mWordTokenMap.end(); }
 
-	typedef std::map<WStringMapIndex, LLColor3> group_color_map_t;
+	typedef std::map<WStringMapIndex, LLColor4> group_color_map_t;
 	typedef group_color_map_t::const_iterator color_iterator_t;
 	group_color_map_t	mColorGroupMap;
 
@@ -171,8 +171,8 @@ public:
 
 protected:
 	void		processTokensGroup(LLSD& Tokens, const std::string Group);
-	LLColor3	readColor(const std::string& s);
-	LLColor3	readColor(LLSD& sd);
+	LLColor4	readColor(const std::string& s);
+	LLColor4	readColor(LLSD& sd);
 	void		insertSegment(std::vector<LLTextSegmentPtr>& seg_list, LLTextSegmentPtr new_segment, S32 text_len, const LLColor4 &defaultColor, class LLTextEditor& editor);
 	void		insertSegments(const LLWString& wtext, std::vector<LLTextSegmentPtr>& seg_list, LLKeywordToken* token, S32 text_len, S32 seg_start, S32 seg_end, const LLColor4 &defaultColor, LLTextEditor& editor);
 	BOOL		loadIntoLLSD( const std::string& filename, LLSD& data );
@@ -195,7 +195,6 @@ protected:
 private:
 	BOOL		ready() { return mReady; };
 	BOOL		mReady;
-	std::string	mFilenameColors;
 	std::string	mFilenameSyntax;
 };
 
diff --git a/indra/llui/lltexteditor.cpp b/indra/llui/lltexteditor.cpp
index d3f97dcac8..83d89af4b0 100755
--- a/indra/llui/lltexteditor.cpp
+++ b/indra/llui/lltexteditor.cpp
@@ -2488,7 +2488,7 @@ static LLFastTimer::DeclareTimer FTM_SYNTAX_HIGHLIGHTING("Syntax Highlighting");
 void LLTextEditor::loadKeywords(const std::string& filename,
 								const std::vector<std::string>& funcs,
 								const std::vector<std::string>& tooltips,
-								const LLColor3& color)
+								const LLColor4& color)
 {
 	LLFastTimer ft(FTM_SYNTAX_HIGHLIGHTING);
 	if(mKeywords.loadFromFile())
diff --git a/indra/llui/lltexteditor.h b/indra/llui/lltexteditor.h
index a6ed39eef8..2a0a0d524f 100755
--- a/indra/llui/lltexteditor.h
+++ b/indra/llui/lltexteditor.h
@@ -190,7 +190,7 @@ public:
 	void			loadKeywords(const std::string& filename,
 								 const std::vector<std::string>& funcs,
 								 const std::vector<std::string>& tooltips,
-								 const LLColor3& func_color);
+								 const LLColor4& func_color);
 	LLKeywords::keyword_iterator_t keywordsBegin()	{ return mKeywords.begin(); }
 	LLKeywords::keyword_iterator_t keywordsEnd()	{ return mKeywords.end(); }
 
diff --git a/indra/newview/app_settings/keywords_lsl_colors.xml b/indra/newview/app_settings/keywords_lsl_colors.xml
deleted file mode 100644
index d150f0850f..0000000000
--- a/indra/newview/app_settings/keywords_lsl_colors.xml
+++ /dev/null
@@ -1,176 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?xml-model href="llsd.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
-<llsd>
-    <map>
-        <key>types</key>
-        <map>
-            <key>color</key>
-            <array>
-                <real>0.1</real>
-                <real>0.3</real>
-                <real>0.1</real>
-            </array>
-        </map>
-        
-        <key>constants</key>
-        <map>
-            <key>float</key>
-            <map>
-                <key>color</key>
-                <array>
-                    <real>0.3</real>
-                    <real>0.1</real>
-                    <real>0.5</real>
-                </array>
-            </map>
-            <key>integer</key>
-            <map>
-                <key>color</key>
-                <array>
-                    <real>0.1</real>
-                    <real>0.1</real>
-                    <real>0.5</real>
-                </array>
-            </map>
-            <key>key</key>
-            <map>
-                <key>color</key>
-                <array>
-                    <real>0.1</real>
-                    <real>0.3</real>
-                    <real>0.5</real>
-                </array>
-            </map>
-            <key>rotation</key>
-            <map>
-                <key>color</key>
-                <array>
-                    <real>0.4</real>
-                    <real>0.2</real>
-                    <real>0.4</real>
-                </array>
-            </map>
-            <key>string</key>
-            <map>
-                <key>color</key>
-                <array>
-                    <real>0.1</real>
-                    <real>0.3</real>
-                    <real>0.5</real>
-                </array>
-            </map>
-            <key>vector</key>
-            <map>
-                <key>color</key>
-                <array>
-                    <real>0.4</real>
-                    <real>0.2</real>
-                    <real>0.4</real>
-                </array>
-            </map>
-        </map>
- 
-        <key>misc</key>
-        <map>
-            <key>flow-control</key>
-            <map>
-                <key>color</key>
-                <array>
-                    <real>0.0</real>
-                    <real>0.0</real>
-                    <real>0.8</real>
-                </array>
-            </map>
-            
-            <key>comments_1_sided</key>
-            <map>
-                <key>color</key>
-                <array>
-                    <real>0.8</real>
-                    <real>0.3</real>
-                    <real>0.15</real>
-                </array>
-            </map>
-            
-            <key>comments_2_sided</key>
-            <map>
-                <key>color</key>
-                <array>
-                    <real>0.8</real>
-                    <real>0.3</real>
-                    <real>0.15</real>
-                </array>
-            </map>
-            
-            <key>flow-label</key>
-            <map>
-                <key>color</key>
-                <array>
-                    <real>0.0</real>
-                    <real>0.0</real>
-                    <real>0.8</real>
-                </array>
-            </map>
-            
-            <key>double_quotation_marks</key>
-            <map>
-                <key>color</key>
-                <array>
-                    <real>0.0</real>
-                    <real>0.2</real>
-                    <real>0.0</real>
-                </array>
-            </map>
-            
-            <key>sections</key>
-            <map>
-                <key>color</key>
-                <array>
-                    <real>0.5</real>
-                    <real>0.1</real>
-                    <real>0.3</real>
-                </array>
-            </map>
-        </map>
-
-        <key>events</key>
-        <map>
-            <key>color</key>
-            <array>
-                <real>0.0</real>
-                <real>0.3</real>
-                <real>0.5</real>
-            </array>
-        </map>
-        
-        <key>functions</key>
-        <map>
-            <key>color</key>
-            <array>
-                <real>0.5</real>
-                <real>0.0</real>
-                <real>0.15</real>
-            </array>
-        </map>
-        
-        <key>deprecated</key>
-        <map>
-            <key>color</key>
-            <array>
-                <real>0.9</real>
-                <real>0.4</real>
-                <real>0.55</real>
-            </array>
-        </map>
-        
-        <key>god_mode</key>
-        <map>
-            <key>color</key>
-            <array>
-                <real>0.7</real>
-                <real>0.2</real>
-                <real>0.35</real>
-            </array>
-        </map>
-    </map>
-</llsd>
diff --git a/indra/newview/skins/default/colors.xml b/indra/newview/skins/default/colors.xml
index a9176595c7..fe794c18c5 100755
--- a/indra/newview/skins/default/colors.xml
+++ b/indra/newview/skins/default/colors.xml
@@ -884,4 +884,57 @@
   <color
     name="blue"
     value="0 0 1 1"/>
+
+  <!-- syntax highlighting (LSL Scripts) -->
+  <color
+    name="SyntaxLslComment1Sided"
+    value=".8 .3 .15 1.0" />
+  <color
+    name="SyntaxLslComment2Sided"
+    value=".8 .3 .15 1.0" />
+  <color
+    name="SyntaxLslConstantFloat"
+    value=".3 .1 .5 1.0" />
+  <color
+    name="SyntaxLslConstantInteger"
+    value=".1 .1 .5 1.0" />
+  <color
+    name="SyntaxLslConstantKey"
+    value=".1 .3 .5 1.0" />
+  <color
+    name="SyntaxLslConstantRotation"
+    value=".2 .4 .2 1.0" />
+  <color
+    name="SyntaxLslConstantString"
+    value=".1 .3 .5 1.0" />
+  <color
+    name="SyntaxLslConstantVector"
+    value=".2 .4 .2 1.0" />
+  <color
+    name="SyntaxLslControlFlow"
+    value="0 0 .8 1.0" />
+  <color
+    name="SyntaxLslControlLabel"
+    value="0 0 .8 1.0" />
+  <color
+    name="SyntaxLslDataType"
+    value=".1 .3 .1 1.0" />
+  <color
+    name="SyntaxLslDeprecated"
+    value=".9 .4 .55 1.0" />
+  <color
+   name="SyntaxLslEvent"
+   value="0 .3 .5 1.0" />
+  <color
+   name="SyntaxLslFunction"
+   value=".3 0 .5 1.0" />
+  <color
+   name="SyntaxLslGodMode"
+   value="0.7 .2 .35 1.0" />
+  <color
+    name="SyntaxLslSection"
+    value=".5 .1 .3 1.0" />
+  <color
+    name="SyntaxLslStringLiteral"
+    value="0 .2 0 1.0" />
 </colors>
-- 
cgit v1.2.3


From 3f1a83af43ff04b94f421c8171dcfbf49630ad37 Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Fri, 28 Jun 2013 17:24:56 +0100
Subject: Removing app_setting/keywords_lsl_colors.xml from CMake build file.

---
 indra/newview/CMakeLists.txt | 1 -
 1 file changed, 1 deletion(-)

(limited to 'indra')

diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index 0739ab2b51..dfe169828f 100755
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -1515,7 +1515,6 @@ set(viewer_APPSETTINGS_FILES
     app_settings/high_graphics.xml
     app_settings/ignorable_dialogs.xml
     app_settings/keys.xml
-    app_settings/keywords_lsl_colors.xml
     app_settings/keywords_lsl_tokens.xml
     app_settings/logcontrol.xml
     app_settings/low_graphics.xml
-- 
cgit v1.2.3


From 02097397e06a6cf45c639823c7f633dffe3684e8 Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Fri, 28 Jun 2013 18:29:59 +0100
Subject: Changing the way I commented out functions for later removal. TC
 doesn't like how I did it before :-(

---
 indra/llui/llkeywords.cpp | 104 +++++++++++++++++++++++-----------------------
 1 file changed, 52 insertions(+), 52 deletions(-)

(limited to 'indra')

diff --git a/indra/llui/llkeywords.cpp b/indra/llui/llkeywords.cpp
index 521134f26c..315cf45f43 100755
--- a/indra/llui/llkeywords.cpp
+++ b/indra/llui/llkeywords.cpp
@@ -251,58 +251,58 @@ BOOL LLKeywords::loadIntoLLSD(const std::string& filename, LLSD& data)
 	return mLoaded;
 }
 
-/**
- * @brief Start processing the colour LLSD from its beginning.
- *
- * /
-std::string LLKeywords::processColors()
-{
-	return processColors(mColors, "");
-}
-
-/**
- * @brief	Recursively process the colour LLSD from an arbitrary level.
- * @desc	Process the supplied LLSD for colour data. The strPrefix is a string
- *			of hyphen separated keys from previous levels.
- * /
-std::string LLKeywords::processColors(LLSD &settings, const std::string strPrefix)
-{
-	if (settings.isMap() || (! settings.isMap() && strPrefix != "") )
-	{
-		LLSD llsd_map = settings;
-
-		LLSD::map_iterator my_iter = llsd_map.beginMap();
-		for ( ; my_iter != llsd_map.endMap(); ++my_iter)
-		{
-			std::string strGroup = strPrefix;
-			const LLSD::String& key = my_iter->first;
-			LLSD& value = my_iter->second;
-
-			if (key == "color")
-			{
-				if (value.isMap() || value.isArray())
-				{
-					addColorGroup(strGroup, readColor(value));
-				}
-				else
-				{
-					LL_WARNS("Invalid Color") << "Invalid Color Entry - first: '" << key << "' second: '" << value << "'" << LL_ENDL;
-				}
-			}
-			else if (value.isMap())
-			{
-				strGroup += (strGroup.length() == 0) ? my_iter->first : "-" + my_iter->first;
-				strGroup = processColors(value, strGroup);
-			}
-			else
-			{
-				LL_WARNS("Invalid Color") << "Invalid Color Entry - first: '" << key << "' second: '" << value << "'" << LL_ENDL;
-			}
-		}
-	}
-	return strPrefix;
-}
-*/
+///**
+// * @brief Start processing the colour LLSD from its beginning.
+// *
+// */
+//std::string LLKeywords::processColors()
+//{
+//	return processColors(mColors, "");
+//}
+
+///**
+// * @brief	Recursively process the colour LLSD from an arbitrary level.
+// * @desc	Process the supplied LLSD for colour data. The strPrefix is a string
+// *			of hyphen separated keys from previous levels.
+// */
+//std::string LLKeywords::processColors(LLSD &settings, const std::string strPrefix)
+//{
+//	if (settings.isMap() || (! settings.isMap() && strPrefix != "") )
+//	{
+//		LLSD llsd_map = settings;
+
+//		LLSD::map_iterator my_iter = llsd_map.beginMap();
+//		for ( ; my_iter != llsd_map.endMap(); ++my_iter)
+//		{
+//			std::string strGroup = strPrefix;
+//			const LLSD::String& key = my_iter->first;
+//			LLSD& value = my_iter->second;
+//
+//			if (key == "color")
+//			{
+//				if (value.isMap() || value.isArray())
+//				{
+//					addColorGroup(strGroup, readColor(value));
+//				}
+//				else
+//				{
+//					LL_WARNS("Invalid Color") << "Invalid Color Entry - first: '" << key << "' second: '" << value << "'" << LL_ENDL;
+//				}
+//			}
+//			else if (value.isMap())
+//			{
+//				strGroup += (strGroup.length() == 0) ? my_iter->first : "-" + my_iter->first;
+//				strGroup = processColors(value, strGroup);
+//			}
+//			else
+//			{
+//				LL_WARNS("Invalid Color") << "Invalid Color Entry - first: '" << key << "' second: '" << value << "'" << LL_ENDL;
+//			}
+//		}
+//	}
+//	return strPrefix;
+//}
+//*/
 
 void LLKeywords::processTokens()
 {
-- 
cgit v1.2.3


From 14ab94255642dd967e833904aaab6fda5723daa9 Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Tue, 8 Oct 2013 02:35:22 +0100
Subject: Renaming file to better reflect its purpose in future.

---
 indra/llui/llkeywords.cpp                          |     2 +-
 indra/newview/CMakeLists.txt                       |     2 +-
 .../newview/app_settings/keywords_lsl_default.xml  | 16865 +++++++++++++++++++
 indra/newview/app_settings/keywords_lsl_tokens.xml | 16865 -------------------
 4 files changed, 16867 insertions(+), 16867 deletions(-)
 create mode 100644 indra/newview/app_settings/keywords_lsl_default.xml
 delete mode 100644 indra/newview/app_settings/keywords_lsl_tokens.xml

(limited to 'indra')

diff --git a/indra/llui/llkeywords.cpp b/indra/llui/llkeywords.cpp
index 93e8c084e9..58d213e29c 100755
--- a/indra/llui/llkeywords.cpp
+++ b/indra/llui/llkeywords.cpp
@@ -71,7 +71,7 @@ inline BOOL LLKeywordToken::isTail(const llwchar* s) const
 
 LLKeywords::LLKeywords() : mLoaded(FALSE)
 {
-	setFilenameSyntax( gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS,"keywords_lsl_tokens.xml") );
+	setFilenameSyntax( gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS,"keywords_lsl_default.xml") );
 }
 
 LLKeywords::~LLKeywords()
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index b6618f2935..97243bc8b1 100755
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -1524,7 +1524,7 @@ set(viewer_APPSETTINGS_FILES
     app_settings/high_graphics.xml
     app_settings/ignorable_dialogs.xml
     app_settings/keys.xml
-    app_settings/keywords_lsl_tokens.xml
+    app_settings/keywords_lsl_default.xml
     app_settings/logcontrol.xml
     app_settings/low_graphics.xml
     app_settings/mid_graphics.xml
diff --git a/indra/newview/app_settings/keywords_lsl_default.xml b/indra/newview/app_settings/keywords_lsl_default.xml
new file mode 100644
index 0000000000..6806f80169
--- /dev/null
+++ b/indra/newview/app_settings/keywords_lsl_default.xml
@@ -0,0 +1,16865 @@
+<?xml version="1.0" encoding="utf-8"?><?xml-model href="llsd-lsl-syntax.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
+<llsd>
+   <map>
+      <key>controls</key>
+      <map>
+         <key>default</key>
+         <map>
+            <key>tooltip</key>
+            <string>All scripts must have a default state, which is the first state entered when the script starts.\nIf another state is defined before the default state, the compiler will report a syntax error.</string>
+         </map>
+         <key>do</key>
+         <map>
+            <key>tooltip</key>
+            <string>do / while loop\ndo {\n...\n} while (&lt;condition&gt;);</string>
+         </map>
+         <key>else</key>
+         <map>
+            <key>tooltip</key>
+            <string>if / else block\nif (&lt;condition&gt;) {\n...\n[} else [if (&lt;condition&gt;) {\n...]]\n}</string>
+         </map>
+         <key>for</key>
+         <map>
+            <key>tooltip</key>
+            <string>for loop\nfor (&lt;initialiser&gt;; &lt;condition&gt;; &lt;post-iteration-statement&gt;)\n{ ...\n}</string>
+         </map>
+         <key>if</key>
+         <map>
+            <key>tooltip</key>
+            <string>if / else block\nif (&lt;condition&gt;) {\n...\n[} else [if (&lt;condition&gt;) {\n...]]\n}</string>
+         </map>
+         <key>jump</key>
+         <map>
+            <key>tooltip</key>
+            <string>jump statement\njump &lt;label&gt;</string>
+         </map>
+         <key>return</key>
+         <map>
+            <key>tooltip</key>
+            <string>Leave current event or function.\nreturn [&lt;variable&gt;];\nOptionally pass back a variable's value, from a function.</string>
+         </map>
+         <key>state</key>
+         <map>
+            <key>tooltip</key>
+            <string>state &lt;target&gt;\nIf the target state is not the same as the current one, change to the target state.</string>
+         </map>
+         <key>while</key>
+         <map>
+            <key>tooltip</key>
+            <string>while loop\nwhile (&lt;condition&gt;) {\n,,,\n}</string>
+         </map>
+      </map>
+      <key>types</key>
+      <map>
+         <key>float</key>
+         <map>
+            <key>tooltip</key>
+            <string>32 bit floating point value.\nThe range is 1.175494351E-38 to 3.402823466E+38.</string>
+         </map>
+         <key>integer</key>
+         <map>
+            <key>tooltip</key>
+            <string>32 bit integer value.\n−2,147,483,648 and +2,147,483,647 (that is 0x80000000 to 0x7FFFFFFF in hex).</string>
+         </map>
+         <key>key</key>
+         <map>
+            <key>tooltip</key>
+            <string>A 128 bit unique identifier (UUID).\nThe key is represented as hexidecimal characters (A-F and 0-9), grouped into sections (8,4,4,4,12 characters) and separated by hyphens (for a total of 36 characters). e.g. "A822FF2B-FF02-461D-B45D-DCD10A2DE0C2".</string>
+         </map>
+         <key>list</key>
+         <map>
+            <key>tooltip</key>
+            <string>A collection of other data types.\nLists are signified by square brackets surrounding their elements; the elements inside are separated by commas. e.g. [0, 1, 2, 3, 4] or ["Yes", "No", "Perhaps"].</string>
+         </map>
+         <key>quaternion</key>
+         <map>
+            <key>tooltip</key>
+            <string>The quaternion type is a left over from way back when LSL was created. It was later renamed to &lt;rotation&gt; to make it more user friendly, but it appears someone forgot to remove it ;-)</string>
+         </map>
+         <key>rotation</key>
+         <map>
+            <key>tooltip</key>
+            <string>The rotation type is one of several ways to represent an orientation in 3D.\nIt is a mathematical object called a quaternion. You can think of a quaternion as four numbers (x, y, z, w), three of which represent the direction an object is facing and a fourth that represents the object's banking left or right around that direction.</string>
+         </map>
+         <key>string</key>
+         <map>
+            <key>tooltip</key>
+            <string>Text data.\nThe editor accepts UTF-8 encoded text.</string>
+         </map>
+         <key>vector</key>
+         <map>
+            <key>tooltip</key>
+            <string>A vector is a data type that contains a set of three float values.\nVectors are used to represent colours (RGB), positions, and directions/velocities.</string>
+         </map>
+      </map>
+      <key>constants</key>
+      <map>
+         <key>ACTIVE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x2</integer>
+            <key>tooltip</key>
+            <string>Objects in world that are running a script or currently physically moving.</string>
+         </map>
+         <key>AGENT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x1</integer>
+            <key>tooltip</key>
+            <string>Objects in world that are agents.</string>
+         </map>
+         <key>AGENT_ALWAYS_RUN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x1000</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>AGENT_ATTACHMENTS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x2</integer>
+            <key>tooltip</key>
+            <string>The agent has attachments.</string>
+         </map>
+         <key>AGENT_AUTOPILOT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x2000</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>AGENT_AWAY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x40</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>AGENT_BUSY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x800</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>AGENT_BY_LEGACY_NAME</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>AGENT_BY_USERNAME</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x10</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>AGENT_CROUCHING</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x400</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>AGENT_FLYING</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x1</integer>
+            <key>tooltip</key>
+            <string>The agent is flying.</string>
+         </map>
+         <key>AGENT_IN_AIR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x100</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>AGENT_LIST_PARCEL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>Agents on the same parcel where the script is running.</string>
+         </map>
+         <key>AGENT_LIST_PARCEL_OWNER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>Agents on any parcel in the region where the parcel owner is the same as the owner of the parcel under the scripted object.</string>
+         </map>
+         <key>AGENT_LIST_REGION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string>All agents in the region.</string>
+         </map>
+         <key>AGENT_MOUSELOOK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x8</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>AGENT_ON_OBJECT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x20</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>AGENT_SCRIPTED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x4</integer>
+            <key>tooltip</key>
+            <string>The agent has scripted attachments.</string>
+         </map>
+         <key>AGENT_SITTING</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x10</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>AGENT_TYPING</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x200</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>AGENT_WALKING</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x80</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>ALL_SIDES</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>ANIM_ON</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x1</integer>
+            <key>tooltip</key>
+            <string>Texture animation is on.</string>
+         </map>
+         <key>ATTACH_AVATAR_CENTER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>40</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's geometric centre.</string>
+         </map>
+         <key>ATTACH_BACK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>9</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's back.</string>
+         </map>
+         <key>ATTACH_BELLY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>28</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's belly.</string>
+         </map>
+         <key>ATTACH_CHEST</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's chest.</string>
+         </map>
+         <key>ATTACH_CHIN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>12</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's chin.</string>
+         </map>
+         <key>ATTACH_HEAD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's head.</string>
+         </map>
+         <key>ATTACH_HUD_BOTTOM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>37</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>ATTACH_HUD_BOTTOM_LEFT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>36</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>ATTACH_HUD_BOTTOM_RIGHT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>38</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>ATTACH_HUD_CENTER_1</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>35</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>ATTACH_HUD_CENTER_2</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>31</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>ATTACH_HUD_TOP_CENTER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>33</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>ATTACH_HUD_TOP_LEFT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>34</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>ATTACH_HUD_TOP_RIGHT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>32</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>ATTACH_LEAR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>13</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's left ear.</string>
+         </map>
+         <key>ATTACH_LEFT_PEC</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>29</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's left pectoral.</string>
+         </map>
+         <key>ATTACH_LEYE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>15</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's left eye.</string>
+         </map>
+         <key>ATTACH_LFOOT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>7</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's left foot.</string>
+         </map>
+         <key>ATTACH_LHAND</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's left hand.</string>
+         </map>
+         <key>ATTACH_LHIP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>25</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's left hip.</string>
+         </map>
+         <key>ATTACH_LLARM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>21</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's left lower arm.</string>
+         </map>
+         <key>ATTACH_LLLEG</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>27</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's lower left leg.</string>
+         </map>
+         <key>ATTACH_LPEC</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>30</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's right pectoral. (Deprecated, use ATTACH_RIGHT_PEC)</string>
+         </map>
+         <key>ATTACH_LSHOULDER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's left shoulder.</string>
+         </map>
+         <key>ATTACH_LUARM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>20</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's left upper arm.</string>
+         </map>
+         <key>ATTACH_LULEG</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>27</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's lower upper leg.</string>
+         </map>
+         <key>ATTACH_MOUTH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>11</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's mouth.</string>
+         </map>
+         <key>ATTACH_NECK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>39</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's neck.</string>
+         </map>
+         <key>ATTACH_NOSE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>17</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's nose.</string>
+         </map>
+         <key>ATTACH_PELVIS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>10</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's pelvis.</string>
+         </map>
+         <key>ATTACH_REAR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>14</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's right ear.</string>
+         </map>
+         <key>ATTACH_REYE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>16</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's right eye.</string>
+         </map>
+         <key>ATTACH_RFOOT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>8</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's right foot.</string>
+         </map>
+         <key>ATTACH_RHAND</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's right hand.</string>
+         </map>
+         <key>ATTACH_RHIP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>22</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's right hip.</string>
+         </map>
+         <key>ATTACH_RIGHT_PEC</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>30</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's right pectoral.</string>
+         </map>
+         <key>ATTACH_RLARM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>19</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's right lower arm.</string>
+         </map>
+         <key>ATTACH_RLLEG</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>24</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's right lower leg.</string>
+         </map>
+         <key>ATTACH_RPEC</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>29</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's left pectoral. (deprecated, use ATTACH_LEFT_PEC)</string>
+         </map>
+         <key>ATTACH_RSHOULDER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's right shoulder.</string>
+         </map>
+         <key>ATTACH_RUARM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>18</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's right upper arm.</string>
+         </map>
+         <key>ATTACH_RULEG</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>23</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's right upper leg.</string>
+         </map>
+         <key>AVOID_CHARACTERS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>AVOID_DYNAMIC_OBSTACLES</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CAMERA_ACTIVE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>12</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CAMERA_BEHINDNESS_ANGLE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>8</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CAMERA_BEHINDNESS_LAG</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>9</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CAMERA_DISTANCE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>7</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CAMERA_FOCUS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>17</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CAMERA_FOCUS_LAG</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CAMERA_FOCUS_LOCKED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>22</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CAMERA_FOCUS_OFFSET</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CAMERA_FOCUS_THRESHOLD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>11</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CAMERA_PITCH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CAMERA_POSITION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>13</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CAMERA_POSITION_LAG</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CAMERA_POSITION_LOCKED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>22</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CAMERA_POSITION_THRESHOLD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>10</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CHANGED_ALLOWED_DROP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x40</integer>
+            <key>tooltip</key>
+            <string>The object inventory has changed because an item was added through the llAllowInventoryDrop interface.</string>
+         </map>
+         <key>CHANGED_COLOR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x2</integer>
+            <key>tooltip</key>
+            <string>The object colour has changed.</string>
+         </map>
+         <key>CHANGED_INVENTORY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x1</integer>
+            <key>tooltip</key>
+            <string>The object inventory has changed.</string>
+         </map>
+         <key>CHANGED_LINK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x20</integer>
+            <key>tooltip</key>
+            <string>The object has linked or its links were broken.</string>
+         </map>
+         <key>CHANGED_MEDIA</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2048</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CHANGED_OWNER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x80</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CHANGED_REGION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x100</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CHANGED_REGION_START</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x400</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CHANGED_SCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x8</integer>
+            <key>tooltip</key>
+            <string>The object scale (size) has changed.</string>
+         </map>
+         <key>CHANGED_SHAPE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x4</integer>
+            <key>tooltip</key>
+            <string>The object base shape has changed, e.g., a box to a cylinder.</string>
+         </map>
+         <key>CHANGED_TELEPORT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x200</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CHANGED_TEXTURE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x10</integer>
+            <key>tooltip</key>
+            <string>The texture offset, scale rotation, or simply the object texture has changed.</string>
+         </map>
+         <key>CHARACTER_ACCOUNT_FOR_SKIPPED_FRAMES</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>14</integer>
+            <key>tooltip</key>
+            <string>If set to false, character will not attempt to catch up on lost time when pathfinding performance is low, potentially providing more reliable movement (albeit while potentially appearing to be more stuttery). Default is true to match pre-existing behavior.</string>
+         </map>
+         <key>CHARACTER_AVOIDANCE_MODE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string>Allows you to specify that a character should not try to avoid other characters, should not try to avoid dynamic obstacles (relatively fast moving objects and avatars), or both.</string>
+         </map>
+         <key>CHARACTER_CMD_JUMP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x01</integer>
+            <key>tooltip</key>
+            <string>Makes the character jump. Requires an additional parameter, the height to jump, between 0.1m and 2.0m. This must be provided as the first element of the llExecCharacterCmd option list.</string>
+         </map>
+         <key>CHARACTER_CMD_SMOOTH_STOP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CHARACTER_CMD_STOP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x00</integer>
+            <key>tooltip</key>
+            <string>Stops any current pathfinding operation.</string>
+         </map>
+         <key>CHARACTER_DESIRED_SPEED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>Speed of pursuit in meters per second.</string>
+         </map>
+         <key>CHARACTER_DESIRED_TURN_SPEED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>12</integer>
+            <key>tooltip</key>
+            <string>The character's maximum speed while turning about the Z axis. - Note that this is only loosely enforced.</string>
+         </map>
+         <key>CHARACTER_LENGTH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string>Set collision capsule length - cannot be less than two times the radius.</string>
+         </map>
+         <key>CHARACTER_MAX_ACCEL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>8</integer>
+            <key>tooltip</key>
+            <string>The character's maximum acceleration rate.</string>
+         </map>
+         <key>CHARACTER_MAX_DECEL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>9</integer>
+            <key>tooltip</key>
+            <string>The character's maximum deceleration rate.</string>
+         </map>
+         <key>CHARACTER_MAX_SPEED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>13</integer>
+            <key>tooltip</key>
+            <string>The character's maximum speed.</string>
+         </map>
+         <key>CHARACTER_MAX_TURN_RADIUS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>10</integer>
+            <key>tooltip</key>
+            <string>The character's turn radius when travelling at CHARACTER_MAX_TURN_SPEED.</string>
+         </map>
+         <key>CHARACTER_ORIENTATION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string>Valid options are: VERTICAL, HORIZONTAL.</string>
+         </map>
+         <key>CHARACTER_RADIUS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>Set collision capsule radius.</string>
+         </map>
+         <key>CHARACTER_TYPE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string>Specifies which walk-ability coefficient will be used by this character.</string>
+         </map>
+         <key>CHARACTER_TYPE_A</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CHARACTER_TYPE_B</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CHARACTER_TYPE_C</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CHARACTER_TYPE_D</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CHARACTER_TYPE_NONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CLICK_ACTION_BUY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>When the prim is clicked, the buy dialog is opened.</string>
+         </map>
+         <key>CLICK_ACTION_NONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string>Performs the default action: when the prim is clicked, touch events are triggered".</string>
+         </map>
+         <key>CLICK_ACTION_OPEN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string>When the prim is clicked, the object inventory dialog is opened.</string>
+         </map>
+         <key>CLICK_ACTION_OPEN_MEDIA</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string>When the prim is touched, the web media dialog is opened".</string>
+         </map>
+         <key>CLICK_ACTION_PAY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string>When the prim is clicked, the pay dialog is opened.</string>
+         </map>
+         <key>CLICK_ACTION_PLAY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string>When the prim is clicked, html-on-a-prim is enabled?</string>
+         </map>
+         <key>CLICK_ACTION_SIT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>When the prim is clicked, the avatar sits upon it.</string>
+         </map>
+         <key>CLICK_ACTION_TOUCH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string>When the prim is clicked, touch events are triggered".</string>
+         </map>
+         <key>CONTENT_TYPE_ATOM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string>"application/atom+xml"</string>
+         </map>
+         <key>CONTENT_TYPE_FORM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>7</integer>
+            <key>tooltip</key>
+            <string>"application/x-www-form-urlencoded"</string>
+         </map>
+         <key>CONTENT_TYPE_HTML</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>"text/html", only valid for embedded browsers on content owned by the person viewing. Falls back to "text/plain" otherwise.</string>
+         </map>
+         <key>CONTENT_TYPE_JSON</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string>"application/json"</string>
+         </map>
+         <key>CONTENT_TYPE_LLSD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string>"application/llsd+xml"</string>
+         </map>
+         <key>CONTENT_TYPE_RSS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>8</integer>
+            <key>tooltip</key>
+            <string>"application/rss+xml"</string>
+         </map>
+         <key>CONTENT_TYPE_TEXT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string>"text/plain"</string>
+         </map>
+         <key>CONTENT_TYPE_XHTML</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string>"application/xhtml+xml"</string>
+         </map>
+         <key>CONTENT_TYPE_XML</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>"application/xml"</string>
+         </map>
+         <key>CONTROL_BACK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x2</integer>
+            <key>tooltip</key>
+            <string>Test for the avatar move back control.</string>
+         </map>
+         <key>CONTROL_DOWN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x20</integer>
+            <key>tooltip</key>
+            <string>Test for the avatar move down control.</string>
+         </map>
+         <key>CONTROL_FWD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x1</integer>
+            <key>tooltip</key>
+            <string>Test for the avatar move forward control.</string>
+         </map>
+         <key>CONTROL_LBUTTON</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x10000000</integer>
+            <key>tooltip</key>
+            <string>Test for the avatar left button control.</string>
+         </map>
+         <key>CONTROL_LEFT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x4</integer>
+            <key>tooltip</key>
+            <string>Test for the avatar move left control.</string>
+         </map>
+         <key>CONTROL_ML_LBUTTON</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x40000000</integer>
+            <key>tooltip</key>
+            <string>Test for the avatar left button control while in mouse look.</string>
+         </map>
+         <key>CONTROL_RIGHT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x8</integer>
+            <key>tooltip</key>
+            <string>Test for the avatar move right control.</string>
+         </map>
+         <key>CONTROL_ROT_LEFT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x100</integer>
+            <key>tooltip</key>
+            <string>Test for the avatar rotate left control.</string>
+         </map>
+         <key>CONTROL_ROT_RIGHT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x200</integer>
+            <key>tooltip</key>
+            <string>Test for the avatar rotate right control.</string>
+         </map>
+         <key>CONTROL_UP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x10</integer>
+            <key>tooltip</key>
+            <string>Test for the avatar move up control.</string>
+         </map>
+         <key>DATA_BORN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string>The date the agent was born, returned in ISO 8601 format of YYYY-MM-DD.</string>
+         </map>
+         <key>DATA_NAME</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>The name of the agent.</string>
+         </map>
+         <key>DATA_ONLINE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>TRUE for online, FALSE for offline.</string>
+         </map>
+         <key>DATA_PAYINFO</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>8</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>DATA_RATING</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string>Returns the agent ratings as a comma separated string of six integers. They are:
+			1) Positive rated behaviour
+			2) Negative rated behaviour
+			3) Positive rated appearance
+			4) Negative rated appearance
+			5) Positive rated building
+			6) Negative rated building</string>
+         </map>
+         <key>DATA_SIM_POS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>DATA_SIM_RATING</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>7</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>DATA_SIM_STATUS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>DEBUG_CHANNEL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2147483647</integer>
+            <key>tooltip</key>
+            <string>DEBUG_CHANNEL is an integer constant that, when passed to llSay, llWhisper, or llShout as a channel parameter, will print text to the Script Warning/Error Window.</string>
+         </map>
+         <key>DEG_TO_RAD</key>
+         <map>
+            <key>type</key>
+            <string>float</string>
+            <key>value</key>
+            <real>0.01745329</real>
+            <key>tooltip</key>
+            <string>0.01745329 - Number of radians per degree.
+			You can use this to convert degrees to radians by multiplying the degrees by this number.</string>
+         </map>
+         <key>DENSITY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>Used with llSetPhysicsMaterial to enable the density value. Must be between 1.0 and 22587.0 (in Kg/m^3 -- see if you can figure out what 22587 represents)</string>
+         </map>
+         <key>EOF</key>
+         <map>
+            <key>type</key>
+            <string>string</string>
+            <key>value</key>
+            <string>\n\n\n</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>ERR_GENERIC</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>ERR_MALFORMED_PARAMS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-3</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>ERR_PARCEL_PERMISSIONS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>ERR_RUNTIME_PERMISSIONS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-4</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>ERR_THROTTLED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-5</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>ESTATE_ACCESS_ALLOWED_AGENT_ADD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string>Add the agent to this estate's Allowed Residents list.</string>
+         </map>
+         <key>ESTATE_ACCESS_ALLOWED_AGENT_REMOVE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>8</integer>
+            <key>tooltip</key>
+            <string>Remove the agent from this estate's Allowed Residents list.</string>
+         </map>
+         <key>ESTATE_ACCESS_ALLOWED_GROUP_ADD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>16</integer>
+            <key>tooltip</key>
+            <string>Add the group to this estate's Allowed groups list.</string>
+         </map>
+         <key>ESTATE_ACCESS_ALLOWED_GROUP_REMOVE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>32</integer>
+            <key>tooltip</key>
+            <string>Remove the group from this estate's Allowed groups list.</string>
+         </map>
+         <key>ESTATE_ACCESS_BANNED_AGENT_ADD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>64</integer>
+            <key>tooltip</key>
+            <string>Add the agent to this estate's Banned residents list.</string>
+         </map>
+         <key>ESTATE_ACCESS_BANNED_AGENT_REMOVE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>128</integer>
+            <key>tooltip</key>
+            <string>Remove the agent from this estate's Banned residents list.</string>
+         </map>
+         <key>FALSE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string>An integer constant for boolean comparisons. Has the value '0'.</string>
+         </map>
+         <key>FORCE_DIRECT_PATH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>Makes character navigate in a straight line toward position. May be set to TRUE or FALSE.</string>
+         </map>
+         <key>FRICTION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>Used with llSetPhysicsMaterial to enable the friction value. Must be between 0.0 and 255.0</string>
+         </map>
+         <key>GRAVITY_MULTIPLIER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>8</integer>
+            <key>tooltip</key>
+            <string>Used with llSetPhysicsMaterial to enable the gravity multiplier value. Must be between -1.0 and +28.0</string>
+         </map>
+         <key>HORIZONTAL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>HTTP_BODY_MAXLENGTH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>HTTP_BODY_TRUNCATED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>HTTP_CUSTOM_HEADER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string>Add an extra custom HTTP header to the request. The first string is the name of the parameter to change, e.g. "Pragma", and the second string is the value, e.g. "no-cache". Up to 8 custom headers may be configured per request. Note that certain headers, such as the default headers, are blocked for security reasons.</string>
+         </map>
+         <key>HTTP_METHOD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>HTTP_MIMETYPE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>HTTP_PRAGMA_NO_CACHE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string>Allows enabling/disbling of the "Pragma: no-cache" header.\nUsage: [HTTP_PRAGMA_NO_CACHE, integer SendHeader]. When SendHeader is TRUE, the "Pragma: no-cache" header is sent by the script. This matches the default behavior. When SendHeader is FALSE, no "Pragma" header is sent by the script.</string>
+         </map>
+         <key>HTTP_VERBOSE_THROTTLE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>HTTP_VERIFY_CERT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>INVENTORY_ALL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>INVENTORY_ANIMATION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>20</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>INVENTORY_BODYPART</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>13</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>INVENTORY_CLOTHING</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>INVENTORY_GESTURE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>21</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>INVENTORY_LANDMARK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>INVENTORY_NONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>INVENTORY_NOTECARD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>7</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>INVENTORY_OBJECT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>INVENTORY_SCRIPT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>10</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>INVENTORY_SOUND</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>INVENTORY_TEXTURE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>JSON_ARRAY</key>
+         <map>
+            <key>type</key>
+            <string>string</string>
+            <key>value</key>
+            <string>U+FDD2</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>JSON_FALSE</key>
+         <map>
+            <key>type</key>
+            <string>string</string>
+            <key>value</key>
+            <string>U+FDD7</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>JSON_INVALID</key>
+         <map>
+            <key>type</key>
+            <string>string</string>
+            <key>value</key>
+            <string>U+FDD0</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>JSON_NULL</key>
+         <map>
+            <key>type</key>
+            <string>string</string>
+            <key>value</key>
+            <string>U+FDD5</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>JSON_NUMBER</key>
+         <map>
+            <key>type</key>
+            <string>string</string>
+            <key>value</key>
+            <string>U+FDD3</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>JSON_OBJECT</key>
+         <map>
+            <key>type</key>
+            <string>string</string>
+            <key>value</key>
+            <string>U+FDD1</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>JSON_STRING</key>
+         <map>
+            <key>type</key>
+            <string>string</string>
+            <key>value</key>
+            <string>U+FDD4</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>JSON_TRUE</key>
+         <map>
+            <key>type</key>
+            <string>string</string>
+            <key>value</key>
+            <string>U+FDD6</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>KFM_CMD_PAUSE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>For use with KFM_COMMAND.</string>
+         </map>
+         <key>KFM_CMD_PLAY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string>For use with KFM_COMMAND.</string>
+         </map>
+         <key>KFM_CMD_STOP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>For use with KFM_COMMAND.</string>
+         </map>
+         <key>KFM_COMMAND</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>KFM_DATA</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>KFM_FORWARD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string>For use with KFM_MODE.</string>
+         </map>
+         <key>KFM_LOOP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>For use with KFM_MODE.</string>
+         </map>
+         <key>KFM_MODE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>KFM_PING_PONG</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>For use with KFM_MODE.</string>
+         </map>
+         <key>KFM_REVERSE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>For use with KFM_MODE.</string>
+         </map>
+         <key>KFM_ROTATION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>For use with KFM_DATA.</string>
+         </map>
+         <key>KFM_TRANSLATION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>For use with KFM_DATA.</string>
+         </map>
+         <key>LAND_LARGE_BRUSH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string>Use a large brush size.</string>
+         </map>
+         <key>LAND_LEVEL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string>Action to level the land.</string>
+         </map>
+         <key>LAND_LOWER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>Action to lower the land.</string>
+         </map>
+         <key>LAND_MEDIUM_BRUSH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>Use a medium brush size.</string>
+         </map>
+         <key>LAND_NOISE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>LAND_RAISE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>Action to raise the land.</string>
+         </map>
+         <key>LAND_REVERT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>LAND_SMALL_BRUSH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>Use a small brush size.</string>
+         </map>
+         <key>LAND_SMOOTH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>LINK_ALL_CHILDREN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-3</integer>
+            <key>tooltip</key>
+            <string>This targets every object except the root in the linked set.</string>
+         </map>
+         <key>LINK_ALL_OTHERS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-2</integer>
+            <key>tooltip</key>
+            <string>This targets every object in the linked set except the object with the script.</string>
+         </map>
+         <key>LINK_ROOT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string>This targets the root of the linked set.</string>
+         </map>
+         <key>LINK_SET</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-1</integer>
+            <key>tooltip</key>
+            <string>This targets every object in the linked set.</string>
+         </map>
+         <key>LINK_THIS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-4</integer>
+            <key>tooltip</key>
+            <string>The link number of the prim containing the script.</string>
+         </map>
+         <key>LIST_STAT_GEOMETRIC_MEAN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>9</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>LIST_STAT_MAX</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>LIST_STAT_MEAN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>LIST_STAT_MEDIAN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>LIST_STAT_MIN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>LIST_STAT_NUM_COUNT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>8</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>LIST_STAT_RANGE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>LIST_STAT_STD_DEV</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>LIST_STAT_SUM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>LIST_STAT_SUM_SQUARES</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>7</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>LOOP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x2</integer>
+            <key>tooltip</key>
+            <string>Loop the texture animation.</string>
+         </map>
+         <key>MASK_BASE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>MASK_EVERYONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>MASK_GROUP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>MASK_NEXT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>MASK_OWNER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>NULL_KEY</key>
+         <map>
+            <key>type</key>
+            <string>key</string>
+            <key>value</key>
+            <uuid>00000000-0000-0000-0000-000000000000</uuid>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>OBJECT_ATTACHED_POINT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>19</integer>
+            <key>tooltip</key>
+            <string>Gets the attachment point to which the object is attached.\nReturns 0 if the object is not an attachment (or is an avatar, etc).</string>
+         </map>
+         <key>OBJECT_CHARACTER_TIME</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>17</integer>
+            <key>tooltip</key>
+            <string>Units in seconds</string>
+         </map>
+         <key>OBJECT_CREATOR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>8</integer>
+            <key>tooltip</key>
+            <string>Gets the object's creator key. If id is an avatar, a NULL_KEY is returned.</string>
+         </map>
+         <key>OBJECT_DESC</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>Gets the object's description. If id is an avatar, an empty string is returned.</string>
+         </map>
+         <key>OBJECT_GROUP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>7</integer>
+            <key>tooltip</key>
+            <string>Gets the prims's group key. If id is an avatar, a NULL_KEY is returned.</string>
+         </map>
+         <key>OBJECT_NAME</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>Gets the object's name.</string>
+         </map>
+         <key>OBJECT_OWNER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string>Gets an object's owner's key. If id is group owned, a NULL_KEY is returned.</string>
+         </map>
+         <key>OBJECT_PATHFINDING_TYPE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>20</integer>
+            <key>tooltip</key>
+            <string>Returns the pathfinding setting of any object in the region. It returns an integer matching one of the OPT_* constants.</string>
+         </map>
+         <key>OBJECT_PHANTOM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>22</integer>
+            <key>tooltip</key>
+            <string>Returns boolean, detailing if phantom is enabled or disabled on the object.\nIf id is an avatar or attachment, 0 is returned.</string>
+         </map>
+         <key>OBJECT_PHYSICS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>21</integer>
+            <key>tooltip</key>
+            <string>Returns boolean, detailing if physics is enabled or disabled on the object.\nIf id is an avatar or attachment, 0 is returned.</string>
+         </map>
+         <key>OBJECT_PHYSICS_COST</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>16</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>OBJECT_POS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string>Gets the object's position in region coordinates.</string>
+         </map>
+         <key>OBJECT_PRIM_EQUIVALENCE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>13</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>OBJECT_ROOT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>18</integer>
+            <key>tooltip</key>
+            <string>Gets the id of the root prim of the object requested.\nIf id is an avatar, return the id of the root prim of the linkset the avatar is sitting on (or the avatar's own id if the avatar is not sitting on an object within the region).</string>
+         </map>
+         <key>OBJECT_ROT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string>Gets the object's rotation.</string>
+         </map>
+         <key>OBJECT_RUNNING_SCRIPT_COUNT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>9</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>OBJECT_SCRIPT_MEMORY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>11</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>OBJECT_SCRIPT_TIME</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>12</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>OBJECT_SERVER_COST</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>14</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>OBJECT_STREAMING_COST</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>15</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>OBJECT_TEMP_ON_REZ</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>23</integer>
+            <key>tooltip</key>
+            <string>Returns boolean, detailing if temporary is enabled or disabled on the object.</string>
+         </map>
+         <key>OBJECT_TOTAL_SCRIPT_COUNT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>10</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>OBJECT_UNKNOWN_DETAIL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>OBJECT_VELOCITY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string>Gets the object's velocity.</string>
+         </map>
+         <key>OPT_AVATAR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>Returned for avatars.</string>
+         </map>
+         <key>OPT_CHARACTER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>Returned for pathfinding characters.</string>
+         </map>
+         <key>OPT_EXCLUSION_VOLUME</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string>Returned for exclusion volumes.</string>
+         </map>
+         <key>OPT_LEGACY_LINKSET</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string>Returned for movable obstacles, movable phantoms, physical, and volumedetect objects.</string>
+         </map>
+         <key>OPT_MATERIAL_VOLUME</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string>Returned for material volumes.</string>
+         </map>
+         <key>OPT_OTHER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-1</integer>
+            <key>tooltip</key>
+            <string>Returned for attachments, Linden trees, and grass.</string>
+         </map>
+         <key>OPT_STATIC_OBSTACLE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string>Returned for static obstacles.</string>
+         </map>
+         <key>OPT_WALKABLE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string>Returned for walkable objects.</string>
+         </map>
+         <key>PARCEL_COUNT_GROUP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_COUNT_OTHER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_COUNT_OWNER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_COUNT_SELECTED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_COUNT_TEMP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_COUNT_TOTAL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_DETAILS_AREA</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string>The parcel's area, in square meters. (5 chars.).</string>
+         </map>
+         <key>PARCEL_DETAILS_DESC</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>The description of the parcel. (127 chars).</string>
+         </map>
+         <key>PARCEL_DETAILS_GROUP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string>The parcel group's key. (36 chars.).</string>
+         </map>
+         <key>PARCEL_DETAILS_ID</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string>The parcel's key. (36 chars.).</string>
+         </map>
+         <key>PARCEL_DETAILS_NAME</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string>The name of the parcel. (63 chars.).</string>
+         </map>
+         <key>PARCEL_DETAILS_OWNER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>The parcel owner's key. (36 chars.).</string>
+         </map>
+         <key>PARCEL_DETAILS_SEE_AVATARS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string>The parcel's avatar visibility setting. (1 char.).</string>
+         </map>
+         <key>PARCEL_FLAG_ALLOW_ALL_OBJECT_ENTRY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x08000000</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_FLAG_ALLOW_CREATE_GROUP_OBJECTS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x4000000</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_FLAG_ALLOW_CREATE_OBJECTS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x40</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_FLAG_ALLOW_DAMAGE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x20</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_FLAG_ALLOW_FLY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_FLAG_ALLOW_GROUP_OBJECT_ENTRY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x10000000</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_FLAG_ALLOW_GROUP_SCRIPTS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x2000000</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_FLAG_ALLOW_LANDMARK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x8</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_FLAG_ALLOW_SCRIPTS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_FLAG_ALLOW_TERRAFORM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x10</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_FLAG_LOCAL_SOUND_ONLY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x8000</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_FLAG_RESTRICT_PUSHOBJECT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x200000</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_FLAG_USE_ACCESS_GROUP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x100</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_FLAG_USE_ACCESS_LIST</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x200</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_FLAG_USE_BAN_LIST</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x400</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_FLAG_USE_LAND_PASS_LIST</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x800</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_MEDIA_COMMAND_AGENT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>7</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_MEDIA_COMMAND_AUTO_ALIGN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>9</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_MEDIA_COMMAND_DESC</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>12</integer>
+            <key>tooltip</key>
+            <string>Use this to get or set the parcel media description.</string>
+         </map>
+         <key>PARCEL_MEDIA_COMMAND_LOOP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_MEDIA_COMMAND_LOOP_SET</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>13</integer>
+            <key>tooltip</key>
+            <string>Used to get or set the parcel's media looping variable.</string>
+         </map>
+         <key>PARCEL_MEDIA_COMMAND_PAUSE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_MEDIA_COMMAND_PLAY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_MEDIA_COMMAND_SIZE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>11</integer>
+            <key>tooltip</key>
+            <string>Use this to get or set the parcel media pixel resolution.</string>
+         </map>
+         <key>PARCEL_MEDIA_COMMAND_STOP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_MEDIA_COMMAND_TEXTURE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_MEDIA_COMMAND_TIME</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_MEDIA_COMMAND_TYPE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>10</integer>
+            <key>tooltip</key>
+            <string>Use this to get or set the parcel media MIME type (e.g. "text/html").</string>
+         </map>
+         <key>PARCEL_MEDIA_COMMAND_UNLOAD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>8</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_MEDIA_COMMAND_URL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PASSIVE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x4</integer>
+            <key>tooltip</key>
+            <string>Static in-world objects.</string>
+         </map>
+         <key>PATROL_PAUSE_AT_WAYPOINTS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PAY_DEFAULT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PAY_HIDE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PAYMENT_INFO_ON_FILE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PAYMENT_INFO_USED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PERM_ALL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x7FFFFFFF</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PERM_COPY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x8000</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PERM_MODIFY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x4000</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PERM_MOVE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x80000</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PERM_TRANSFER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x2000</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PERMISSION_ATTACH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x20</integer>
+            <key>tooltip</key>
+            <string>If this permission is enabled, the object can successfully call llAttachToAvatar to attach to the given avatar.</string>
+         </map>
+         <key>PERMISSION_CHANGE_JOINTS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x100</integer>
+            <key>tooltip</key>
+            <string>(not yet implemented)</string>
+         </map>
+         <key>PERMISSION_CHANGE_LINKS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x80</integer>
+            <key>tooltip</key>
+            <string>If this permission is enabled, the object can successfully call llCreateLink, llBreakLink, and llBreakAllLinks to change links to other objects.</string>
+         </map>
+         <key>PERMISSION_CHANGE_PERMISSIONS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x200</integer>
+            <key>tooltip</key>
+            <string>(not yet implemented)</string>
+         </map>
+         <key>PERMISSION_CONTROL_CAMERA</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x800</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PERMISSION_DEBIT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x2</integer>
+            <key>tooltip</key>
+            <string>If this permission is enabled, the object can successfully call llGiveMoney or llTransferLindenDollars to debit the owners account.</string>
+         </map>
+         <key>PERMISSION_OVERRIDE_ANIMATIONS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x8000</integer>
+            <key>tooltip</key>
+            <string>Permission to override default animations.</string>
+         </map>
+         <key>PERMISSION_RELEASE_OWNERSHIP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x40</integer>
+            <key>tooltip</key>
+            <string>(not yet implemented)</string>
+         </map>
+         <key>PERMISSION_REMAP_CONTROLS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x8</integer>
+            <key>tooltip</key>
+            <string>(not yet implemented)</string>
+         </map>
+         <key>PERMISSION_TAKE_CONTROLS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x4</integer>
+            <key>tooltip</key>
+            <string>If this permission enabled, the object can successfully call the llTakeControls libray call.</string>
+         </map>
+         <key>PERMISSION_TELEPORT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x1000</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PERMISSION_TRACK_CAMERA</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x400</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PERMISSION_TRIGGER_ANIMATION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x10</integer>
+            <key>tooltip</key>
+            <string>If this permission is enabled, the object can successfully call llStartAnimation for the avatar that owns this.</string>
+         </map>
+         <key>PI</key>
+         <map>
+            <key>type</key>
+            <string>float</string>
+            <key>value</key>
+            <real>3.14159265</real>
+            <key>tooltip</key>
+            <string>3.14159265 - The number of radians in a semi-circle.</string>
+         </map>
+         <key>PI_BY_TWO</key>
+         <map>
+            <key>type</key>
+            <string>float</string>
+            <key>value</key>
+            <real>1.57079633</real>
+            <key>tooltip</key>
+            <string>1.57079633 - The number of radians in a quarter circle.</string>
+         </map>
+         <key>PING_PONG</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x8</integer>
+            <key>tooltip</key>
+            <string>Play animation going forwards, then backwards.</string>
+         </map>
+         <key>PRIM_BUMP_BARK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_BLOBS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>12</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_BRICKS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_BRIGHT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_CHECKER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_CONCRETE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>7</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_DARK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_DISKS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>10</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_GRAVEL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>11</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_LARGETILE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>14</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_NONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_SHINY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>19</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_SIDING</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>13</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_STONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>9</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_STUCCO</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>15</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_SUCTION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>16</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_TILE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>8</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_WEAVE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>17</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_WOOD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_CAST_SHADOWS</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>24</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_COLOR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>18</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_DESC</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>28</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_FLEXIBLE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>21</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_FULLBRIGHT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>20</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_GLOW</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>25</integer>
+            <key>tooltip</key>
+            <string>PRIM_GLOW is used to get or set the glow status of the face.</string>
+         </map>
+         <key>PRIM_HOLE_CIRCLE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x10</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_HOLE_DEFAULT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x00</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_HOLE_SQUARE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x20</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_HOLE_TRIANGLE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x30</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_LINK_TARGET</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>34</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_MATERIAL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_MATERIAL_FLESH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_MATERIAL_GLASS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_MATERIAL_LIGHT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>7</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_MATERIAL_METAL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_MATERIAL_PLASTIC</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_MATERIAL_RUBBER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_MATERIAL_STONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_MATERIAL_WOOD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_MEDIA_ALT_IMAGE_ENABLE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string>Boolean. Gets/Sets the default image state (the image that the user sees before a piece of media is active) for the chosen face. The default image is specified by Second Life's server for that media type.</string>
+         </map>
+         <key>PRIM_MEDIA_AUTO_LOOP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string>Boolean. Gets/Sets whether auto-looping is enabled.</string>
+         </map>
+         <key>PRIM_MEDIA_AUTO_PLAY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string>Boolean. Gets/Sets whether the media auto-plays when a Resident can view it.</string>
+         </map>
+         <key>PRIM_MEDIA_AUTO_SCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string>Boolean. Gets/Sets whether auto-scaling is enabled. Auto-scaling forces the media to the full size of the texture.</string>
+         </map>
+         <key>PRIM_MEDIA_AUTO_ZOOM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>7</integer>
+            <key>tooltip</key>
+            <string>Boolean. Gets/Sets whether clicking the media triggers auto-zoom and auto-focus on the media.</string>
+         </map>
+         <key>PRIM_MEDIA_CONTROLS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>Integer. Gets/Sets the style of controls. Can be either PRIM_MEDIA_CONTROLS_STANDARD or PRIM_MEDIA_CONTROLS_MINI.</string>
+         </map>
+         <key>PRIM_MEDIA_CONTROLS_MINI</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>Mini web navigation controls; does not include an address bar.</string>
+         </map>
+         <key>PRIM_MEDIA_CONTROLS_STANDARD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string>Standard web navigation controls.</string>
+         </map>
+         <key>PRIM_MEDIA_CURRENT_URL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>String. Gets/Sets the current url displayed on the chosen face. Changing this URL causes navigation. 1024 characters Maximum.</string>
+         </map>
+         <key>PRIM_MEDIA_FIRST_CLICK_INTERACT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>8</integer>
+            <key>tooltip</key>
+            <string>Boolean. Gets/Sets whether the first click interaction is enabled.</string>
+         </map>
+         <key>PRIM_MEDIA_HEIGHT_PIXELS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>10</integer>
+            <key>tooltip</key>
+            <string>Integer. Gets/Sets the height of the media in pixels.</string>
+         </map>
+         <key>PRIM_MEDIA_HOME_URL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string>String. Gets/Sets the home URL for the chosen face. 1024 characters maximum.</string>
+         </map>
+         <key>PRIM_MEDIA_PERM_ANYONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_MEDIA_PERM_GROUP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_MEDIA_PERM_NONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_MEDIA_PERM_OWNER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_MEDIA_PERMS_CONTROL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>14</integer>
+            <key>tooltip</key>
+            <string>Integer. Gets/Sets the permissions mask that control who can see the media control bar above the object:: PRIM_MEDIA_PERM_ANYONE, PRIM_MEDIA_PERM_GROUP, PRIM_MEDIA_PERM_NONE, PRIM_MEDIA_PERM_OWNER</string>
+         </map>
+         <key>PRIM_MEDIA_PERMS_INTERACT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>13</integer>
+            <key>tooltip</key>
+            <string>Integer. Gets/Sets the permissions mask that control who can interact with the object: PRIM_MEDIA_PERM_ANYONE, PRIM_MEDIA_PERM_GROUP, PRIM_MEDIA_PERM_NONE, PRIM_MEDIA_PERM_OWNER</string>
+         </map>
+         <key>PRIM_MEDIA_WHITELIST</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>12</integer>
+            <key>tooltip</key>
+            <string>String. Gets/Sets the white-list as a string of escaped, comma-separated URLs. This string can hold up to 64 URLs or 1024 characters, whichever comes first.</string>
+         </map>
+         <key>PRIM_MEDIA_WHITELIST_ENABLE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>11</integer>
+            <key>tooltip</key>
+            <string>Boolean. Gets/Sets whether navigation is restricted to URLs in PRIM_MEDIA_WHITELIST.</string>
+         </map>
+         <key>PRIM_MEDIA_WIDTH_PIXELS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>9</integer>
+            <key>tooltip</key>
+            <string>Integer. Gets/Sets the width of the media in pixels.</string>
+         </map>
+         <key>PRIM_NAME</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>27</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_OMEGA</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>32</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_PHANTOM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_PHYSICS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_PHYSICS_SHAPE_CONVEX</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>Use the convex hull of the prim shape for physics (this is the default for mesh objects).</string>
+         </map>
+         <key>PRIM_PHYSICS_SHAPE_NONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>Ignore this prim in the physics shape. NB: This cannot be applied to the root prim.</string>
+         </map>
+         <key>PRIM_PHYSICS_SHAPE_PRIM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string>Use the normal prim shape for physics (this is the default for all non-mesh objects).</string>
+         </map>
+         <key>PRIM_PHYSICS_SHAPE_TYPE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>30</integer>
+            <key>tooltip</key>
+            <string>Allows you to set the physics shape type of a prim via lsl. Permitted values are:
+			PRIM_PHYSICS_SHAPE_NONE, PRIM_PHYSICS_SHAPE_PRIM, PRIM_PHYSICS_SHAPE_CONVEX</string>
+         </map>
+         <key>PRIM_POINT_LIGHT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>23</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_POS_LOCAL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>33</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_POSITION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_ROT_LOCAL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>29</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_ROTATION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>8</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_SCULPT_FLAG_INVERT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>64</integer>
+            <key>tooltip</key>
+            <string>Render inside out (inverts the normals).</string>
+         </map>
+         <key>PRIM_SCULPT_FLAG_MIRROR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>128</integer>
+            <key>tooltip</key>
+            <string>Render an X axis mirror of the sculpty.</string>
+         </map>
+         <key>PRIM_SCULPT_TYPE_CYLINDER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_SCULPT_TYPE_MASK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>7</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_SCULPT_TYPE_PLANE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_SCULPT_TYPE_SPHERE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_SCULPT_TYPE_TORUS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_SHINY_HIGH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_SHINY_LOW</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_SHINY_MEDIUM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_SHINY_NONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_SIZE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>7</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_SLICE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>35</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_TEMP_ON_REZ</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_TEXGEN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>22</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_TEXGEN_DEFAULT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_TEXGEN_PLANAR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_TEXT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>26</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_TEXTURE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>17</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_TYPE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>9</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_TYPE_BOX</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_TYPE_CYLINDER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_TYPE_PRISM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_TYPE_RING</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_TYPE_SCULPT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>7</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_TYPE_SPHERE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_TYPE_TORUS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_TYPE_TUBE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PROFILE_NONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string>Disables profiling</string>
+         </map>
+         <key>PROFILE_SCRIPT_MEMORY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>Enables memory profiling</string>
+         </map>
+         <key>PSYS_PART_BOUNCE_MASK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x4</integer>
+            <key>tooltip</key>
+            <string>Particles bounce off of a plane at the objects Z height.</string>
+         </map>
+         <key>PSYS_PART_EMISSIVE_MASK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x100</integer>
+            <key>tooltip</key>
+            <string>The particle glows.</string>
+         </map>
+         <key>PSYS_PART_END_ALPHA</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string>A float which determines the ending alpha of the object.</string>
+         </map>
+         <key>PSYS_PART_END_COLOR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string>A vector &lt;r, g, b&gt; which determines the ending colour of the object.</string>
+         </map>
+         <key>PSYS_PART_END_SCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string>A vector &lt;sx, sy, z&gt;, which is the ending size of the particle billboard in meters (z is ignored).</string>
+         </map>
+         <key>PSYS_PART_FLAGS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string>Each particle that is emitted by the particle system is simulated based on the following flags. To use multiple flags, bitwise or (|) them together.</string>
+         </map>
+         <key>PSYS_PART_FOLLOW_SRC_MASK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x10</integer>
+            <key>tooltip</key>
+            <string>The particle position is relative to the source objects position.</string>
+         </map>
+         <key>PSYS_PART_FOLLOW_VELOCITY_MASK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x20</integer>
+            <key>tooltip</key>
+            <string>The particle orientation is rotated so the vertical axis faces towards the particle velocity.</string>
+         </map>
+         <key>PSYS_PART_INTERP_COLOR_MASK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x1</integer>
+            <key>tooltip</key>
+            <string>Interpolate both the colour and alpha from the start value to the end value.</string>
+         </map>
+         <key>PSYS_PART_INTERP_SCALE_MASK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x2</integer>
+            <key>tooltip</key>
+            <string>Interpolate the particle scale from the start value to the end value.</string>
+         </map>
+         <key>PSYS_PART_MAX_AGE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>19</integer>
+            <key>tooltip</key>
+            <string>Age in seconds of a particle at which it dies.</string>
+         </map>
+         <key>PSYS_PART_START_ALPHA</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>A float which determines the starting alpha of the object.</string>
+         </map>
+         <key>PSYS_PART_START_COLOR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>A vector &lt;r.r, g.g, b.b&gt; which determines the starting colour of the object.</string>
+         </map>
+         <key>PSYS_PART_START_SCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string>A vector &lt;sx, sy, z&gt;, which is the starting size of the particle billboard in meters (z is ignored).</string>
+         </map>
+         <key>PSYS_PART_TARGET_LINEAR_MASK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x80</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PSYS_PART_TARGET_POS_MASK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x40</integer>
+            <key>tooltip</key>
+            <string>The particle heads towards the location of the target object as defined by PSYS_SRC_TARGET_KEY.</string>
+         </map>
+         <key>PSYS_PART_WIND_MASK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x8</integer>
+            <key>tooltip</key>
+            <string>Particles have their velocity damped towards the wind velocity.</string>
+         </map>
+         <key>PSYS_SRC_ACCEL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>8</integer>
+            <key>tooltip</key>
+            <string>A vector &lt;x, y, z&gt; which is the acceleration to apply on particles.</string>
+         </map>
+         <key>PSYS_SRC_ANGLE_BEGIN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>22</integer>
+            <key>tooltip</key>
+            <string>Area in radians specifying where particles will NOT be created (for ANGLE patterns)</string>
+         </map>
+         <key>PSYS_SRC_ANGLE_END</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>23</integer>
+            <key>tooltip</key>
+            <string>Area in radians filled with particles (for ANGLE patterns) (if lower than PSYS_SRC_ANGLE_BEGIN, acts as PSYS_SRC_ANGLE_BEGIN itself, and PSYS_SRC_ANGLE_BEGIN acts as PSYS_SRC_ANGLE_END).</string>
+         </map>
+         <key>PSYS_SRC_BURST_PART_COUNT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>15</integer>
+            <key>tooltip</key>
+            <string>How many particles to release in a burst.</string>
+         </map>
+         <key>PSYS_SRC_BURST_RADIUS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>16</integer>
+            <key>tooltip</key>
+            <string>What distance from the center of the object to create the particles.</string>
+         </map>
+         <key>PSYS_SRC_BURST_RATE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>13</integer>
+            <key>tooltip</key>
+            <string>How often to release a particle burst (float seconds).</string>
+         </map>
+         <key>PSYS_SRC_BURST_SPEED_MAX</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>18</integer>
+            <key>tooltip</key>
+            <string>Maximum speed that a particle should be moving.</string>
+         </map>
+         <key>PSYS_SRC_BURST_SPEED_MIN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>17</integer>
+            <key>tooltip</key>
+            <string>Minimum speed that a particle should be moving.</string>
+         </map>
+         <key>PSYS_SRC_INNERANGLE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>10</integer>
+            <key>tooltip</key>
+            <string>Specifies the inner angle of the arc created by the PSYS_SRC_PATTERN_ANGLE or PSYS_SRC_PATTERN_ANGLE_CONE source pattern.
+			The area specified will NOT have particles in it.</string>
+         </map>
+         <key>PSYS_SRC_MAX_AGE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>19</integer>
+            <key>tooltip</key>
+            <string>How long this particle system should last, 0.0 means forever.</string>
+         </map>
+         <key>PSYS_SRC_OMEGA</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>21</integer>
+            <key>tooltip</key>
+            <string>Sets the angular velocity to rotate the axis that SRC_PATTERN_ANGLE and SRC_PATTERN_ANGLE_CONE use.</string>
+         </map>
+         <key>PSYS_SRC_OUTERANGLE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>11</integer>
+            <key>tooltip</key>
+            <string>Specifies the outer angle of the arc created by the PSYS_SRC_PATTERN_ANGLE or PSYS_SRC_PATTERN_ANGLE_CONE source pattern.
+			The area between the outer and inner angle will be filled with particles.</string>
+         </map>
+         <key>PSYS_SRC_PATTERN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>9</integer>
+            <key>tooltip</key>
+            <string>The pattern which is used to generate particles.
+			Use one of the following values: PSYS_SRC_PATTERN Values.</string>
+         </map>
+         <key>PSYS_SRC_PATTERN_ANGLE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x04</integer>
+            <key>tooltip</key>
+            <string>Shoot particles across a 2 dimensional area defined by the arc created from PSYS_SRC_OUTERANGLE. There will be an open area defined by PSYS_SRC_INNERANGLE within the larger arc.</string>
+         </map>
+         <key>PSYS_SRC_PATTERN_ANGLE_CONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x08</integer>
+            <key>tooltip</key>
+            <string>Shoot particles out in a 3 dimensional cone with an outer arc of PSYS_SRC_OUTERANGLE and an inner open area defined by PSYS_SRC_INNERANGLE.</string>
+         </map>
+         <key>PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x10</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PSYS_SRC_PATTERN_DROP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x01</integer>
+            <key>tooltip</key>
+            <string>Drop particles at the source position.</string>
+         </map>
+         <key>PSYS_SRC_PATTERN_EXPLODE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x02</integer>
+            <key>tooltip</key>
+            <string>Shoot particles out in all directions, using the burst parameters.</string>
+         </map>
+         <key>PSYS_SRC_TARGET_KEY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>20</integer>
+            <key>tooltip</key>
+            <string>The key of a target object to move towards if PSYS_PART_TARGET_POS_MASK is enabled.</string>
+         </map>
+         <key>PSYS_SRC_TEXTURE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>12</integer>
+            <key>tooltip</key>
+            <string>An asset name for the texture to use for the particles.</string>
+         </map>
+         <key>PU_EVADE_HIDDEN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x07</integer>
+            <key>tooltip</key>
+            <string>Triggered when an llEvade character thinks it has hidden from its pursuer.</string>
+         </map>
+         <key>PU_EVADE_SPOTTED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x08</integer>
+            <key>tooltip</key>
+            <string>Triggered when an llEvade character switches from hiding to running</string>
+         </map>
+         <key>PU_FAILURE_INVALID_GOAL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x03</integer>
+            <key>tooltip</key>
+            <string>Goal is not on the navigation-mesh and cannot be reached.</string>
+         </map>
+         <key>PU_FAILURE_INVALID_START</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x02</integer>
+            <key>tooltip</key>
+            <string>Character cannot navigate from the current location - e.g., the character is off the navmesh or too high above it.</string>
+         </map>
+         <key>PU_FAILURE_NO_NAVMESH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x09</integer>
+            <key>tooltip</key>
+            <string>This is a fatal error reported to a character when there is no navmesh for the region. This usually indicates a server failure and users should file a bug report and include the time and region in which they received this message.</string>
+         </map>
+         <key>PU_FAILURE_NO_VALID_DESTINATION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x06</integer>
+            <key>tooltip</key>
+            <string>There is no good place for the character to go - e.g., it is patrolling and all the patrol points are now unreachable.</string>
+         </map>
+         <key>PU_FAILURE_OTHER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1000000</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PU_FAILURE_TARGET_GONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x05</integer>
+            <key>tooltip</key>
+            <string>Target (for llPursue or llEvade) can no longer be tracked - e.g., it left the region or is an avatar that is now more than about 30m outside the region.</string>
+         </map>
+         <key>PU_FAILURE_UNREACHABLE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x04</integer>
+            <key>tooltip</key>
+            <string>Goal is no longer reachable for some reason - e.g., an obstacle blocks the path.</string>
+         </map>
+         <key>PU_GOAL_REACHED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x01</integer>
+            <key>tooltip</key>
+            <string>Character has reached the goal and will stop or choose a new goal (if wandering).</string>
+         </map>
+         <key>PU_SLOWDOWN_DISTANCE_REACHED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x00</integer>
+            <key>tooltip</key>
+            <string>Character is near current goal.</string>
+         </map>
+         <key>PUBLIC_CHANNEL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string>PUBLIC_CHANNEL is an integer constant that, when passed to llSay, llWhisper, or llShout as a channel parameter, will print text to the publicly heard chat channel.</string>
+         </map>
+         <key>PURSUIT_FUZZ_FACTOR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string>Selects a random destination near the offset.</string>
+         </map>
+         <key>PURSUIT_GOAL_TOLERANCE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PURSUIT_INTERCEPT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string>Define whether the character attempts to predict the target's location.</string>
+         </map>
+         <key>PURSUIT_OFFSET</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>Go to a position offset from the target.</string>
+         </map>
+         <key>RAD_TO_DEG</key>
+         <map>
+            <key>type</key>
+            <string>float</string>
+            <key>value</key>
+            <real>57.2957795</real>
+            <key>tooltip</key>
+            <string>57.2957795 - Number of degrees per radian. You can use this number to convert radians to degrees by multiplying the radians by this number.</string>
+         </map>
+         <key>RC_DATA_FLAGS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>RC_DETECT_PHANTOM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>RC_GET_LINK_NUM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>RC_GET_NORMAL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>RC_GET_ROOT_KEY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>RC_MAX_HITS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>RC_REJECT_AGENTS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>RC_REJECT_LAND</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>8</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>RC_REJECT_NONPHYSICAL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>RC_REJECT_PHYSICAL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>RC_REJECT_TYPES</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>RCERR_CAST_TIME_EXCEEDED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-3</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>RCERR_SIM_PERF_LOW</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>RCERR_UNKNOWN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>REGION_FLAG_ALLOW_DAMAGE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>REGION_FLAG_ALLOW_DIRECT_TELEPORT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x100000</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>REGION_FLAG_BLOCK_FLY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x80000</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>REGION_FLAG_BLOCK_TERRAFORM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x40</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>REGION_FLAG_DISABLE_COLLISIONS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x1000</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>REGION_FLAG_DISABLE_PHYSICS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x4000</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>REGION_FLAG_FIXED_SUN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x10</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>REGION_FLAG_RESTRICT_PUSHOBJECT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x400000</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>REGION_FLAG_SANDBOX</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x100</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>REMOTE_DATA_CHANNEL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>REMOTE_DATA_REPLY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>REMOTE_DATA_REQUEST</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>REQUIRE_LINE_OF_SIGHT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>Define whether the character needs a line-of-sight to give chase.</string>
+         </map>
+         <key>RESTITUTION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string>Used with llSetPhysicsMaterial to enable the density value. Must be between 0.0 and 1.0</string>
+         </map>
+         <key>REVERSE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x4</integer>
+            <key>tooltip</key>
+            <string>Play animation in reverse direction.</string>
+         </map>
+         <key>ROTATE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x20</integer>
+            <key>tooltip</key>
+            <string>Animate texture rotation.</string>
+         </map>
+         <key>SCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x40</integer>
+            <key>tooltip</key>
+            <string>Animate the texture scale.</string>
+         </map>
+         <key>SCRIPTED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x8</integer>
+            <key>tooltip</key>
+            <string>Scripted in-world objects.</string>
+         </map>
+         <key>SIM_STAT_PCT_CHARS_STEPPED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string>Returns the % of pathfinding characters skipped each frame, averaged over the last minute.\nThe returned value corresponds to the "Characters Updated" stat in the viewer's Statistics Bar.</string>
+         </map>
+         <key>SMOOTH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x10</integer>
+            <key>tooltip</key>
+            <string>Slide in the X direction, instead of playing separate frames.</string>
+         </map>
+         <key>SQRT2</key>
+         <map>
+            <key>type</key>
+            <string>float</string>
+            <key>value</key>
+            <real>1.41421356</real>
+            <key>tooltip</key>
+            <string>1.41421356 - The square root of 2.</string>
+         </map>
+         <key>STATUS_BLOCK_GRAB</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>64</integer>
+            <key>tooltip</key>
+            <string>Controls whether the object can be grabbed.\nA grab is the default action when in third person, and is available as the hand tool in build mode. This is useful for physical objects that you don't want other people to be able to trivially disturb. The default is FALSE</string>
+         </map>
+         <key>STATUS_BLOCK_GRAB_OBJECT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1024</integer>
+            <key>tooltip</key>
+            <string>Prevent click-and-drag movement on all prims in the object.</string>
+         </map>
+         <key>STATUS_BOUNDS_ERROR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1002</integer>
+            <key>tooltip</key>
+            <string>Argument(s) passed to function had a bounds error.</string>
+         </map>
+         <key>STATUS_CAST_SHADOWS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x200</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>STATUS_DIE_AT_EDGE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x80</integer>
+            <key>tooltip</key>
+            <string>Controls whether the object is returned to the owners inventory if it wanders off the edge of the world.\nIt is useful to set this status TRUE for things like bullets or rockets. The default is TRUE</string>
+         </map>
+         <key>STATUS_INTERNAL_ERROR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1999</integer>
+            <key>tooltip</key>
+            <string>An internal error occurred.</string>
+         </map>
+         <key>STATUS_MALFORMED_PARAMS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1000</integer>
+            <key>tooltip</key>
+            <string>Function was called with malformed parameters.</string>
+         </map>
+         <key>STATUS_NOT_FOUND</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1003</integer>
+            <key>tooltip</key>
+            <string>Object or other item was not found.</string>
+         </map>
+         <key>STATUS_NOT_SUPPORTED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1004</integer>
+            <key>tooltip</key>
+            <string>Feature not supported.</string>
+         </map>
+         <key>STATUS_OK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string>Result of function call was a success.</string>
+         </map>
+         <key>STATUS_PHANTOM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x10</integer>
+            <key>tooltip</key>
+            <string>Controls/indicates whether the object collides or not.\nSetting the value to TRUE makes the object non-colliding with all objects. It is a good idea to use this for most objects that move or rotate, but are non-physical. It is also useful for simulating volumetric lighting. The default is FALSE.</string>
+         </map>
+         <key>STATUS_PHYSICS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x1</integer>
+            <key>tooltip</key>
+            <string>Controls/indicates whether the object moves physically.\nThis controls the same flag that the UI check-box for Physical controls. The default is FALSE.</string>
+         </map>
+         <key>STATUS_RETURN_AT_EDGE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x100</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>STATUS_ROTATE_X</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>STATUS_ROTATE_Y</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x4</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>STATUS_ROTATE_Z</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x8</integer>
+            <key>tooltip</key>
+            <string>Controls/indicates whether the object can physically rotate around
+			the specific axis or not. This flag has no meaning
+			for non-physical objects. Set the value to FALSE
+			if you want to disable rotation around that axis. The
+			default is TRUE for a physical object.
+			A useful example to think about when visualizing
+			the effect is a sit-and-spin device. They spin around the
+			Z axis (up) but not around the X or Y axis.</string>
+         </map>
+         <key>STATUS_SANDBOX</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x20</integer>
+            <key>tooltip</key>
+            <string>Controls/indicates whether the object can cross region boundaries
+			and move more than 20 meters from its creation
+			point. The default if FALSE.</string>
+         </map>
+         <key>STATUS_TYPE_MISMATCH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1001</integer>
+            <key>tooltip</key>
+            <string>Argument(s) passed to function had a type mismatch.</string>
+         </map>
+         <key>STATUS_WHITELIST_FAILED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2001</integer>
+            <key>tooltip</key>
+            <string>Whitelist Failed.</string>
+         </map>
+         <key>STRING_TRIM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x03</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>STRING_TRIM_HEAD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x01</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>STRING_TRIM_TAIL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x02</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>TEXTURE_BLANK</key>
+         <map>
+            <key>type</key>
+            <string>key</string>
+            <key>value</key>
+            <uuid>5748decc-f629-461c-9a36-a35a221fe21f</uuid>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>TEXTURE_DEFAULT</key>
+         <map>
+            <key>type</key>
+            <string>key</string>
+            <key>value</key>
+            <uuid>89556747-24cb-43ed-920b-47caed15465f</uuid>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>TEXTURE_MEDIA</key>
+         <map>
+            <key>type</key>
+            <string>key</string>
+            <key>value</key>
+            <uuid>8b5fec65-8d8d-9dc5-cda8-8fdf2716e361</uuid>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>TEXTURE_PLYWOOD</key>
+         <map>
+            <key>type</key>
+            <string>key</string>
+            <key>value</key>
+            <uuid>89556747-24cb-43ed-920b-47caed15465f</uuid>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>TEXTURE_TRANSPARENT</key>
+         <map>
+            <key>type</key>
+            <string>key</string>
+            <key>value</key>
+            <uuid>8dcd4a48-2d37-4909-9f78-f7a9eb4ef903</uuid>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>TOUCH_INVALID_FACE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0xFFFFFFFF</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>TOUCH_INVALID_TEXCOORD</key>
+         <map>
+            <key>type</key>
+            <string>vector</string>
+            <key>value</key>
+            <map>
+               <key>x</key>
+               <real>-1.0</real>
+               <key>y</key>
+               <real>-1.0</real>
+               <key>z</key>
+               <real>0.0</real>
+            </map>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>TOUCH_INVALID_VECTOR</key>
+         <map>
+            <key>type</key>
+            <string>vector</string>
+            <key>value</key>
+            <map>
+               <key>x</key>
+               <real>0.0</real>
+               <key>y</key>
+               <real>0.0</real>
+               <key>z</key>
+               <real>0.0</real>
+            </map>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>TRAVERSAL_TYPE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>7</integer>
+            <key>tooltip</key>
+            <string>One of TRAVERSAL_TYPE_FAST, TRAVERSAL_TYPE_SLOW, and TRAVERSAL_TYPE_NONE.</string>
+         </map>
+         <key>TRAVERSAL_TYPE_FAST</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>TRAVERSAL_TYPE_NONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>TRAVERSAL_TYPE_SLOW</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>TRUE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>An integer constant for boolean comparisons. Has the value '1'.</string>
+         </map>
+         <key>TWO_PI</key>
+         <map>
+            <key>type</key>
+            <string>float</string>
+            <key>value</key>
+            <real>6.28318530</real>
+            <key>tooltip</key>
+            <string>6.28318530 - The radians of a circle.</string>
+         </map>
+         <key>TYPE_FLOAT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>The list entry is a float.</string>
+         </map>
+         <key>TYPE_INTEGER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>The list entry is an integer.</string>
+         </map>
+         <key>TYPE_INVALID</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string>The list entry is invalid.</string>
+         </map>
+         <key>TYPE_KEY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string>The list entry is a key.</string>
+         </map>
+         <key>TYPE_ROTATION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string>The list entry is a rotation.</string>
+         </map>
+         <key>TYPE_STRING</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string>The list entry is a string.</string>
+         </map>
+         <key>TYPE_VECTOR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string>The list entry is a vector.</string>
+         </map>
+         <key>URL_REQUEST_DENIED</key>
+         <map>
+            <key>type</key>
+            <string>string</string>
+            <key>value</key>
+            <string>URL_REQUEST_DENIED</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>URL_REQUEST_GRANTED</key>
+         <map>
+            <key>type</key>
+            <string>string</string>
+            <key>value</key>
+            <string>URL_REQUEST_GRANTED</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>32</integer>
+            <key>tooltip</key>
+            <string>A slider between minimum (0.0) and maximum (1.0) deflection of angular orientation. That is, its a simple scalar for modulating the strength of angular deflection such that the vehicles preferred axis of motion points toward its real velocity.</string>
+         </map>
+         <key>VEHICLE_ANGULAR_DEFLECTION_TIMESCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>33</integer>
+            <key>tooltip</key>
+            <string>The time-scale for exponential success of linear deflection deflection. Its another way to specify the strength of the vehicles tendency to reorient itself so that its preferred axis of motion agrees with its true velocity.</string>
+         </map>
+         <key>VEHICLE_ANGULAR_FRICTION_TIMESCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>17</integer>
+            <key>tooltip</key>
+            <string>A vector of timescales for exponential decay of the vehicles angular velocity about its preferred axes of motion (at, left, up).
+			Range = [0.07, inf) seconds for each element of the vector.</string>
+         </map>
+         <key>VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>35</integer>
+            <key>tooltip</key>
+            <string>The timescale for exponential decay of the angular motors magnitude.</string>
+         </map>
+         <key>VEHICLE_ANGULAR_MOTOR_DIRECTION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>19</integer>
+            <key>tooltip</key>
+            <string>The direction and magnitude (in preferred frame) of the vehicles angular motor.The vehicle will accelerate (or decelerate if necessary) to match its velocity to its motor.</string>
+         </map>
+         <key>VEHICLE_ANGULAR_MOTOR_TIMESCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>34</integer>
+            <key>tooltip</key>
+            <string>The timescale for exponential approach to full angular motor velocity.</string>
+         </map>
+         <key>VEHICLE_BANKING_EFFICIENCY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>38</integer>
+            <key>tooltip</key>
+            <string>A slider between anti (-1.0), none (0.0), and maxmum (1.0) banking strength.</string>
+         </map>
+         <key>VEHICLE_BANKING_MIX</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>39</integer>
+            <key>tooltip</key>
+            <string>A slider between static (0.0) and dynamic (1.0) banking. "Static" means the banking scales only with the angle of roll, whereas "dynamic" is a term that also scales with the vehicles linear speed.</string>
+         </map>
+         <key>VEHICLE_BANKING_TIMESCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>40</integer>
+            <key>tooltip</key>
+            <string>The timescale for banking to exponentially approach its maximum effect. This is another way to scale the strength of the banking effect, however it affects the term that is proportional to the difference between what the banking behavior is trying to do, and what the vehicle is actually doing.</string>
+         </map>
+         <key>VEHICLE_BUOYANCY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>27</integer>
+            <key>tooltip</key>
+            <string>A slider between minimum (0.0) and maximum anti-gravity (1.0).</string>
+         </map>
+         <key>VEHICLE_FLAG_CAMERA_DECOUPLED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x200</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x10</integer>
+            <key>tooltip</key>
+            <string>Hover at global height.</string>
+         </map>
+         <key>VEHICLE_FLAG_HOVER_TERRAIN_ONLY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x8</integer>
+            <key>tooltip</key>
+            <string>Ignore water height when hovering.</string>
+         </map>
+         <key>VEHICLE_FLAG_HOVER_UP_ONLY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x20</integer>
+            <key>tooltip</key>
+            <string>Hover does not push down. Use this flag for hovering vehicles that should be able to jump above their hover height.</string>
+         </map>
+         <key>VEHICLE_FLAG_HOVER_WATER_ONLY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x4</integer>
+            <key>tooltip</key>
+            <string>Ignore terrain height when hovering.</string>
+         </map>
+         <key>VEHICLE_FLAG_LIMIT_MOTOR_UP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x40</integer>
+            <key>tooltip</key>
+            <string>Prevents ground vehicles from motoring into the sky.</string>
+         </map>
+         <key>VEHICLE_FLAG_LIMIT_ROLL_ONLY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x2</integer>
+            <key>tooltip</key>
+            <string>For vehicles with vertical attractor that want to be able to climb/dive, for instance, aeroplanes that want to use the banking feature.</string>
+         </map>
+         <key>VEHICLE_FLAG_MOUSELOOK_BANK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x100</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>VEHICLE_FLAG_MOUSELOOK_STEER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x80</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>VEHICLE_FLAG_NO_DEFLECTION_UP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x1</integer>
+            <key>tooltip</key>
+            <string>This flag prevents linear deflection parallel to world z-axis. This is useful for preventing ground vehicles with large linear deflection, like bumper cars, from climbing their linear deflection into the sky.</string>
+         </map>
+         <key>VEHICLE_FLAG_NO_FLY_UP</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x1</integer>
+            <key>tooltip</key>
+            <string>Old, changed to VEHICLE_FLAG_NO_DEFLECTION_UP</string>
+         </map>
+         <key>VEHICLE_HOVER_EFFICIENCY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>25</integer>
+            <key>tooltip</key>
+            <string>A slider between minimum (0.0 = bouncy) and maximum (1.0 = fast as possible) damped motion of the hover behavior. </string>
+         </map>
+         <key>VEHICLE_HOVER_HEIGHT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>24</integer>
+            <key>tooltip</key>
+            <string>The height (above the terrain or water, or global) at which the vehicle will try to hover.</string>
+         </map>
+         <key>VEHICLE_HOVER_TIMESCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>26</integer>
+            <key>tooltip</key>
+            <string>Period of time (in seconds) for the vehicle to achieve its hover height.</string>
+         </map>
+         <key>VEHICLE_LINEAR_DEFLECTION_EFFICIENCY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>28</integer>
+            <key>tooltip</key>
+            <string>A slider between minimum (0.0) and maximum (1.0) deflection of linear velocity. That is, its a simple scalar for modulating the strength of linear deflection.</string>
+         </map>
+         <key>VEHICLE_LINEAR_DEFLECTION_TIMESCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>29</integer>
+            <key>tooltip</key>
+            <string>The timescale for exponential success of linear deflection deflection. It is another way to specify how much time it takes for the vehicles linear velocity to be redirected to its preferred axis of motion.</string>
+         </map>
+         <key>VEHICLE_LINEAR_FRICTION_TIMESCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>16</integer>
+            <key>tooltip</key>
+            <string>A vector of timescales for exponential decay of the vehicles linear velocity along its preferred axes of motion (at, left, up).
+			Range = [0.07, inf) seconds for each element of the vector.</string>
+         </map>
+         <key>VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>35</integer>
+            <key>tooltip</key>
+            <string>The timescale for exponential decay of the linear motors magnitude.</string>
+         </map>
+         <key>VEHICLE_LINEAR_MOTOR_DIRECTION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>18</integer>
+            <key>tooltip</key>
+            <string>The direction and magnitude (in preferred frame) of the vehicles linear motor. The vehicle will accelerate (or decelerate if necessary) to match its velocity to its motor.
+			Range of magnitude = [0, 30] meters/second.</string>
+         </map>
+         <key>VEHICLE_LINEAR_MOTOR_OFFSET</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>20</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>VEHICLE_LINEAR_MOTOR_TIMESCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>30</integer>
+            <key>tooltip</key>
+            <string>The timescale for exponential approach to full linear motor velocity.</string>
+         </map>
+         <key>VEHICLE_REFERENCE_FRAME</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>44</integer>
+            <key>tooltip</key>
+            <string>A rotation of the vehicles preferred axes of motion and orientation (at, left, up) with respect to the vehicles local frame (x, y, z).</string>
+         </map>
+         <key>VEHICLE_TYPE_AIRPLANE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string>Uses linear deflection for lift, no hover, and banking to turn.
+			// very little friction along forward-back axis
+			llSetVehicleVectorParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, &lt;200, 10, 5&gt; );
+			// uniform angular friction
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_FRICTION_TIMESCALE, 20 );
+			// linear motor
+			llSetVehicleVectorParam( VEHICLE_LINEAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
+			llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_TIMESCALE, 2 );
+			llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 60 );
+			// angular motor
+			llSetVehicleVectorParam( VEHICLE_ANGULAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_TIMESCALE, 4 );
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 8 );
+			// no hover
+			llSetVehicleFloatParam( VEHICLE_HOVER_HEIGHT, 0 );
+			llSetVehicleFloatParam( VEHICLE_HOVER_EFFICIENCY, 0.5 );
+			llSetVehicleFloatParam( VEHICLE_HOVER_TIMESCALE, 1000 );
+			llSetVehicleFloatParam( VEHICLE_BUOYANCY, 0 );
+			// linear deflection
+			llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 0.5 );
+			llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 0.5 );
+			// angular deflection
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 1.0 );
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 2.0 );
+			// vertical attractor
+			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 0.9 );
+			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 2 );
+			// banking
+			llSetVehicleFloatParam( VEHICLE_BANKING_EFFICIENCY, 1 );
+			llSetVehicleFloatParam( VEHICLE_BANKING_MIX, 0.7 );
+			llSetVehicleFloatParam( VEHICLE_BANKING_TIMESCALE, 2 );
+			// default rotation of local frame
+			llSetVehicleRotationParam( VEHICLE_REFERENCE_FRAME, &lt;0, 0, 0, 1&gt; );
+			// remove these flags
+			llRemoveVehicleFlags( VEHICLE_FLAG_NO_DEFLECTION_UP
+			| VEHICLE_FLAG_HOVER_WATER_ONLY
+			| VEHICLE_FLAG_HOVER_TERRAIN_ONLY
+			| VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT
+			| VEHICLE_FLAG_HOVER_UP_ONLY
+			| VEHICLE_FLAG_LIMIT_MOTOR_UP );
+			// set these flags
+			llSetVehicleFlags( VEHICLE_FLAG_LIMIT_ROLL_ONLY );</string>
+         </map>
+         <key>VEHICLE_TYPE_BALLOON</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string>Hover, and friction, but no deflection.
+			// uniform linear friction
+			llSetVehicleFloatParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, 5 );
+			// uniform angular friction
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_FRICTION_TIMESCALE, 10 );
+			// linear motor
+			llSetVehicleVectorParam( VEHICLE_LINEAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
+			llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_TIMESCALE, 5 );
+			llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 60 );
+			// angular motor
+			llSetVehicleVectorParam( VEHICLE_ANGULAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_TIMESCALE, 6 );
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 10 );
+			// hover
+			llSetVehicleFloatParam( VEHICLE_HOVER_HEIGHT, 5 );
+			llSetVehicleFloatParam( VEHICLE_HOVER_EFFICIENCY, 0.8 );
+			llSetVehicleFloatParam( VEHICLE_HOVER_TIMESCALE, 10 );
+			llSetVehicleFloatParam( VEHICLE_BUOYANCY, 1 );
+			// no linear deflection
+			llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 0 );
+			llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 5 );
+			// no angular deflection
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 0 );
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 5 );
+			// no vertical attractor
+			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 1 );
+			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 1000 );
+			// no banking
+			llSetVehicleFloatParam( VEHICLE_BANKING_EFFICIENCY, 0 );
+			llSetVehicleFloatParam( VEHICLE_BANKING_MIX, 0.7 );
+			llSetVehicleFloatParam( VEHICLE_BANKING_TIMESCALE, 5 );
+			// default rotation of local frame
+			llSetVehicleRotationParam( VEHICLE_REFERENCE_FRAME, &lt;0, 0, 0, 1&gt; );
+			// remove all flags
+			llRemoveVehicleFlags( VEHICLE_FLAG_NO_DEFLECTION_UP
+			| VEHICLE_FLAG_HOVER_WATER_ONLY
+			| VEHICLE_FLAG_LIMIT_ROLL_ONLY
+			| VEHICLE_FLAG_HOVER_TERRAIN_ONLY
+			| VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT
+			| VEHICLE_FLAG_HOVER_UP_ONLY
+			| VEHICLE_FLAG_LIMIT_MOTOR_UP );</string>
+         </map>
+         <key>VEHICLE_TYPE_BOAT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string>Hovers over water with lots of friction and some anglar deflection.
+			// least for forward-back, most friction for up-down
+			llSetVehicleVectorParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, &lt;10, 3, 2&gt; );
+			// uniform angular friction (setting it as a scalar rather than a vector)
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_FRICTION_TIMESCALE, 10 );
+			// linear motor wins after about five seconds, decays after about a minute
+			llSetVehicleVectorParam( VEHICLE_LINEAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
+			llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_TIMESCALE, 5 );
+			llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 60 );
+			// angular motor wins after four seconds, decays in same amount of time
+			llSetVehicleVectorParam( VEHICLE_ANGULAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_TIMESCALE, 4 );
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 4 );
+			// hover
+			llSetVehicleFloatParam( VEHICLE_HOVER_HEIGHT, 0 );
+			llSetVehicleFloatParam( VEHICLE_HOVER_EFFICIENCY, 0.5 );
+			llSetVehicleFloatParam( VEHICLE_HOVER_TIMESCALE, 2.0 );
+			llSetVehicleFloatParam( VEHICLE_BUOYANCY, 1 );
+			// halfway linear deflection with timescale of 3 seconds
+			llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 0.5 );
+			llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 3 );
+			// angular deflection
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 0.5 );
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 5 );
+			// somewhat bounscy vertical attractor
+			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 0.5 );
+			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 5 );
+			// weak negative damped banking
+			llSetVehicleFloatParam( VEHICLE_BANKING_EFFICIENCY, -0.3 );
+			llSetVehicleFloatParam( VEHICLE_BANKING_MIX, 0.8 );
+			llSetVehicleFloatParam( VEHICLE_BANKING_TIMESCALE, 1 );
+			// default rotation of local frame
+			llSetVehicleRotationParam( VEHICLE_REFERENCE_FRAME, &lt;0, 0, 0, 1&gt; );
+			// remove these flags
+			llRemoveVehicleFlags( VEHICLE_FLAG_HOVER_TERRAIN_ONLY
+			| VEHICLE_FLAG_LIMIT_ROLL_ONLY
+			| VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT);
+			// set these flags
+			llSetVehicleFlags( VEHICLE_FLAG_NO_DEFLECTION_UP
+			| VEHICLE_FLAG_HOVER_WATER_ONLY
+			| VEHICLE_FLAG_HOVER_UP_ONLY
+			| VEHICLE_FLAG_LIMIT_MOTOR_UP );</string>
+         </map>
+         <key>VEHICLE_TYPE_CAR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>Another vehicle that bounces along the ground but needs
+			the motors to be driven from external controls or
+			timer events.
+			// most friction for left-right, least for up-down
+			llSetVehicleVectorParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, &lt;100, 2, 1000&gt; );
+			// no angular friction
+			llSetVehicleVectorParam( VEHICLE_ANGULAR_FRICTION_TIMESCALE, &lt;1000, 1000, 1000&gt; );
+			// linear motor wins after about a second, decays after about a minute
+			llSetVehicleVectorParam( VEHICLE_LINEAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
+			llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_TIMESCALE, 1 );
+			llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 60 );
+			// angular motor wins after a second, decays in less time than that
+			llSetVehicleVectorParam( VEHICLE_ANGULAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_TIMESCALE, 1 );
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 0.8 );
+			// no hover
+			llSetVehicleFloatParam( VEHICLE_HOVER_HEIGHT, 0 );
+			llSetVehicleFloatParam( VEHICLE_HOVER_EFFICIENCY, 0 );
+			llSetVehicleFloatParam( VEHICLE_HOVER_TIMESCALE, 1000 );
+			llSetVehicleFloatParam( VEHICLE_BUOYANCY, 0 );
+			// maximum linear deflection with timescale of 2 seconds
+			llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 1 );
+			llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 2 );
+			// no angular deflection
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 0 );
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 10 );
+			// critically damped vertical attractor
+			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 1 );
+			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 10 );
+			// weak negative critically damped banking
+			llSetVehicleFloatParam( VEHICLE_BANKING_EFFICIENCY, -0.2 );
+			llSetVehicleFloatParam( VEHICLE_BANKING_MIX, 1 );
+			llSetVehicleFloatParam( VEHICLE_BANKING_TIMESCALE, 1 );
+			// default rotation of local frame
+			llSetVehicleRotationParam( VEHICLE_REFERENCE_FRAME, &lt;0, 0, 0, 1&gt; );
+			// remove these flags
+			llRemoveVehicleFlags( VEHICLE_FLAG_HOVER_WATER_ONLY
+			| VEHICLE_FLAG_HOVER_TERRAIN_ONLY
+			| VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT);
+			// set these flags
+			llSetVehicleFlags( VEHICLE_FLAG_NO_DEFLECTION_UP
+			| VEHICLE_FLAG_LIMIT_ROLL_ONLY
+			| VEHICLE_FLAG_HOVER_UP_ONLY
+			| VEHICLE_FLAG_LIMIT_MOTOR_UP );</string>
+         </map>
+         <key>VEHICLE_TYPE_NONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>VEHICLE_TYPE_SLED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>Simple vehicle that bumps along the ground,
+			and likes to move along its local x-axis.
+			// most friction for left-right, least for up-down
+			llSetVehicleVectorParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, &lt;30, 1, 1000&gt; );
+			// no angular friction
+			llSetVehicleVectorParam( VEHICLE_ANGULAR_FRICTION_TIMESCALE, &lt;1000, 1000, 1000&gt; );
+			// no linear motor
+			llSetVehicleVectorParam( VEHICLE_LINEAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
+			llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_TIMESCALE, 1000 );
+			llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 120 );
+			// no angular motor
+			llSetVehicleVectorParam( VEHICLE_ANGULAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_TIMESCALE, 1000 );
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 120 );
+			// no hover (but with timescale of 10 sec if enabled)
+			llSetVehicleFloatParam( VEHICLE_HOVER_HEIGHT, 0 );
+			llSetVehicleFloatParam( VEHICLE_HOVER_EFFICIENCY, 10 );
+			llSetVehicleFloatParam( VEHICLE_HOVER_TIMESCALE, 10 );
+			llSetVehicleFloatParam( VEHICLE_BUOYANCY, 0 );
+			// maximum linear deflection with timescale of 1 second
+			llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 1 );
+			llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 1 );
+			// no angular deflection
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 0 );
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 10 );
+			// no vertical attractor (doesnt mind flipping over)
+			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 1 );
+			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 1000 );
+			// no banking
+			llSetVehicleFloatParam( VEHICLE_BANKING_EFFICIENCY, 0 );
+			llSetVehicleFloatParam( VEHICLE_BANKING_MIX, 1 );
+			llSetVehicleFloatParam( VEHICLE_BANKING_TIMESCALE, 10 );
+			// default rotation of local frame
+			llSetVehicleRotationParam( VEHICLE_REFERENCE_FRAME, &lt;0, 0, 0, 1&gt; );
+			// remove these flags
+			llRemoveVehicleFlags( VEHICLE_FLAG_HOVER_WATER_ONLY
+			| VEHICLE_FLAG_HOVER_TERRAIN_ONLY
+			| VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT
+			| VEHICLE_FLAG_HOVER_UP_ONLY );
+			// set these flags (the limit_roll flag will have no effect
+			// until banking is enabled, if ever)
+			llSetVehicleFlags( VEHICLE_FLAG_NO_DEFLECTION_UP
+			| VEHICLE_FLAG_LIMIT_ROLL_ONLY
+			| VEHICLE_FLAG_LIMIT_MOTOR_UP );</string>
+         </map>
+         <key>VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>36</integer>
+            <key>tooltip</key>
+            <string>A slider between minimum (0.0 = wobbly) and maximum (1.0 = firm as possible) stability of the vehicle to keep itself upright.</string>
+         </map>
+         <key>VEHICLE_VERTICAL_ATTRACTION_TIMESCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>37</integer>
+            <key>tooltip</key>
+            <string>The period of wobble, or timescale for exponential approach, of the vehicle to rotate such that its preferred "up" axis is oriented along the worlds "up" axis.</string>
+         </map>
+         <key>VERTICAL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>WANDER_PAUSE_AT_WAYPOINTS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>ZERO_ROTATION</key>
+         <map>
+            <key>type</key>
+            <string>rotation</string>
+            <key>value</key>
+            <map>
+               <key>x</key>
+               <real>0.0</real>
+               <key>y</key>
+               <real>0.0</real>
+               <key>z</key>
+               <real>0.0</real>
+               <key>w</key>
+               <real>1.0</real>
+            </map>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>ZERO_VECTOR</key>
+         <map>
+            <key>type</key>
+            <string>vector</string>
+            <key>value</key>
+            <map>
+               <key>x</key>
+               <real>0.0</real>
+               <key>y</key>
+               <real>0.0</real>
+               <key>z</key>
+               <real>0.0</real>
+            </map>
+            <key>tooltip</key>
+            <string/>
+         </map>
+      </map>
+      <key>events</key>
+      <map>
+         <key>at_rot_target</key>
+         <map>
+            <key>arguments</key>
+            <map>
+               <key>TargetNumber</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>TargetRotation</key>
+               <map>
+                  <key>type</key>
+                  <string>rotation</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>CurrentRotation</key>
+               <map>
+                  <key>type</key>
+                  <string>rotation</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>This event is triggered when a script comes within a defined angle of a target rotation. The range and rotation, are set by a call to llRotTarget.</string>
+         </map>
+         <key>at_target</key>
+         <map>
+            <key>arguments</key>
+            <map>
+               <key>TargetNumber</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>TargetPosition</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>CurrentPosition</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>This event is triggered when the scripted object comes within a defined range of the target position, defined by the llTarget function call.</string>
+         </map>
+         <key>attach</key>
+         <map>
+            <key>arguments</key>
+            <map>
+               <key>AvatarID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>This event is triggered whenever an object is attached or detached from an avatar. If it is attached, the key of the avatar it is attached to is passed in, otherwise NULL_KEY is.</string>
+         </map>
+         <key>changed</key>
+         <map>
+            <key>arguments</key>
+            <map>
+               <key>Changed</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Triggered when various events change the object. The change argument will be a bit-field of CHANGED_* constants.</string>
+         </map>
+         <key>collision</key>
+         <map>
+            <key>arguments</key>
+            <map>
+               <key>NumberOfCollisions</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>This event is raised while another object, or avatar, is colliding with the object the script is attached to.
+			The number of detected objects is passed to the script. Information on those objects may be gathered via the llDetected* functions.</string>
+         </map>
+         <key>collision_end</key>
+         <map>
+            <key>arguments</key>
+            <map>
+               <key>NumberOfCollisions</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>This event is raised when another object, or avatar, stops colliding with the object the script is attached to.
+			The number of detected objects is passed to the script. Information on those objects may be gathered via the llDetected* library functions.</string>
+         </map>
+         <key>collision_start</key>
+         <map>
+            <key>arguments</key>
+            <map>
+               <key>NumberOfCollisions</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>This event is raised when another object, or avatar, starts colliding with the object the script is attached to.
+			The number of detected objects is passed to the script. Information on those objects may be gathered via the llDetected* library functions.</string>
+         </map>
+         <key>control</key>
+         <map>
+            <key>arguments</key>
+            <map>
+               <key>AvatarID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Levels</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Edges</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Once a script has the ability to grab control inputs from the avatar, this event will be used to pass the commands into the script.
+			The levels and edges are bit-fields of control constants.</string>
+         </map>
+         <key>dataserver</key>
+         <map>
+            <key>arguments</key>
+            <map>
+               <key>RequestID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Data</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>This event is triggered when the requested data is returned to the script.
+			Data may be requested by the llRequestAgentData, llRequestInventoryData, and llGetNotecardLine function calls, for example.</string>
+         </map>
+         <key>email</key>
+         <map>
+            <key>arguments</key>
+            <map>
+               <key>Time</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Address</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Subject</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Body</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>NumberRemaining</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>This event is triggered when an email sent to this script arrives.
+			The number remaining tells how many more emails are known to be still pending.</string>
+         </map>
+         <key>http_request</key>
+         <map>
+            <key>arguments</key>
+            <map>
+               <key>HTTPRequestID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>HTTPMethod</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Body</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Triggered when task receives an HTTP request.</string>
+         </map>
+         <key>http_response</key>
+         <map>
+            <key>arguments</key>
+            <map>
+               <key>HTTPRequestID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Status</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Metadata</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Body</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>This event handler is invoked when an HTTP response is received for a pending llHTTPRequest request or if a pending request fails or times out.</string>
+         </map>
+         <key>land_collision</key>
+         <map>
+            <key>arguments</key>
+            <map>
+               <key>Position</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>This event is raised when the object the script is attached to is colliding with the ground.</string>
+         </map>
+         <key>land_collision_end</key>
+         <map>
+            <key>arguments</key>
+            <map>
+               <key>Position</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>This event is raised when the object the script is attached to stops colliding with the ground.</string>
+         </map>
+         <key>land_collision_start</key>
+         <map>
+            <key>arguments</key>
+            <map>
+               <key>Position</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>This event is raised when the object the script is attached to begins to collide with the ground.</string>
+         </map>
+         <key>link_message</key>
+         <map>
+            <key>arguments</key>
+            <map>
+               <key>SendersLink</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Value</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>ID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Triggered when object receives a link message via llMessageLinked function call.</string>
+         </map>
+         <key>listen</key>
+         <map>
+            <key>arguments</key>
+            <map>
+               <key>Channel</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Name</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>ID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>This event is raised whenever a chat message matching the constraints set in the llListen command is received. The name and ID of the speaker, as well as the message, are passed in as parameters.
+			Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 through 2,147,483,648 are private channels that are not sent to avatars but other scripts can listen on those channels.</string>
+         </map>
+         <key>money</key>
+         <map>
+            <key>arguments</key>
+            <map>
+               <key>Payer</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Amount</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>This event is triggered when a resident has given an amount of Linden dollars to the object.</string>
+         </map>
+         <key>moving_end</key>
+         <map>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Triggered whenever an object with this script stops moving.</string>
+         </map>
+         <key>moving_start</key>
+         <map>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Triggered whenever an object with this script starts moving.</string>
+         </map>
+         <key>no_sensor</key>
+         <map>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>This event is raised when sensors are active, via the llSensor function call, but are not sensing anything.</string>
+         </map>
+         <key>not_at_rot_target</key>
+         <map>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>When a target is set via the llRotTarget function call, but the script is outside the specified angle this event is raised.</string>
+         </map>
+         <key>not_at_target</key>
+         <map>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>When a target is set via the llTarget library call, but the script is outside the specified range this event is raised.</string>
+         </map>
+         <key>object_rez</key>
+         <map>
+            <key>arguments</key>
+            <map>
+               <key>RezzedObjectsID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Triggered when an object rezzes another object from its inventory via the llRezObject, or similar, functions. The id is the globally unique key for the object rezzed.</string>
+         </map>
+         <key>on_rez</key>
+         <map>
+            <key>arguments</key>
+            <map>
+               <key>StartParameter</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Triggered whenever an object is rezzed from inventory or by another object. The start parameter is passed in from the llRezObject call, or zero if from inventory.</string>
+         </map>
+         <key>path_update</key>
+         <map>
+            <key>arguments</key>
+            <map>
+               <key>Type</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Reserved</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>This event is called to inform the script of changes within the object's path-finding status.</string>
+         </map>
+         <key>remote_data</key>
+         <map>
+            <key>arguments</key>
+            <map>
+               <key>EventType</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>ChannelID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>MessageID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Sender</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Data</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Data</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Triggered by various XML-RPC calls with event_type specifying the type of data.</string>
+         </map>
+         <key>run_time_permissions</key>
+         <map>
+            <key>arguments</key>
+            <map>
+               <key>PermissionFlags</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Scripts need permission from either the owner or the avatar they wish to act on before they may perform certain functions, such as debiting money from their owners account, triggering an animation on an avatar, or capturing control inputs. The llRequestPermissions library function is used to request these permissions and the various permissions integer constants can be supplied.
+			The integer returned to this event handler contains the current set of permissions flags, so if permissions equal 0 then no permissions are set.</string>
+         </map>
+         <key>sensor</key>
+         <map>
+            <key>arguments</key>
+            <map>
+               <key>NumberDetected</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>This event is raised whenever objects matching the constraints of the llSensor command are detected.
+			The number of detected objects is passed to the script in the parameter. Information on those objects may be gathered via the llDetected* functions.</string>
+         </map>
+         <key>state_entry</key>
+         <map>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>The state_entry event occurs whenever a new state is entered, including at program start, and is always the first event handled.</string>
+         </map>
+         <key>state_exit</key>
+         <map>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>The state_exit event occurs whenever the state command is used to transition to another state. It is handled before the new states state_entry event.</string>
+         </map>
+         <key>timer</key>
+         <map>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>This event is raised at regular intervals set by the llSetTimerEvent library function.</string>
+         </map>
+         <key>touch</key>
+         <map>
+            <key>arguments</key>
+            <map>
+               <key>NumberOfTouches</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>This event is raised while a user is touching the object the script is attached to.
+			The number of touching objects is passed to the script in the parameter.
+			Information on those objects may be gathered via the llDetected* library functions.</string>
+         </map>
+         <key>touch_end</key>
+         <map>
+            <key>arguments</key>
+            <map>
+               <key>NumberOfTouches</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>This event is raised when a user stops touching the object the script is attached to. The number of touches is passed to the script in the parameter.
+			Information on those objects may be gathered via the llDetected* library functions.</string>
+         </map>
+         <key>touch_start</key>
+         <map>
+            <key>arguments</key>
+            <map>
+               <key>NumberOfTouches</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>This event is raised when a user first touches the object the script is attached to. The number of touches is passed to the script in the parameter.
+			Information on those objects may be gathered via the llDetected() library functions.</string>
+         </map>
+         <key>transaction_result</key>
+         <map>
+            <key>arguments</key>
+            <map>
+               <key>RequestID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Success</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Message</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Triggered by llTransferMoney() function.</string>
+         </map>
+      </map>
+      <key>functions</key>
+      <map>
+         <key>llAbs</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>Value</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the absolute (positive) version of Value.</string>
+         </map>
+         <key>llAcos</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <map>
+               <key>Value</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the arc-cosine of Value, in radians.</string>
+         </map>
+         <key>llAddToLandBanList</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>ID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Hours</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Add avatar ID to the parcel ban list for the specified number of Hours.\nA value of 0 for Hours will add the agent indefinitely.\nThe smallest value that Hours will accept is 0.01; anything smaller will be seen as 0.\nWhen values that small are used, it seems the function bans in approximately 30 second increments (Probably 36 second increments, as 0.01 of an hour is 36 seconds).\nResidents teleporting to a parcel where they are banned will be redirected to a neighbouring parcel.</string>
+         </map>
+         <key>llAddToLandPassList</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.1</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>ID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Hours</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Add avatar ID to the land pass list, for a duration of Hours.</string>
+         </map>
+         <key>llAdjustSoundVolume</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.1</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Volume</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Adjusts the volume (0.0 - 1.0) of the currently playing attached sound started with llPlaySound or llLoopSound.\nAdjusts the volume of the currently playing attached sound started with llPlaySound or llLoopSound.\nThis function has no effect on sounds started with llTriggerSound.</string>
+         </map>
+         <key>llAllowInventoryDrop</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Flag</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>If Flag == TRUE, users without object modify permissions can still drop inventory items into the object.</string>
+         </map>
+         <key>llAngleBetween</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <map>
+               <key>Rot1</key>
+               <map>
+                  <key>type</key>
+                  <string>rotation</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Rot2</key>
+               <map>
+                  <key>type</key>
+                  <string>rotation</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the angle, in radians, between rotations Rot1 and Rot2.</string>
+         </map>
+         <key>llApplyImpulse</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Force</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Local</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Applies impulse to the object.\nApplies the Force in local coordinates if Local == TRUE. Otherwise the Force is applied in global coordinates.\nThis function only works on physical objects.</string>
+         </map>
+         <key>llApplyRotationalImpulse</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Force</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Local</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Applies rotational impulse to the object,\nThe force is in local coordinates, if Local == TRUE, otherwise the impulse is applied in global coordinates.\nThis function only works on physical objects.</string>
+         </map>
+         <key>llAsin</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <map>
+               <key>Value</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the arc-sine, in radians, of Value.</string>
+         </map>
+         <key>llAtan2</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <map>
+               <key>y</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>x</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the arc-tangent2 of y, x.</string>
+         </map>
+         <key>llAttachToAvatar</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>AttachmentPoint</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Attach to avatar at point AttachmentPoint, if task has permissions to do so.\nAttach to avatar at point iAttachmentPoint.\nRequires the PERMISSION_ATTACH runtime permission.</string>
+         </map>
+         <key>llAttachToAvatarTemp</key>
+         <map>
+            <key>energy</key>
+            <real>0</real>
+            <key>sleep</key>
+            <real>0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>AttachPoint</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Follows the same convention as llAttachToAvatar, with the exception that the object will not create new inventory for the user, and will disappear on detach or disconnect.</string>
+         </map>
+         <key>llAvatarOnLinkSitTarget</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <map>
+               <key>LinkNumber</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>If an avatar is sitting on the link's sit target, return the avatar's key, NULL_KEY otherwise.\nReturns a key that is the UUID of the user seated on the specified link's prim.</string>
+         </map>
+         <key>llAvatarOnSitTarget</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>If an avatar is seated on the sit target, returns the avatar's key, otherwise NULL_KEY.\nThis only will detect avatars sitting on sit targets defined with llSitTarget.</string>
+         </map>
+         <key>llAxes2Rot</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>rotation</string>
+            <key>arguments</key>
+            <map>
+               <key>Forward</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Left</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Up</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the rotation represented by coordinate axes Forward, Left, and Up.</string>
+         </map>
+         <key>llAxisAngle2Rot</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>rotation</string>
+            <key>arguments</key>
+            <map>
+               <key>Axis</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Angle</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the rotation that is a generated Angle about Axis.</string>
+         </map>
+         <key>llBase64ToInteger</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns an integer that is the Text, Base64 decoded as a big endian integer.\nReturns zero if Text is longer then 8 characters. If Text contains fewer then 6 characters, the return value is unpredictable.</string>
+         </map>
+         <key>llBase64ToString</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Converts a Base64 string to a conventional string.\nIf the conversion creates any unprintable characters, they are converted to question marks.</string>
+         </map>
+         <key>llBreakAllLinks</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>De-links all prims in the link set (requires permission PERMISSION_CHANGE_LINKS be set).</string>
+         </map>
+         <key>llBreakLink</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>LinkNumber</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>De-links the prim with the given link number (requires permission PERMISSION_CHANGE_LINKS be set).</string>
+         </map>
+         <key>llCastRay</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <map>
+               <key>Start</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>End</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Options</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Casts a ray into the physics world from 'start' to 'end' and returns data according to details in Options.\nReports collision data for intersections with objects.\nReturn value: [UUID_1, {link_number_1}, hit_position_1, {hit_normal_1}, UUID_2, {link_number_2}, hit_position_2, {hit_normal_2}, ... , status_code] where {} indicates optional data.</string>
+         </map>
+         <key>llCeil</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>Value</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns smallest integer value &gt;= Value.</string>
+         </map>
+         <key>llClearCameraParams</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Resets all camera parameters to default values and turns off scripted camera control.</string>
+         </map>
+         <key>llClearLinkMedia</key>
+         <map>
+            <key>energy</key>
+            <real>0.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>Link</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Face</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Clears (deletes) the media and all parameters from the given Face on the linked prim.\nReturns an integer that is a STATUS_* flag, which details the success/failure of the operation.</string>
+         </map>
+         <key>llClearPrimMedia</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.1</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>Face</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Clears (deletes) the media and all parameters from the given Face.\nReturns an integer that is a STATUS_* flag which details the success/failure of the operation.</string>
+         </map>
+         <key>llCloseRemoteDataChannel</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>1.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>ChannelID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Closes the specified XML-RPC channel.</string>
+         </map>
+         <key>llCloud</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <map>
+               <key>Offset</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the cloud density at the object's position + Offset.</string>
+         </map>
+         <key>llCollisionFilter</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>ObjectName</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>ObjectID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Accept</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>If Accept == TRUE, only accept collisions with objects Name and ID, otherwise with objects not Name or ID.\nSpecify an empty string or NULL_KEY to not filter on the corresponding parameter.</string>
+         </map>
+         <key>llCollisionSound</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>ImpactSound</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>ImpactVolume</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Suppress default collision sounds, replace default impact sounds with ImpactSound.\nThe ImpactSound must be in the object inventory.\nSupply an empty string to suppress collision sounds.</string>
+         </map>
+         <key>llCollisionSprite</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>ImpactSprite</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Suppress default collision sprites, replace default impact sprite with ImpactSprite; found in the object inventory (empty string to just suppress).</string>
+         </map>
+         <key>llCos</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <map>
+               <key>Theta</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the cosine of Theta (Theta in radians).</string>
+         </map>
+         <key>llCreateCharacter</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Options</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Convert link-set to AI/Physics character.\nCreates a path-finding entity, known as a "character", from the object containing the script. Required to activate use of path-finding functions.\nOptions is a list of key/value pairs.</string>
+         </map>
+         <key>llCreateLink</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>1.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>TargetPrim</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Parent</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Attempt to link the object the script is in, to target (requires permission PERMISSION_CHANGE_LINKS be set).\nIf parent == TRUE, the object the script is attached to is the root.\nRequires permission PERMISSION_CHANGE_LINKS be set.</string>
+         </map>
+         <key>llCSV2List</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Create a list from a string of comma separated values specified in Text.</string>
+         </map>
+         <key>llDeleteCharacter</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Convert link-set from AI/Physics character to Physics object.\nConvert the current link-set back to a standard object, removing all path-finding properties.</string>
+         </map>
+         <key>llDeleteSubList</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <map>
+               <key>Source</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Start</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>End</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Removes the slice from start to end and returns the remainder of the list.\nRemove a slice from the list and return the remainder, start and end are inclusive.\nUsing negative numbers for start and/or end causes the index to count backwards from the length of the list, so 0, -1 would delete the entire list.\nIf Start is larger than End the list deleted is the exclusion of the entries; so 6, 4 would delete the entire list except for the 5th. list entry.</string>
+         </map>
+         <key>llDeleteSubString</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>Source</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Start</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>End</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Removes the indicated sub-string and returns the result.\nStart and End are inclusive.\nUsing negative numbers for Start and/or End causes the index to count backwards from the length of the string, so 0, -1 would delete the entire string.\nIf Start is larger than End, the sub-string is the exclusion of the entries; so 6, 4 would delete the entire string except for the 5th. character.</string>
+         </map>
+         <key>llDetachFromAvatar</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Remove the object containing the script from the avatar.</string>
+         </map>
+         <key>llDetectedGrab</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <map>
+               <key>Number</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the grab offset of a user touching the object.\nReturns &lt;0.0, 0.0, 0.0&gt; if Number is not a valid object.</string>
+         </map>
+         <key>llDetectedGroup</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>Number</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns TRUE if detected object or agent Number has the same user group active as this object.\nIt will return FALSE if the object or agent is in the group, but the group is not active.</string>
+         </map>
+         <key>llDetectedKey</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <map>
+               <key>Number</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the key of detected object or avatar number.\nReturns NULL_KEY if Number is not a valid index.</string>
+         </map>
+         <key>llDetectedLinkNumber</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>Number</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the link position of the triggered event for touches and collisions only.\n0 for a non-linked object, 1 for the root of a linked object, 2 for the first child, etc.</string>
+         </map>
+         <key>llDetectedName</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>Number</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the name of detected object or avatar number.\nReturns the name of detected object number.\nReturns empty string if Number is not a valid index.</string>
+         </map>
+         <key>llDetectedOwner</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <map>
+               <key>Number</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the key of detected object's owner.\nReturns invalid key if Number is not a valid index.</string>
+         </map>
+         <key>llDetectedPos</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <map>
+               <key>Number</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the position of detected object or avatar number.\nReturns &lt;0.0, 0.0, 0.0&gt; if Number is not a valid index.</string>
+         </map>
+         <key>llDetectedRot</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>rotation</string>
+            <key>arguments</key>
+            <map>
+               <key>Number</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the rotation of detected object or avatar number.\nReturns &lt;0.0, 0.0, 0.0, 1.0&gt; if Number is not a valid offset.</string>
+         </map>
+         <key>llDetectedTouchBinormal</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <map>
+               <key>Index</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the surface bi-normal for a triggered touch event.\nReturns a vector that is the surface bi-normal (tangent to the surface) where the touch event was triggered.</string>
+         </map>
+         <key>llDetectedTouchFace</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>Index</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the index of the face where the avatar clicked in a triggered touch event.</string>
+         </map>
+         <key>llDetectedTouchNormal</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <map>
+               <key>Index</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the surface normal for a triggered touch event.\nReturns a vector that is the surface normal (perpendicular to the surface) where the touch event was triggered.</string>
+         </map>
+         <key>llDetectedTouchPos</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <map>
+               <key>Index</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the position, in region coordinates, where the object was touched in a triggered touch event.\nUnless it is a HUD, in which case it returns the position relative to the attach point.</string>
+         </map>
+         <key>llDetectedTouchST</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <map>
+               <key>Index</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns a vector that is the surface coordinates where the prim was touched.\nThe X and Y vector positions contain the horizontal (S) and vertical (T) face coordinates respectively.\nEach component is in the interval [0.0, 1.0].\nTOUCH_INVALID_TEXCOORD is returned if the surface coordinates cannot be determined (e.g. when the viewer does not support this function).</string>
+         </map>
+         <key>llDetectedTouchUV</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <map>
+               <key>Index</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns a vector that is the texture coordinates for where the prim was touched.\nThe X and Y vector positions contain the U and V face coordinates respectively.\nTOUCH_INVALID_TEXCOORD is returned if the touch UV coordinates cannot be determined (e.g. when the viewer does not support this function).</string>
+         </map>
+         <key>llDetectedType</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>Number</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the type (AGENT, ACTIVE, PASSIVE, SCRIPTED) of detected object.\nReturns 0 if number is not a valid index.\nNote that number is a bit-field, so comparisons need to be a bitwise checked. e.g.:\ninteger iType = llDetectedType(0);\n{\n	// ...do stuff with the agent\n}</string>
+         </map>
+         <key>llDetectedVel</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <map>
+               <key>Number</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the velocity of the detected object Number.\nReturns&lt;0.0, 0.0, 0.0&gt; if Number is not a valid offset.</string>
+         </map>
+         <key>llDialog</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.1</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>AvatarID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Buttons</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Channel</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Shows a dialog box on the avatar's screen with the message.\n
+				Up to 12 strings in the list form buttons.\n
+				If a button is clicked, the name is chatted on Channel.\nOpens a "notify box" in the given avatars screen displaying the message.\n
+			Up to twelve buttons can be specified in a list of strings. When the user clicks a button, the name of the button is said on the specified channel.\n
+			Channels work just like llSay(), so channel 0 can be heard by everyone.\n
+			The chat originates at the object's position, not the avatar's position, even though it is said as the avatar (uses avatar's UUID and Name etc.).\n
+			Examples:\n
+			llDialog(who, "Are you a boy or a girl?", [ "Boy", "Girl" ], -4913);\n
+			llDialog(who, "This shows only an OK button.", [], -192);\n
+			llDialog(who, "This chats so you can 'hear' it.", ["Hooray"], 0);</string>
+         </map>
+         <key>llDie</key>
+         <map>
+            <key>energy</key>
+            <real>0.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Deletes the object.\nDelete the object which holds the script.</string>
+         </map>
+         <key>llDumpList2String</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>Source</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Separator</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the list as a single string, using Separator between the entries.\nWrite the list out as a single string, using Separator between values.</string>
+         </map>
+         <key>llEdgeOfWorld</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>Position</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Direction</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Checks to see whether the border hit by Direction from Position is the edge of the world (has no neighboring region).\nReturns TRUE if the line along Direction from Position hits the edge of the world in the current simulator, returns FALSE if that edge crosses into another simulator.</string>
+         </map>
+         <key>llEjectFromLand</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>AvatarID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Ejects AvatarID from land that you own.\nEjects AvatarID from land that the object owner (group or resident) owns.</string>
+         </map>
+         <key>llEmail</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>20.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Address</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Subject</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sends email to Address with Subject and Message.\nSends an email to Address with Subject and Message.</string>
+         </map>
+         <key>llEscapeURL</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>URL</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns an escaped/encoded version of url, replacing spaces with %20 etc.\nReturns the string that is the URL-escaped version of URL (replacing spaces with %20, etc.).\n
+			This function returns the UTF-8 encoded escape codes for selected characters.</string>
+         </map>
+         <key>llEuler2Rot</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>rotation</string>
+            <key>arguments</key>
+            <map>
+               <key>Vector</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the rotation representation of the Euler angles.\nReturns the rotation represented by the Euler Angle.</string>
+         </map>
+         <key>llEvade</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>TargetID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Options</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Evade a specified target.\nCharacters will (roughly) try to hide from their pursuers if there is a good hiding spot along their fleeing path. Hiding means no direct line of sight from the head of the character (centre of the top of its physics bounding box) to the head of its pursuer and no direct path between the two on the navigation-mesh.</string>
+         </map>
+         <key>llExecCharacterCmd</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Command</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Options</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Execute a character command.\nSend a command to the path system.\n
+			Currently only supports stopping the current path-finding operation or causing the character to jump.</string>
+         </map>
+         <key>llFabs</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <map>
+               <key>Value</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the positive version of Value.\nReturns the absolute value of Value.</string>
+         </map>
+         <key>llFleeFrom</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Source</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Distance</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Options</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Flee from a point.\nDirects a character (llCreateCharacter) to keep away from a defined position in the region or adjacent regions.</string>
+         </map>
+         <key>llFloor</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>Value</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns largest integer value &lt;= Value.</string>
+         </map>
+         <key>llForceMouselook</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Enable</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>If Enable is TRUE any avatar that sits on this object is forced into mouse-look mode.\nAfter calling this function with Enable set to TRUE, any agent sitting down on the prim will be forced into mouse-look.\n
+			Just like llSitTarget, this changes a permanent property of the prim (not the object) and needs to be reset by calling this function with Enable set to FALSE in order to disable it.</string>
+         </map>
+         <key>llFrand</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <map>
+               <key>Magnitude</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns a pseudo random number in the range [0, Magnitude] or [Magnitude, 0].\nReturns a pseudo-random number between [0, Magnitude].</string>
+         </map>
+         <key>llGenerateKey</key>
+         <map>
+            <key>energy</key>
+            <real>0</real>
+            <key>sleep</key>
+            <real>0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Generates a key (SHA-1 hash) using UUID generation to create a unique key.\nAs the UUID produced is versioned, it should never return a value of NULL_KEY.\nThe specific UUID version is an implementation detail that has changed in the past and may change again in the future. Do not depend upon the UUID that is returned to be version 5 SHA-1 hash.</string>
+         </map>
+         <key>llGetAccel</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the acceleration of the object relative to the region's axes.\nGets the acceleration of the object.</string>
+         </map>
+         <key>llGetAgentInfo</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>AvatarID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns an integer bit-field containing the agent information about id.\n
+				Returns AGENT_FLYING, AGENT_ATTACHMENTS, AGENT_SCRIPTED, AGENT_SITTING, AGENT_ON_OBJECT, AGENT_MOUSELOOK, AGENT_AWAY, AGENT_BUSY, AGENT_TYPING, AGENT_CROUCHING, AGENT_ALWAYS_RUN, AGENT_WALKING and/or AGENT_IN_AIR.\nReturns information about the given agent ID as a bit-field of agent info constants.</string>
+         </map>
+         <key>llGetAgentLanguage</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>AvatarID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the language code of the preferred interface language of the avatar.\nReturns a string that is the language code of the preferred interface language of the resident.</string>
+         </map>
+         <key>llGetAgentList</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <map>
+               <key>Scope</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Options</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Requests a list of agents currently in the region, limited by the scope parameter.\nReturns a list [key UUID-0, key UUID-1, ..., key UUID-n] or [string error_msg] - returns avatar keys for all agents in the region limited to the area(s) specified by scope</string>
+         </map>
+         <key>llGetAgentSize</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <map>
+               <key>AvatarID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>If the avatar is in the same region, returns the size of the bounding box of the requested avatar by id, otherwise returns ZERO_VECTOR.\nIf the agent is in the same region as the object, returns the size of the avatar.</string>
+         </map>
+         <key>llGetAlpha</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <map>
+               <key>Face</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the alpha value of Face.\nReturns the 'alpha' of the given face. If face is ALL_SIDES the value returned is the mean average of all faces.</string>
+         </map>
+         <key>llGetAndResetTime</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the script time in seconds and then resets the script timer to zero.\nGets the time in seconds since starting and resets the time to zero.</string>
+         </map>
+         <key>llGetAnimation</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>AvatarID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the name of the currently playing locomotion animation for the avatar id.\nReturns the currently playing animation for the specified avatar ID.</string>
+         </map>
+         <key>llGetAnimationList</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <map>
+               <key>AvatarID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns a list of keys of playing animations for an avatar.\nReturns a list of keys of all playing animations for the specified avatar ID.</string>
+         </map>
+         <key>llGetAnimationOverride</key>
+         <map>
+            <key>energy</key>
+            <real>0</real>
+            <key>sleep</key>
+            <real>0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>AnimationState</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns a string that is the name of the animation that is used for the specified animation state\nTo use this function the script must obtain either the PERMISSION_OVERRIDE_ANIMATIONS or PERMISSION_TRIGGER_ANIMATION permission (automatically granted to attached objects).</string>
+         </map>
+         <key>llGetAttached</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the object's attachment point, or 0 if not attached.\nReturns the object attachment point, or 0 if not attached.</string>
+         </map>
+         <key>llGetBoundingBox</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <map>
+               <key>ID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the bounding box around the object (including any linked prims) relative to its root prim, as a list in the format [ (vector) min_corner, (vector) max_corner ].\nReturns the bounding box around the object or avatar with the specified key (including any linked prims) relative to the\n
+			root prim, as a list: [ (vector) min_corner, (vector) max_corner ]</string>
+         </map>
+         <key>llGetCameraPos</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the current camera position for the agent the task has permissions for.\nReturns the position of the camera, of the user that granted the script PERMISSION_TRACK_CAMERA. If no user has granted the permission, it returns ZERO_VECTOR.</string>
+         </map>
+         <key>llGetCameraRot</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>rotation</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the current camera orientation for the agent the task has permissions for.\nReturns the rotation of the camera, of the user who has granted this script PERMISSION_TRACK_CAMERA. If no user has granted the permission, it returns ZERO_ROTATION.\n
+			The key of the user whose camera is being tracked, can be obtained using llGetPermissionsKey.</string>
+         </map>
+         <key>llGetCenterOfMass</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the prim's centre of mass (unless called from the root prim, where it returns the object's centre of mass).</string>
+         </map>
+         <key>llGetClosestNavPoint</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <map>
+               <key>Point</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Options</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Get the closest navigable point to the point provided.\nThe function accepts a point in region-local space (like all the other path-finding methods) and returns either an empty list or a list containing a single vector which is the closest point on the navigation-mesh to the point provided.</string>
+         </map>
+         <key>llGetColor</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <map>
+               <key>Face</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the color on Face.\nReturns the colour of Face as a vector of red, green, and blue values between 0 and 1. If face is ALL_SIDES the colour returned is the mean average of each channel.</string>
+         </map>
+         <key>llGetCreator</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns a key for the creator of the prim.\nReturns the key of the object's original creator. Similar to llGetOwner.</string>
+         </map>
+         <key>llGetDate</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the current date in the UTC time zone in the format YYYY-MM-DD.\nReturns the current UTC date as YYYY-MM-DD.</string>
+         </map>
+         <key>llGetDisplayName</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>AvatarID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the name of an avatar, if the avatar is in the current region, and the name has been cached, otherwise the same as llGetUsername.	Use llRequestDisplayName if you absolutely must have the display name.\nReturns a string that is the non-unique display name of the avatar specified by AvatarID.\n
+			AvatarID must specify a valid avatar key, present in or otherwise known to the region in which the script is running, otherwise an empty string is returned.\n
+			This function will still return a valid display name if the avatar is a child agent of the region (i.e., in an adjacent region, but presently able to see into the one the script is in), or for a short period after the avatar leaves the region (specifically, when the client completely disconnects from the region, either as a main or child agent).</string>
+         </map>
+         <key>llGetEnergy</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns how much energy is in the object as a percentage of maximum.</string>
+         </map>
+         <key>llGetEnv</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>DataRequest</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns a string with the requested data about the region.</string>
+         </map>
+         <key>llGetForce</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the force (if the script is physical).\nReturns the current force if the script is physical.</string>
+         </map>
+         <key>llGetFreeMemory</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the number of free bytes of memory the script can use.\nReturns the available free space for the current script. This is inaccurate with LSO.</string>
+         </map>
+         <key>llGetFreeURLs</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the number of available URLs for the current script.\nReturns an integer that is the number of available URLs.</string>
+         </map>
+         <key>llGetGeometricCenter</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the geometric center of the linked set the script is attached to.\nReturns the geometric centre of the linked set the script is in relative to the object's position (the position of the root prim of a linked set).\n
+			To get the object's position, use llGetPos.</string>
+         </map>
+         <key>llGetGMTclock</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the time in seconds since midnight GMT.\nGets the time in seconds since midnight in GMT/UTC.</string>
+         </map>
+         <key>llGetHTTPHeader</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>HTTPRequestID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Header</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the value for header for request_id.\nReturns a string that is the value of the Header for HTTPRequestID.</string>
+         </map>
+         <key>llGetInventoryCreator</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <map>
+               <key>InventoryItem</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns a key for the creator of the inventory item.\nThis function returns the UUID of the creator of item. If item is not found in inventory, the object says "No item named 'name' ".</string>
+         </map>
+         <key>llGetInventoryKey</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <map>
+               <key>InventoryItem</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the key that is the UUID of the inventory named.\nReturns the key of the inventory named.</string>
+         </map>
+         <key>llGetInventoryName</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>InventoryType</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Index</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the name of the inventory item number of a given type.\nGet the name of the inventory Index number of InventoryType.\n
+			Use the inventory constants INVENTORY_* to specify the type.</string>
+         </map>
+         <key>llGetInventoryNumber</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>InventoryType</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the number of items of a given type (INVENTORY_* flag) in the prim's inventory.\nGet the number of items of InventoryType in the object inventory.\n
+			Use the inventory constants INVENTORY_* to specify the type.</string>
+         </map>
+         <key>llGetInventoryPermMask</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>InventoryItem</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>BitMask</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the requested permission mask for the inventory item.\nReturns the requested permission mask for the inventory item defined by InventoryItem. If item is not in the object's inventory, llGetInventoryPermMask returns FALSE and causes the object to say "No item named '&lt;item&gt;'", where "&lt;item&gt;" is item.\n
+			If this is used to determine whether or not an inventory item exists within the object, it will have the side effect of spamming chat. So please don't ;-)</string>
+         </map>
+         <key>llGetInventoryType</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>InventoryItem</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the type of the inventory item named.\nReturns the type of the inventory item named.\n
+			Remember, like all inventory functions, llGetInventoryType is case-sensitive.</string>
+         </map>
+         <key>llGetKey</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the key of the prim the script is attached to.\nGet the key for the object which has this script.</string>
+         </map>
+         <key>llGetLandOwnerAt</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <map>
+               <key>Position</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the key of the land owner, returns NULL_KEY if public.\nReturns the key of the land owner at Position, or NULL_KEY if public.</string>
+         </map>
+         <key>llGetLinkKey</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <map>
+               <key>LinkNumber</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the key of the linked prim LinkNumber.\nReturns the key of LinkNumber in the link set.</string>
+         </map>
+         <key>llGetLinkMedia</key>
+         <map>
+            <key>energy</key>
+            <real>0.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <map>
+               <key>LinkNumber</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Face</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Parameters</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Get the media parameters for a particular face on linked prim, given the desired list of parameter names. Returns a list of values in the order requested.	Returns an empty list if no media exists on the face.\nGet the desired list of named media parameters, for a particular face, of a linked prim.\n
+				Returns a list of values in the order requested.</string>
+         </map>
+         <key>llGetLinkName</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>LinkNumber</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the name of LinkNumber in a link set.\nReturns the name of LinkNumber the link set.</string>
+         </map>
+         <key>llGetLinkNumber</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the link number of the prim containing the script (0 means not linked, 1 the prim is the root, 2 the prim is the first child, etc.).\nReturns the link number of the prim containing the script. 0 means no link, 1 the root, 2 for first child, etc.</string>
+         </map>
+         <key>llGetLinkNumberOfSides</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>LinkNumber</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the number of sides of the specified linked prim.\nReturns an integer that is the number of faces (or sides) of the prim link.</string>
+         </map>
+         <key>llGetLinkPrimitiveParams</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <map>
+               <key>LinkNumber</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Parameters</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Get primitive parameters for LinkNumber based on rules.\nIdentical to llGetPrimitiveParams except that it acts on the prim specified by the link number given.\n
+			Returns the list of primitive attributes requested in the Parameters list for link.\n
+			PRIM_* flags can be broken into three categories, face flags, prim flags, and object flags.\n
+			* Supplying a prim or object flag will return that flags attributes.\n
+			* Face flags require the user to also supply a side parameter.</string>
+         </map>
+         <key>llGetListEntryType</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>ListVariable</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Index</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the type of the index entry in the list (TYPE_INTEGER, TYPE_FLOAT, TYPE_STRING, TYPE_KEY, TYPE_VECTOR, TYPE_ROTATION, or TYPE_INVALID if index is off list).\nReturns the type of the variable at Index in ListVariable.</string>
+         </map>
+         <key>llGetListLength</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>ListVariable</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the number of elements in the list.\nReturns the number of elements in ListVariable.</string>
+         </map>
+         <key>llGetLocalPos</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the position relative to the root.\nReturns the local position of a child object relative to the root.</string>
+         </map>
+         <key>llGetLocalRot</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>rotation</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the rotation local to the root.\nReturns the local rotation of a child object relative to the root.</string>
+         </map>
+         <key>llGetMass</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the mass of object that the script is attached to.\nReturns the scripted object's mass. When called from a script in a link-set, the parent will return the sum of the link-set weights, while a child will return just its own mass. When called from a script inside an attachment, this function will return the mass of the avatar it's attached to, not its own.</string>
+         </map>
+         <key>llGetMassMKS</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Acts as llGetMass(), except that the units of the value returned are Kg.</string>
+         </map>
+         <key>llGetMemoryLimit</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Get the maximum memory a script can use, in bytes.\nGet the maximum memory a script can use.\n
+			Returns the integer amount of memory the script can use in bytes.</string>
+         </map>
+         <key>llGetNextEmail</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Address</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Subject</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Get the next waiting email with appropriate address and/or subject (if blank they are ignored).\nGet the next waiting email with appropriate address and/or subject.\n
+				If the parameters are blank, they are not used for filtering.</string>
+         </map>
+         <key>llGetNotecardLine</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.1</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <map>
+               <key>NotecardName</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>LineNumber</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns line from NotecardName via the dataserver event.\nThis function fetches LineNumber from NotecardName and returns the data through the dataserver event. The line count starts at zero.\n
+				If the requested line is passed the end of the note-card the dataserver event will return the constant EOF string.\n
+				The key returned by this function is a unique identifier which will be supplied to the dataserver event in the requested parameter.</string>
+         </map>
+         <key>llGetNumberOfNotecardLines</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.1</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <map>
+               <key>NotecardName</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns number of lines in NotecardName via the dataserver event (cast return value to integer).\nReturns the number of lines in the note-card sNotecardName via the dataserver event. (Cast the value returned by the dataserver to an integer.)\n
+			The key returned is a query ID for identifying the dataserver reply.</string>
+         </map>
+         <key>llGetNumberOfPrims</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the number of prims in a link set the script is attached to.\nReturns the number of prims in (and avatars seated on) the object the script is in.</string>
+         </map>
+         <key>llGetNumberOfSides</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the number of faces (or sides) of the prim.\nReturns the number of sides of the prim which has the script.</string>
+         </map>
+         <key>llGetObjectDesc</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the description of the prim the script is attached to.\nReturns the description of the scripted object/prim. You can set the description using llSetObjectDesc.</string>
+         </map>
+         <key>llGetObjectDetails</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <map>
+               <key>ID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Parameters</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the object details specified in Parameters for the object with key ID.\n
+				Parameters are OBJECT_NAME, _DESC, _POS, _ROT, _VELOCITY, _OWNER, _GROUP, _CREATOR.\nReturns a list of the details specified in Parameters for the object with key ID.</string>
+         </map>
+         <key>llGetObjectMass</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <map>
+               <key>ID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the mass of the avatar or object in the region.\nGets the mass of the object or avatar corresponding to ID.</string>
+         </map>
+         <key>llGetObjectName</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the name of the prim which the script is attached to.\nReturns the name of the prim (not object) which contains the script.</string>
+         </map>
+         <key>llGetObjectPermMask</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>PermissionMask</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the requested permission mask for the root object the task is attached to.</string>
+         </map>
+         <key>llGetObjectPrimCount</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>ObjectID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the total number of prims for an object in the region.\nReturns the prim count for any object id in the same region.</string>
+         </map>
+         <key>llGetOmega</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the rotation velocity in radians per second.\nReturns a vector that is the rotation velocity of the object in radians per second.</string>
+         </map>
+         <key>llGetOwner</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the object owner's UUID.\nReturns the key for the owner of the object.</string>
+         </map>
+         <key>llGetOwnerKey</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <map>
+               <key>ObjectID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the owner of ObjectID.\nReturns the key for the owner of object ObjectID.</string>
+         </map>
+         <key>llGetParcelDetails</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <map>
+               <key>Position</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>ParcelDetails</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the parcel details specified in ParcelDetails for the parcel at Position.\n
+ 				Parameters is one or more of: PARCEL_DETAILS_NAME, _DESC, _OWNER, _GROUP, _AREA, _ID, _SEE_AVATARS.\nReturns a list that is the parcel details specified in ParcelDetails (in the same order) for the parcel at Position.</string>
+         </map>
+         <key>llGetParcelFlags</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>Position</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns a mask of the parcel flags (PARCEL_FLAG_*) for the parcel that includes the point Position.\nReturns a bit-field specifying the parcel flags (PARCEL_FLAG_*) for the parcel at Position.</string>
+         </map>
+         <key>llGetParcelMaxPrims</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>Position</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>SimWide</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the maximum number of prims allowed on the parcel at Position.\nReturns an integer that is the maximum number of prims allowed on the parcel at Position.</string>
+         </map>
+         <key>llGetParcelMusicURL</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Gets the streaming audio URL for the parcel object is on.\nReturns a string containing the parcel streaming audio URL.\n
+				The object owner, avatar or group, must also be the land owner.</string>
+         </map>
+         <key>llGetParcelPrimCount</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>Position</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Category</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>SimWide</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the number of prims on the parcel at Position of the given category.
+				Categories: PARCEL_COUNT_TOTAL, _OWNER, _GROUP, _OTHER, _SELECTED, _TEMP.\nReturns the number of prims used on the parcel at Position which are in Category.\n
+				If SimWide is TRUE, it returns the number of objects for the entire region in the category specified.\n
+				If SimWide is FALSE, it returns the number of objects on this specific parcel in the category specified</string>
+         </map>
+         <key>llGetParcelPrimOwners</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>2.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <map>
+               <key>Position</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns a list of all residents who own objects on the parcel at Position, with individual prim counts.
+				Requires owner-like permissions for the parcel.\nReturns a strided list of keys and integers of up to 100 agents who own objects in the parcel at Position.\n
+				The list is formatted as [ key agentKey1, integer agentCount1, key agentKey2, integer agentCount2, ... ], sorted by agent key.\n
+				The integers are counts of the number of prims (not objects) owned by the corresponding agents.\n
+				Only works when the object owner is in the region (likely the reason it doesn't work when deeded to group).</string>
+         </map>
+         <key>llGetPermissions</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns an integer bit-field with the permissions that have been granted.\nReturns an integer bit-field with the script permissions granted. e.g.:\n
+				integer iPerms = llGetPermissions();\n
+				if (iPerms &amp; PERMISSION_DEBIT) {\n
+					llOwnerSay("Yay, I can steal your money!!");\n
+				} else {\n
+					llOwnerSay("Damn, your money is safe from me!");\n
+				}</string>
+         </map>
+         <key>llGetPermissionsKey</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the key of the avatar that last granted permissions to the script.\nReturns the key of the avatar that last granted or declined permissions to the script.\n
+				Returns NULL_KEY if permissions were never granted or declined.</string>
+         </map>
+         <key>llGetPhysicsMaterial</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns a list of the form [float gravity_multiplier, float restitution, float friction, float density].</string>
+         </map>
+         <key>llGetPos</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the position of the task in region coordinates.\nReturns the vector position of the task in region coordinates.</string>
+         </map>
+         <key>llGetPrimitiveParams</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.2</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <map>
+               <key>Parameters</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the primitive parameters specified in the parameters list.\nReturns primitive parameters specified in the Parameters list.</string>
+         </map>
+         <key>llGetPrimMediaParams</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.1</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <map>
+               <key>Face</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Parameters</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the media parameters for a particular face on an object, given the desired list of parameter names, in the order requested. Returns an empty list if no media exists on the face.\nGet the media parameters for a particular face on an object, given the desired list of Parameters.\n
+				Returns a list of values in the order requested.\n
+				Returns an empty list if no media exists on the face.</string>
+         </map>
+         <key>llGetRegionAgentCount</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the number of avatars in the region.\nReturns an integer that is the number of avatars in the region.</string>
+         </map>
+         <key>llGetRegionCorner</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns a vector, in meters, that is the global location of the south-west corner of the region which the object is in.\nReturns the Region-Corner of the simulator containing the task. The region-corner is a vector (values in meters) representing distance from the first region.</string>
+         </map>
+         <key>llGetRegionFlags</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the region flags (REGION_FLAG_*) for the region the object is in.\nReturns a bit-field specifying the region flags (REGION_FLAG_*) for the region the object is in.</string>
+         </map>
+         <key>llGetRegionFPS</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the mean region frames per second.</string>
+         </map>
+         <key>llGetRegionName</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the current region name.</string>
+         </map>
+         <key>llGetRegionTimeDilation</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the current time dilation as a float between 0.0 (full dilation) and 1.0 (no dilation).\nReturns the current time dilation as a float between 0.0 and 1.0.</string>
+         </map>
+         <key>llGetRootPosition</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the position (in region coordinates) of the root prim of the object which the script is attached to.\nGets the position (in region coordinates) of the root/parent prim of the object containing the script.\n
+			This is used to allow a child prim to determine where the root is.</string>
+         </map>
+         <key>llGetRootRotation</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>rotation</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the rotation (relative to the region) of the root prim of the object which the script is attached to.\nGets the global rotation of the root object of the object script is attached to.</string>
+         </map>
+         <key>llGetRot</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>rotation</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the rotation relative to the region's axes.\nReturns the rotation.</string>
+         </map>
+         <key>llGetScale</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the scale of the prim.\nReturns a vector that is the scale (dimensions) of the prim.</string>
+         </map>
+         <key>llGetScriptName</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the name of the script that this function is used in.\nReturns the name of this script.</string>
+         </map>
+         <key>llGetScriptState</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>ScriptName</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns TRUE if the script named is running.\nReturns TRUE if ScriptName is running.</string>
+         </map>
+         <key>llGetSimStats</key>
+         <map>
+            <key>energy</key>
+            <real>0</real>
+            <key>sleep</key>
+            <real>0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <map>
+               <key>StatType</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns a float that is the requested statistic.</string>
+         </map>
+         <key>llGetSimulatorHostname</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the host-name of the machine which the script is running on (same as string in viewer Help dialog).\nReturns the host name (server) of the region in which the scripted object is located.\n
+			For example, "sim225.agni.lindenlab.com".</string>
+         </map>
+         <key>llGetSPMaxMemory</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the maximum used memory for the current script. Only valid after using PROFILE_SCRIPT_MEMORY. Non-mono scripts always use 16k.\nReturns the integer of the most bytes used while llScriptProfiler was last active.</string>
+         </map>
+         <key>llGetStartParameter</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns an integer that is the script start parameter.\nReturns the start parameter passed to llRezObject.\n
+			If the object was created from agent inventory, this function returns 0.</string>
+         </map>
+         <key>llGetStatus</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>StatusFlag</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns value of status (STATUS_PHYSICS, STATUS_PHANTOM, STATUS_BLOCK_GRAB, STATUS_ROTATE_X, STATUS_ROTATE_Y, and/or STATUS_ROTATE_Z).\nReturns the value of specified status.</string>
+         </map>
+         <key>llGetSubString</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>String</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Start</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>End</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the indicated substring.\nReturns the indicated sub-string from String. The start and end are inclusive.\n
+				Using negative numbers for start and/or end causes the index to count backwards from the length of the string, so 0, -1 would capture the entire string.\n
+				If start is larger than end, the sub string is the exclusion of the entries, so 6, 4 would give the entire string except for the 5th. character.</string>
+         </map>
+         <key>llGetSunDirection</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns a normalized vector of the direction of the sun in the region.\nReturns the sun's direction on the simulator.</string>
+         </map>
+         <key>llGetTexture</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>Face</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns a string that is the texture on face (the inventory name if it is a texture in the prim's inventory, otherwise the key).\nReturns the texture of a face, if it is found in object inventory, its key otherwise.</string>
+         </map>
+         <key>llGetTextureOffset</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <map>
+               <key>Face</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the texture offset of face in the x and y components of a vector.</string>
+         </map>
+         <key>llGetTextureRot</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <map>
+               <key>Face</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the texture rotation of side.</string>
+         </map>
+         <key>llGetTextureScale</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <map>
+               <key>Face</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the texture scale of side in the x and y components of a vector.\nReturns the texture scale of a side in the x and y components of a vector.</string>
+         </map>
+         <key>llGetTime</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the time in seconds since the last region reset, script reset, or call to either llResetTime or llGetAndResetTime.</string>
+         </map>
+         <key>llGetTimeOfDay</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the time in seconds since [SECOND_LIFE] server midnight or since region up-time, whichever is smaller.\nGets the time in seconds since midnight in Second Life.</string>
+         </map>
+         <key>llGetTimestamp</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns a time-stamp (UTC time zone) in the format: YYYY-MM-DDThh:mm:ss.ff..fZ.\nReturns the current time-and-date (a time-stamp) in the format YYYY-MM-DDThh:mm:ss.ff..fZ, for example: 2004-08-27T00:56:21.785886Z\n
+				The letter Z is the zone designator for the zero UTC offset, and is why UTC is sometimes referred to as Zulu time (Zulu being the name of Z in the phonetic alphabet. T is just a separator between date and time.</string>
+         </map>
+         <key>llGetTorque</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the torque (if the script is physical).\nReturns a vector that is the torque (if the script is physical).</string>
+         </map>
+         <key>llGetUnixTime</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the number of seconds elapsed since 00:00 hours, Jan 1, 1970 UTC from the system clock.\nReturns the number of seconds elapsed since 00:00 hours, Jan 1, 1970 UTC from the system clock.\n
+				In UNIX terms, time_t. This is great for a monotonic source of time that ticks once a second.</string>
+         </map>
+         <key>llGetUsedMemory</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the current used memory for the current script. Non-mono scripts always use 16K.\nReturns the integer of the number of bytes of memory currently in use by the script. Non-mono scripts always use 16K.</string>
+         </map>
+         <key>llGetUsername</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>AvatarID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the single-word user-name of an avatar, if the avatar is in the current region, otherwise the empty string.\nReturns a string that is the unique user-name of the avatar specified.\n
+				AvatarID must specify a valid avatar key present in, or otherwise known to, the region in which the script is running, otherwise an empty string is returned. This function will still return a valid user-name if the avatar is a child agent of the region (i.e., in an adjacent region, but presently able to see into the one the script is in), or for a short period after the avatar leaves the region (specifically, when the client completely disconnects from the region, either as a main or child agent).</string>
+         </map>
+         <key>llGetVel</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the velocity of the object.\nReturns a vector that is the velocity of the object.</string>
+         </map>
+         <key>llGetWallclock</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the time in seconds since midnight California Pacific time (PST/PDT).\nReturns the time in seconds since simulator's time-zone midnight (Pacific Time).</string>
+         </map>
+         <key>llGiveInventory</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>TargetID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>InventoryItem</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Give InventoryItem to destination represented by TargetID.\nGive the named inventory item to the avatar or object in the same simulator as the giver.\n
+			If the recipient is an avatar, the avatar then follows the normal procedure of accepting or denying the offer. If the recipient is an object, the same permissions apply as if you were dragging inventory onto the object by hand, i.e. if llAllowInventoryDrop has been called with TRUE, any other object can pass objects to its inventory.</string>
+         </map>
+         <key>llGiveInventoryList</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>3.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>TargetID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>FolderName</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>InventoryItems</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Give InventoryItems to destination (represented by TargetID) as a new folder of items.\nGive the list of named inventory items to the keyed avatar or object in the same simulator as the giver.\n
+			If the recipient is an avatar, the avatar then follows the normal procedure of accepting or denying the offer. The offered inventory is then placed in a folder named category in the recipients inventory.\n
+			If the recipient is an object, the same permissions apply as if you were dragging inventory onto the object by hand, i.e. if llAllowInventoryDrop has been called with TRUE, any other object can pass objects to its inventory. If the recipient is an object, the sFolderName parameter is ignored.</string>
+         </map>
+         <key>llGiveMoney</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>AvatarID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Amount</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Transfers Amount of L from script owner to AvatarID.\nTransfer Amount from the script owner to AvatarID.\n
+				This call will (silently) fail if PERMISSION_DEBIT has not been set.</string>
+         </map>
+         <key>llGodLikeRezObject</key>
+         <map>
+            <key>god-mode</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>InventoryItemID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Position</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Rez directly off of a UUID if owner has dog-bit set.</string>
+         </map>
+         <key>llGround</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <map>
+               <key>Offset</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the ground height at the object position + offset.\nReturns the ground height at the object's position + Offset.</string>
+         </map>
+         <key>llGroundContour</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <map>
+               <key>Offset</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the ground contour direction below the object position + Offset.\nReturns the ground contour at the object's position + Offset.</string>
+         </map>
+         <key>llGroundNormal</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <map>
+               <key>Offset</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the ground normal below the object position + offset.\nReturns the ground contour at the object's position + Offset.</string>
+         </map>
+         <key>llGroundRepel</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Height</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Water</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Tau</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Critically damps to height if within height * 0.5 of level (either above ground level or above the higher of land and water if water == TRUE).\nCritically damps to fHeight if within fHeight * 0.5 of ground or water level.\n
+				The height is above ground level if iWater is FALSE or above the higher of land and water if iWater is TRUE.\n
+				Do not use with vehicles. Only works in physics-enabled objects.</string>
+         </map>
+         <key>llGroundSlope</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <map>
+               <key>Offset</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the ground slope below the object position + Offset.\nReturns the ground slope at the object position + Offset.</string>
+         </map>
+         <key>llHTTPRequest</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <map>
+               <key>URL</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Parameters</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Body</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sends an HTTP request to the specified URL with the Body of the request and Parameters.\nSends an HTTP request to URL with the specified body and parameters.\n
+				Returns a key that is a handle identifying the HTTP request made.</string>
+         </map>
+         <key>llHTTPResponse</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>HTTPRequestID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Status</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Body</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Responds to HTTPRequestID with Status and Body.\nResponds to HTTPRequestID with Status code and Body.</string>
+         </map>
+         <key>llInsertString</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>TargetVariable</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Position</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>SourceVariable</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Inserts SourceVariable into TargetVariable at Position, and returns the result.\nInserts SourceVariable into TargetVariable at Position and returns the result. Note this does not alter TargetVariable.</string>
+         </map>
+         <key>llInstantMessage</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>2.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>AvatarID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>IMs Text to the user identified.\nSend Text to the user as an instant message.</string>
+         </map>
+         <key>llIntegerToBase64</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>Value</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns a string that is a Base64 big endian encode of Value.\nEncodes the Value as an 8-character Base64 string.</string>
+         </map>
+         <key>llJson2List</key>
+         <map>
+            <key>energy</key>
+            <real>0.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <map>
+               <key>JSON</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Converts the top level of the JSON string to a list.</string>
+         </map>
+         <key>llJsonGetValue</key>
+         <map>
+            <key>energy</key>
+            <real>0.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>JSON</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Specifiers</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Gets the value indicated by Specifiers from the JSON string.</string>
+         </map>
+         <key>llJsonSetValue</key>
+         <map>
+            <key>energy</key>
+            <real>0.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>JSON</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Specifiers</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Value</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns a new JSON string that is the JSON given with the Value indicated by Specifiers set to Value.</string>
+         </map>
+         <key>llJsonValueType</key>
+         <map>
+            <key>energy</key>
+            <real>0.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>JSON</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Specifiers</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the type constant (JSON_*) for the value in JSON indicated by Specifiers.</string>
+         </map>
+         <key>llKey2Name</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>ID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the name of the prim or avatar specified by ID. The ID must be a valid rezzed prim or avatar key in the current simulator, otherwise an empty string is returned.\nReturns the name of a rezzed prim or avatar, present in or otherwise known, to the region in which the script is running. If the key is invalid (not in region, or not a prim or avatar's key), returns an empty string.</string>
+         </map>
+         <key>llLinkParticleSystem</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>LinkNumber</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Rules</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Creates a particle system based on Rules. An empty list removes a particle system from object.\n
+				List format is [ rule-1, data-1, rule-2, data-2 ... rule-n, data-n ].\nA particle system defined by a list of rules is set for the prim(s) link. This is identical to llParticleSystem except that it applies to a specified linked prim and not just the prim the script is in.</string>
+         </map>
+         <key>llLinkSitTarget</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>LinkNumber</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Offset</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Rotation</key>
+               <map>
+                  <key>type</key>
+                  <string>rotation</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Set the sit location for the linked prim(s). If Offset == &lt;0,0,0&gt; clear it.\nSet the sit location for the linked prim(s). The sit location is relative to the prim's position and rotation.</string>
+         </map>
+         <key>llList2CSV</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>ListVariable</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Creates a string of comma separated values from the list.\nCreate a string of comma separated values from the specified list.</string>
+         </map>
+         <key>llList2Float</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <map>
+               <key>ListVariable</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Index</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Copies the float at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to a float, then zero is returned.</string>
+         </map>
+         <key>llList2Integer</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>ListVariable</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Index</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Copies the integer at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to an integer, then zero is returned.</string>
+         </map>
+         <key>llList2Json</key>
+         <map>
+            <key>energy</key>
+            <real>0</real>
+            <key>sleep</key>
+            <real>0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>JsonType</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Values</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Converts either a strided list of key:value pairs to a JSON_OBJECT, or a list of values to a JSON_ARRAY.</string>
+         </map>
+         <key>llList2Key</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <map>
+               <key>ListVariable</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Index</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Copies the key at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to a key, then null string is returned.</string>
+         </map>
+         <key>llList2List</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <map>
+               <key>ListVariable</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Start</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>End</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Copies the slice of the list from Start to End.\nReturns the slice of the list from start to end from the list as a new list. The start and end parameters are inclusive.\n
+				Using negative numbers for start and/or end causes the index to count backwards from the length of the list, so 0, -1 would capture the entire list.\n
+				If start is larger than end the list returned is the exclusion of the entries, so 6, 4 would give the entire list except for the 5th. entry.</string>
+         </map>
+         <key>llList2ListStrided</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <map>
+               <key>ListVariable</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Start</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>End</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Stride</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Copies the strided slice of the list from Start to End.\nReturns a copy of the strided slice of the specified list from Start to End.</string>
+         </map>
+         <key>llList2Rot</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>rotation</string>
+            <key>arguments</key>
+            <map>
+               <key>ListVariable</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Index</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Copies the rotation at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to rotation, thenZERO_ROTATION is returned.</string>
+         </map>
+         <key>llList2String</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>ListVariable</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Index</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Copies the string at Index in the list.\nReturns the value at Index in the specified list as a string. If Index describes a location not in the list then null string is returned.</string>
+         </map>
+         <key>llList2Vector</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <map>
+               <key>ListVariable</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Index</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Copies the vector at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to a vector, then ZERO_VECTOR is returned.</string>
+         </map>
+         <key>llListen</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>Channel</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>SpeakersName</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>SpeakersID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets a callback for Text on Channel from SpeakersName and SpeakersID (SpeakersName, SpeakersID, and/or Text can be empty) and returns an identifier that can be used to deactivate or remove the listen.\nSets a listen event callback on the specified channel. Specifying values for speakername, speakerID, and message will filter the results accordingly, which is advisable or your listen event will respond to every thing said on the channel potentially causing a great deal of lag.\n
+				Returns an identifier that can be used to deactivate or remove the listen. The name, id and/or msg parameters\n
+				Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 to 2,147,483,648 are hidden channels that are not sent to avatars.</string>
+         </map>
+         <key>llListenControl</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>ChannelHandle</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Active</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Makes a listen event callback active or inactive.\nMake a listen event callback active or inactive. Pass in the value returned from llListen to the iChannelHandle parameter to specify which event you are controlling.\n
+				Use boolean values to specify Active</string>
+         </map>
+         <key>llListenRemove</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>ChannelHandle</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Removes listen event callback number.\nRemoves a listen event callback. Pass in the value returned from llListen to the iChannelHandle parameter to specify which event to remove.</string>
+         </map>
+         <key>llListFindList</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>ListVariable</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Find</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the index of the first instance of Find in ListVariable. Returns -1 if not found.\nReturns the position of the first instance of the Find list in the ListVariable. Returns -1 if not found.</string>
+         </map>
+         <key>llListInsertList</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <map>
+               <key>Target</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>ListVariable</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Position</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns a list that contains all the elements from Target but with the elements from ListVariable inserted at Position start.\nReturns a new list, created by inserting ListVariable into the Target list at Position. Note this does not alter the Target.</string>
+         </map>
+         <key>llListRandomize</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <map>
+               <key>ListVariable</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Stride</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns a randomized list of blocks of size Stride.\nReturns the specified list randomized into blocks of size stride.\n
+				If the remainder from the length of the list, divided by the stride is non-zero, this function does not randomize the list.</string>
+         </map>
+         <key>llListReplaceList</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <map>
+               <key>Target</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>ListVariable</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Start</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>End</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns a list that is Target with Start through End removed and ListVariable inserted at Start.\nReturns a list replacing the slice of the Target list from Start to End with the specified ListVariable. Start and End are inclusive, so 0, 1 would replace the first two entries and 0, 0 would replace only the first list entry.</string>
+         </map>
+         <key>llListSort</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <map>
+               <key>ListVariable</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Stride</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Ascending</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sorts the list into blocks of stride, in Ascending order if Ascending == TRUE. The sort order is affected by type.\nReturns the specified list, sorted into blocks of stride in ascending order (if Ascending is TRUE, otherwise descending). Note that sort only works if the first entry of each block is the same type.</string>
+         </map>
+         <key>llListStatistics</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <map>
+               <key>Operation</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>ListVariable</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Performs statistical aggregate functions on ListVariable using LIST_STAT_* Operations.\nThis function allows a script to perform a statistical operation as defined by operation on a list composed of integers and floats.</string>
+         </map>
+         <key>llLoadURL</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>AvatarID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>URL</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Shows dialog to avatar AvatarID offering to load web page at URL.	If user clicks yes, launches their web browser.\nllLoadURL displays a dialogue box to the user, offering to load the specified web page using the default web browser.</string>
+         </map>
+         <key>llLog</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <map>
+               <key>Value</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the natural logarithm of Value. Returns zero if Value &lt;= 0.\nReturns the base e (natural) logarithm of the specified Value.</string>
+         </map>
+         <key>llLog10</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <map>
+               <key>Value</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the base 10 logarithm of Value. Returns zero if Value &lt;= 0.\nReturns the base 10 (common) logarithm of the specified Value.</string>
+         </map>
+         <key>llLookAt</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Target</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Strength</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Damping</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Cause object name to point it's forward axis towards Target.\nCause object to point the forward axis toward Target.\n
+				Good Strength values are around half the mass of the object and good Damping values are less than 1/10th of the Strength.\n
+				Asymmetrical shapes require smaller Damping. A Strength of 0.0 cancels the look at.</string>
+         </map>
+         <key>llLoopSound</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Sound</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Volume</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Plays attached Sound, looping indefinitely, at Volume (0.0 - 1.0).\nSimilar to llPlaySound, this function plays a sound attached to an object, but will continuously repeat that sound until llStopSound or llPlaySound is called.\n
+			Only one sound may be attached to an object at a time. A second call to llLoopSound with the same key will not restart the sound, but the new volume will be used. This allows control over the volume of already playing sounds.\n
+			Setting the volume to 0 is not the same as calling llStopSound; a sound with 0 volume will continue to loop.\n
+			To restart the sound from the beginning, call llStopSound before calling llLoopSound again.</string>
+         </map>
+         <key>llLoopSoundMaster</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Sound</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Volume</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Plays attached Sound, looping at volume (0.0 - 1.0), and declares it a sync master.\nBehaviour is identical to llLoopSound, with the addition of marking the source as a "Sync Master", causing "Slave" sounds to sync to it. If there are multiple masters within a viewers interest area, the most audible one (a function of both distance and volume) will win out as the master.\n
+				The use of multiple masters within a small area is unlikely to produce the desired effect.</string>
+         </map>
+         <key>llLoopSoundSlave</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Sound</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Volume</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Plays attached sound looping at volume (0.0 - 1.0), synced to most audible sync master.\nBehaviour is identical to llLoopSound, unless there is a "Sync Master" present.\n
+				If a Sync Master is already playing the Slave sound will begin playing from the same point the master is in its loop synchronizing the loop points of both sounds.\n
+				If a Sync Master is started when the Slave is already playing, the Slave will skip to the correct position to sync with the Master.</string>
+         </map>
+         <key>llMakeExplosion</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.1</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Particles</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Scale</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Velocity</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Lifetime</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Arc</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Texture</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Offset</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Make a round explosion of particles. Deprecated: Use llParticleSystem instead.\nMake a round explosion of particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.</string>
+         </map>
+         <key>llMakeFire</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.1</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Particles</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Scale</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Velocity</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Lifetime</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Arc</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Texture</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Offset</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Make fire like particles. Deprecated: Use llParticleSystem instead.\nMake fire particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.</string>
+         </map>
+         <key>llMakeFountain</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.1</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Particles</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Scale</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Velocity</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Lifetime</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Arc</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Texture</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Offset</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Make a fountain of particles. Deprecated: Use llParticleSystem instead.\nMake a fountain of particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.</string>
+         </map>
+         <key>llMakeSmoke</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.1</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Particles</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Scale</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Velocity</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Lifetime</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Arc</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Texture</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Offset</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Make smoke like particles. Deprecated: Use llParticleSystem instead.\nMake smoky particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.</string>
+         </map>
+         <key>llManageEstateAccess</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>Action</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>AvatarID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Use to add or remove agents from the estate's agent access or ban lists or groups from the estate's group access list.\nUse to add or remove agents from the estate's agent access or ban lists or groups from the estate's group access list.\n
+			Returns an integer representing a boolean, TRUE if the call was successful; FALSE if throttled, invalid action, invalid or null id or object owner is not allowed to manage the estate.</string>
+         </map>
+         <key>llMapDestination</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>1.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>RegionName</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Position</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Direction</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Opens world map centred on region with Position highlighted. Only works for scripts attached to avatar, or during touch events. NOTE: Direction currently does nothing.\nShows a given location on the map, opening the map window whenever it is called.\n
+				There is no way to simply set the map position without opening the window.\n
+				Only works in attachments, or during touch events.</string>
+         </map>
+         <key>llMD5String</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Nonce</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns a string of 32 hex characters that is an RSA Data Security Inc., MD5 Message-Digest Algorithm of Text with Nonce.\nPerforms an RSA Data Security, Inc. MD5 Message-Digest Algorithm on the specified string using the nonce (also known as salt).\n
+				Returns a 32-character hex string. (128-bit in binary.)</string>
+         </map>
+         <key>llMessageLinked</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>LinkNumber</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Number</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>ID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sends Number, Text, and ID to members of the link set identified by LinkNumber (LINK_ROOT sends to root task in a linked set, LINK_SET sends to all tasks, LINK_ALL_OTHERS to all other tasks, LINK_ALL_CHILDREN to all children, LINK_THIS to the task the script it is in).\nSends the specified number, string, and key to members of the link set.\n
+				The LinkNumber parameter is either a linked number available through llGetLinkNumber or a LINK_* constant.</string>
+         </map>
+         <key>llMinEventDelay</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Delay</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Set the minimum time between events being handled.</string>
+         </map>
+         <key>llModifyLand</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Action</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Area</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Modify land with action (LAND_LEVEL, LAND_RAISE, LAND_LOWER, LAND_SMOOTH, LAND_NOISE, LAND_REVERT) on size (LAND_SMALL_BRUSH, LAND_MEDIUM_BRUSH, LAND_LARGE_BRUSH).\nModify land with action on size area. The parameters can be chosen from the land constants.</string>
+         </map>
+         <key>llModPow</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>1.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>Value</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Power</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Modulus</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns a Value raised to the Power, mod Modulus. ((a**b)%c) b is capped at 0xFFFF (16 bits).\nReturns (Value ^ Power) % Modulus. (Value raised to the Power, Modulus). Value is capped at 0xFFFF (16 bits).</string>
+         </map>
+         <key>llMoveToTarget</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Target</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Tau</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Critically damp to Target in Tau seconds (if the script is physical).\nCritically damp to position target in tau-seconds if the script is physical. Good tau-values are greater than 0.2. A tau of 0.0 stops the critical damping.</string>
+         </map>
+         <key>llNavigateTo</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Location</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Options</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Navigate to destination.\nDirects an object to travel to a defined position in the region or adjacent regions.</string>
+         </map>
+         <key>llOffsetTexture</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.2</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>OffsetS</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>OffsetT</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Face</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the texture S and T offsets for the chosen Face.\nSets the texture s and t offsets of face.\n
+			If Face is ALL_SIDES this function sets the texture offsets for all faces.</string>
+         </map>
+         <key>llOpenRemoteDataChannel</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>1.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Requests a channel to listen for XML-RPC calls. Will trigger a remote_data event with channel ID once it is available.\nRequests a channel to listen for XML-RPC calls. (Deprecated: XML-RPC should not be used. Use http-in instead.)\n
+				Will trigger a remote_data event with type = REMOTE_DATA_CHANNEL and a channel ID (key) once it is available.\n
+				This channel ID must be referenced in the XML-RPC call to the script (from the internet) -- so the key must somehow get to the scripter's XML-RPC client, most often via llEmail, llHttpRequest or llLoadUrl.</string>
+         </map>
+         <key>llOverMyLand</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>ID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns TRUE if id ID over land owned by the script owner, otherwise FALSE.\nReturns TRUE if key ID is over land owned by the object owner, FALSE otherwise.</string>
+         </map>
+         <key>llOwnerSay</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>says Text to owner only (if owner is in region).\nSays Text to the owner of the object running the script, if the owner has been within the object's simulator since logging into Second Life, regardless of where they may be in-world.</string>
+         </map>
+         <key>llParcelMediaCommandList</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>2.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>CommandList</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sends a list of commands, some with arguments, to a parcel.\nControls the playback of multimedia resources on a parcel or for an agent.</string>
+         </map>
+         <key>llParcelMediaQuery</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>2.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <map>
+               <key>QueryList</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns a list containing results of the sent query.\nQueries the texture and/or URL for QuickTime-playable video on the land parcel.\n
+				This function will only work if the script is contained within an object owned by the land-owner (or if the land is owned by a group, only if the object has been deeded to the group). It will not work for group land if the object owner is a member of the group. The object actually has to be owned by the group.</string>
+         </map>
+         <key>llParseString2List</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Separators</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Spacers</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Breaks Text into a list, discarding Separators, keeping Spacers (Separators and Spacers must be lists of strings, maximum of 8 each).\nBreaks the Text into a list using Separators and Spacers to delimit entries. Separators are discarded, while Spacers are kept. Any empty entries are ignored.\n
+				The separators and spacers must be lists of strings with a maximum of 8 entries each. So, if you had made the call:\n
+				llParseString2List("Parsethisnow! I dare:you to.", ["this", "!", " "], [":"]);\n
+				You would get the list: ["Parse", "now", "I", "dare", ":", "you", "to"].</string>
+         </map>
+         <key>llParseStringKeepNulls</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Separators</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Spacers</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Breaks Text into a list, discarding separators, keeping spacers, keeping any null values generated. (separators and spacers must be lists of strings, maximum of 8 each).\nllParseStringKeepNulls works almost exactly like llParseString2List, except that if a null is found it will add a null-string instead of discarding it like llParseString2List does.</string>
+         </map>
+         <key>llParticleSystem</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Parameters</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Creates a particle system based on Parameters.	An empty list removes particle system from object.
+				List format is [ rule-1, data-1, rule-2, data-2 . . . rule-n, data-n ].\nMakes a particle system based on the parameter list.\n
+				The parameters are specified as an ordered list of parameter and value. Valid parameters and their expected values can be found in the particle system constants.\n
+				Here is a simple example:\n
+				llParticleSystem([PSYS_PART_FLAGS, PSYS_PART_WIND_MASK, PSYS_PART_START_COLOR, &lt;1, 0, 0&gt;, PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_EXPLODE]);</string>
+         </map>
+         <key>llPassCollisions</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Pass</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>If Pass == TRUE, collisions are passed from children on to parents (default is FALSE).\nIf pass is TRUE, land and object collisions are passed from children on to parents.\n
+				The default is FALSE if there is no script to handle the collision events.</string>
+         </map>
+         <key>llPassTouches</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Pass</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>If pass == TRUE, touches are passed from children on to parents (default is FALSE).\nIf pass is TRUE, touches are passed from children on to parents.\n
+				The default is TRUE if there is no script to handle the touch events.</string>
+         </map>
+         <key>llPatrolPoints</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Points</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Options</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Patrol a list of points.\nSets the points for a character (llCreateCharacter) to patrol along.</string>
+         </map>
+         <key>llPlaySound</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Sound</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Volume</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Plays attached Sound once, at Volume (0.0 - 1.0).\nPlays a sound once. The sound will be attached to the object and follow object's movement. Only one sound may be attached to an object at a time, and attaching a new sound or calling llStopSound will stop the previously attached sound.\n
+				A second call to llPlaySound with the same sound will not restart the sound, but the new volume will be used, which allows control over the volume of already playing sounds.\n
+				To restart the sound from the beginning, call llStopSound before calling llPlaySound again.</string>
+         </map>
+         <key>llPlaySoundSlave</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Sound</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Volume</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Plays attached Sound once, at Volume (0.0 - 1.0), synced to next loop of most audible sync master.\nBehaviour is identical to llPlaySound, unless there is a "Sync Master" present. If a Sync Master is already playing, the Slave sound will not be played until the Master hits its loop point and returns to the beginning.\n
+				llPlaySoundSlave will play the sound exactly once; if it is desired to have the sound play every time the Master loops, either use llLoopSoundSlave with extra silence padded on the end of the sound or ensure that llPlaySoundSlave is called at least once per loop of the Master.</string>
+         </map>
+         <key>llPow</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Value</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Exponent</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the Value raised to the power Exponent, or returns 0 and triggers Math Error for imaginary results.\nReturns the Value raised to the Exponent.</string>
+         </map>
+         <key>llPreloadSound</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>1.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Sound</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Preloads a sound on viewers within range.\nCauses nearby viewers to preload the Sound from the object's inventory. This is intended to prevent delays in starting new sounds when called upon.</string>
+         </map>
+         <key>llPursue</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>TargetID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Options</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Chase after a target.\nCauses the character (llCharacter) to pursue the target defined by TargetID.</string>
+         </map>
+         <key>llPushObject</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>ObjectID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Impulse</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>AngularImpulse</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Local</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Applies Impulse and AngularImpulse to ObjectID.\nApplies the supplied impulse and angular impulse to the object specified.</string>
+         </map>
+         <key>llRefreshPrimURL</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>20.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Reloads the web page shown on the sides of the object.</string>
+         </map>
+         <key>llRegionSay</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Channel</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Broadcasts Text to entire region on Channel (not 0.).\nSays the Text on the specified non-zero Channel, so that it can be heard anywhere in the region by a script listening on that channel.</string>
+         </map>
+         <key>llRegionSayTo</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>TargetID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Channel</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Says Text, on Channel, to avatar or object indicated by TargetID (if within region).\nSays the Text on the supplied channel number, to the object or avatar specified.</string>
+         </map>
+         <key>llReleaseCamera</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>AvatarID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Return camera to agent.\nDeprecated: Use llClearCameraParams instead.</string>
+         </map>
+         <key>llReleaseControls</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Stop taking inputs.\nStop taking inputs from the avatar.</string>
+         </map>
+         <key>llReleaseURL</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>URL</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Releases the specified URL, it will no longer be usable.</string>
+         </map>
+         <key>llRemoteDataReply</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>3.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>ChannelID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>MessageID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Data</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Data</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Send an XML-RPC reply to MessageID on ChannelID with payload of string sData and integer iData. Deprecated: Use HTTP functions/events instead.\nDeprecated: Use HTTP functions/events instead.\n
+				Send an XML-RPC reply to the request with kMessageID on kChannelID with payload of string sData and integer iData.\n
+				The size of sData is limited to 254 characters.</string>
+         </map>
+         <key>llRemoteDataSetRegion</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Deprecated: Use HTTP functions/events instead.\n
+				If an object using remote data channels changes regions, you must call this function to re-register the remote data channels.
+				You do not need to make this call if you don't change regions.\nDeprecated: Use HTTP functions/events instead.\n
+				Does not work! Use llOpenRemoteDataChannel instead.</string>
+         </map>
+         <key>llRemoteLoadScriptPin</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>3.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>ObjectID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>ScriptName</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>PIN</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Running</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>StartParameter</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>If the owner of the object this script is attached to can modify ObjectID, they are in the same region, and the matching PIN is used, copy ScriptName into target, if Running == TRUE, start the script with StartParameter.\nIf the owner of the object containing this script can modify the object identified by the specified object key, and if the PIN matches the PIN previously set using llSetRemoteScriptAccessPin (on the target prim), then the script will be copied into target.</string>
+         </map>
+         <key>llRemoveFromLandBanList</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>AvatarID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Remove avatar from the land ban list.\nRemove specified avatar from the land parcel ban list.</string>
+         </map>
+         <key>llRemoveFromLandPassList</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>AvatarID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Remove avatar from the land pass list.\nRemove specified avatar from the land parcel pass list.</string>
+         </map>
+         <key>llRemoveInventory</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>InventoryItem</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Remove the named inventory item.\nRemove the named inventory item from the object inventory.</string>
+         </map>
+         <key>llRemoveVehicleFlags</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Vehiclelags</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Removes the enabled bits in 'flags'.\nSets the vehicle flags to FALSE. Valid parameters can be found in the vehicle flags constants section.</string>
+         </map>
+         <key>llRequestAgentData</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.1</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <map>
+               <key>AvatarID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Data</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Requests data about AvatarID. When data is available the dataserver event will be raised.\nThis function requests data about an avatar. If and when the information is collected, the dataserver event is triggered with the key returned from this function passed in the requested parameter. See the agent data constants (DATA_*) for details about valid values of data and what each will return in the dataserver event.</string>
+         </map>
+         <key>llRequestDisplayName</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <map>
+               <key>AvatarID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Requests name of an avatar. When data is available, the dataserver event will be raised.\nRequests the Display Name of the agent. When the Display Name is available the dataserver event will be raised.\n
+				The avatar identified does not need to be in the same region or online at the time of the request.\n
+				Returns a key that is used to identify the dataserver event when it is raised.</string>
+         </map>
+         <key>llRequestInventoryData</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>1.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <map>
+               <key>InventoryItem</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Requests data from object's inventory object. When data is available the dataserver event will be raised.\nRequests data for the object inventory item named.\n
+				When data is available the dataserver event will be raised with the key returned from this function in the requested parameter.\n
+				The only request currently implemented is to request data from landmarks, where the data returned is in the form "&lt;float, float, float&gt;" which can be cast to a vector. This position is in region local coordinates.</string>
+         </map>
+         <key>llRequestPermissions</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>AvatarID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>PermmissionMask</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Ask AvatarID to allow the script to do PermmissionMask (NB: Debit, ownership, link, joint, and permission requests can only go to the task's owner).\nAsk avatar to allow the script to perform certain actions. The permission flag should be one or more PERMISSION_* constants.\n
+				Multiple permissions can be requested simultaneously by ORing the constants together. Many of the permissions requests can only go to object owner.\n
+				This call will not stop script execution. If the avatar grants the requested permissions, the run_time_permissions event will be called.\n
+				Permissions for a single avatar are granted to a script, not to an object. So multiple scripts can hold permissions for multiple avatars.</string>
+         </map>
+         <key>llRequestSecureURL</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Requests one HTTPS:// (SSL) URL for use by this object. An http_request event is triggered with the results.\nRequests one HTTPS:// (SSL) URL for use by this object. The http_request event is triggered with results.\n
+				Returns a key that is the handle used for identifying the request in the http_request event.</string>
+         </map>
+         <key>llRequestSimulatorData</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>1.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <map>
+               <key>RegionName</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Data</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Requests data about a simulator. When data is available the dataserver event will be raised.\nRequests data about the region named. Data should use one of the DATA_SIM_* constants.\n
+			Returns a dataserver query ID and triggers the dataserver event when data is found. The region name is usually not case-sensitive, but sometimes will return data for a similarly-named region if the supplied case doesn't match the intended region's actual name.</string>
+         </map>
+         <key>llRequestURL</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Requests one HTTP:// URL for use by this object. An http_request event is triggered with the results.\nRequests one HTTP:// URL for use by this script. The http_request event is triggered with the result of the request.\n
+				Returns a key that is the handle used for identifying the result in the http_request event.</string>
+         </map>
+         <key>llRequestUsername</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <map>
+               <key>AvatarID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Requests single-word user-name of an avatar. When data is available the dataserver event will be raised.\nRequests the user-name of the identified agent. When the user-name is available the dataserver event is raised.\nThe agent identified does not need to be in the same region or online at the time of the request.\nReturns a key that is used to identify the dataserver event when it is raised.</string>
+         </map>
+         <key>llResetAnimationOverride</key>
+         <map>
+            <key>energy</key>
+            <real>0</real>
+            <key>sleep</key>
+            <real>0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>AnimationState</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Resets the animation of the specified animation state to the default value.\nIf animation state equals "ALL", then all animation states are reset.</string>
+         </map>
+         <key>llResetLandBanList</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Removes all residents from the land ban list.</string>
+         </map>
+         <key>llResetLandPassList</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Removes all residents from the land access/pass list.</string>
+         </map>
+         <key>llResetOtherScript</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>ScriptName</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Resets the named script.</string>
+         </map>
+         <key>llResetScript</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Resets the script.</string>
+         </map>
+         <key>llResetTime</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Sets the time to zero.\nSets the internal timer to zero.</string>
+         </map>
+         <key>llReturnObjectsByID</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>lObjectIDs</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Return objects using their UUIDs</string>
+         </map>
+         <key>llReturnObjectsByOwner</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>kID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>iScope</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Return objects based upon their owner and a scope of parcel, parcel owner, or region.</string>
+         </map>
+         <key>llRezAtRoot</key>
+         <map>
+            <key>energy</key>
+            <real>200.0</real>
+            <key>sleep</key>
+            <real>0.1</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>InventoryItem</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Position</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Velocity</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Rotation</key>
+               <map>
+                  <key>type</key>
+                  <string>rotation</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>StartParameter</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Instantiate owner's InventoryItem at Position with Velocity, Rotation and with StartParameter. The last selected root object's location will be set to Position.\nCreates object's inventory item at the given Position, with Velocity, Rotation, and StartParameter.</string>
+         </map>
+         <key>llRezObject</key>
+         <map>
+            <key>energy</key>
+            <real>200</real>
+            <key>sleep</key>
+            <real>0.1</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>InventoryItem</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Position</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Velocity</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Rotation</key>
+               <map>
+                  <key>type</key>
+                  <string>rotation</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>StartParameter</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Instantiate owners InventoryItem at Position with Velocity, Rotation and with start StartParameter.\nCreates object's inventory item at Position with Velocity and Rotation supplied. The StartParameter value will be available to the newly created object in the on_rez event or through the llGetStartParameter function.\nThe Velocity parameter is ignored if the rezzed object is not physical.</string>
+         </map>
+         <key>llRot2Angle</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <map>
+               <key>Rotation</key>
+               <map>
+                  <key>type</key>
+                  <string>rotation</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the rotation angle represented by Rotation.\nReturns the angle represented by the Rotation.</string>
+         </map>
+         <key>llRot2Axis</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <map>
+               <key>Rotation</key>
+               <map>
+                  <key>type</key>
+                  <string>rotation</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the rotation axis represented by Rotation.\nReturns the axis represented by the Rotation.</string>
+         </map>
+         <key>llRot2Euler</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <map>
+               <key>Rotation</key>
+               <map>
+                  <key>type</key>
+                  <string>rotation</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the Euler representation (roll, pitch, yaw) of Rotation.\nReturns the Euler Angle representation of the Rotation.</string>
+         </map>
+         <key>llRot2Fwd</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <map>
+               <key>Rotation</key>
+               <map>
+                  <key>type</key>
+                  <string>rotation</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the forward vector defined by Rotation.\nReturns the forward axis represented by the Rotation.</string>
+         </map>
+         <key>llRot2Left</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <map>
+               <key>Rotation</key>
+               <map>
+                  <key>type</key>
+                  <string>rotation</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the left vector defined by Rotation.\nReturns the left axis represented by the Rotation.</string>
+         </map>
+         <key>llRot2Up</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <map>
+               <key>Rotation</key>
+               <map>
+                  <key>type</key>
+                  <string>rotation</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the up vector defined by Rotation.\nReturns the up axis represented by the Rotation.</string>
+         </map>
+         <key>llRotateTexture</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.2</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Radians</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Face</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the texture rotation for the chosen face.\nSets the rotation of the texture on the given side.\n
+				If face is ALL_SIDES, rotates the texture of all sides.</string>
+         </map>
+         <key>llRotBetween</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>rotation</string>
+            <key>arguments</key>
+            <map>
+               <key>Vector1</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Vector2</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the rotation to rotate Vector1 to Vector2.\nReturns the rotation needed to rotate Vector1 to Vector2.</string>
+         </map>
+         <key>llRotLookAt</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Rotation</key>
+               <map>
+                  <key>type</key>
+                  <string>rotation</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Strength</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Damping</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Cause object to point it's forward axis towards Rotation.\nCause object to rotate to Rotation. Good strength values are around half the mass of the object and good damping values are less than 1/10th of the strength.\n
+				Asymmetrical shapes require smaller damping.\n
+				A strength of 0.0 cancels the look at.</string>
+         </map>
+         <key>llRotTarget</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>Rotation</key>
+               <map>
+                  <key>type</key>
+                  <string>rotation</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>LeeWay</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Set rotations with error of LeeWay as a rotational target and return an ID for the rotational target.\nSet object rotation within the given lee way of rotation as a rotational target and return an integer number for the target.\n
+				The returned number is a handle that can be used in llRotTargetRemove.</string>
+         </map>
+         <key>llRotTargetRemove</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Handle</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Removes rotational target number.\nRemove rotational target indicated by the handle.</string>
+         </map>
+         <key>llRound</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>Value</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns Value rounded to the nearest integer.\nReturns the Value rounded to the nearest integer.</string>
+         </map>
+         <key>llSameGroup</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>ID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns TRUE if avatar ID is in the same region and has the same active group, otherwise FALSE.\nReturns TRUE if the object or agent identified is in the same simulator and has the same active group as this object. Otherwise, returns FALSE.</string>
+         </map>
+         <key>llSay</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Channel</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Says Text on Channel.\nSay Text on channel.\n
+			Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 to 2,147,483,648 are private channels that are not sent to avatars but other scripts can listen for through the llListen/listen event system.</string>
+         </map>
+         <key>llScaleTexture</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.2</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Horizontal</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Vertical</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Face</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the texture's S and T scales for the chosen Face.\nSets the Horizontal and Vertical repeats per Face on Face.\n
+				If Face == ALL_SIDES, all sides are set in one call.\n
+				Negative values for horizontal and vertical will flip the texture.</string>
+         </map>
+         <key>llScriptDanger</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>Position</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns TRUE if Position is over public land, sandbox land, land that doesn't allow everyone to edit and build, or land that doesn't allow outside scripts.\nReturns true if the position is over public land, land that doesn't allow everyone to edit and build, or land that doesn't allow outside scripts.</string>
+         </map>
+         <key>llScriptProfiler</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>State</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Enables or disables script profiling options. Currently only supports PROFILE_SCRIPT_MEMORY (Mono only) and PROFILE_NONE.\n
+				MAY SIGNIFICANTLY REDUCE SCRIPT PERFORMANCE!.\nEnables or disables the scripts profiling state.. Currently only supports PROFILE_SCRIPT_MEMORY (Mono only) and PROFILE_NONE.\n
+				MAY SIGNIFICANTLY REDUCE SCRIPT PERFORMANCE!.</string>
+         </map>
+         <key>llSendRemoteData</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>3.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <map>
+               <key>ChannelID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Destination</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Value</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Deprecated: use HTTP instead.\n
+				Sends an XML-RPC request to Destination through ChannelID with payload of ChannelID (in a string), integer Value and string Text.
+				Returns a key that is the message_id for the resulting remote_data events.\nSend an XML-RPC request to the Destination (probably an URL) through the ChannelID, with a payload of ChannelID (in a string), integer Value and string Text.</string>
+         </map>
+         <key>llSensor</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Name</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>ID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Type</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Range</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Arc</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Performs a single scan for Name and ID with Type (AGENT, ACTIVE, PASSIVE, and/or SCRIPTED) within Range meters and Arc radians of forward vector (Name, ID, and/or Type can be empty or 0).\nPerforms a single scan for Name and ID with Type within Range meters and Arc radians of the forward vector.\n
+				Specifying a blank Name or NULL_KEY ID will prevent filtering results for a particular Name or ID. A range of 0.0 does not perform a scan. The Type parameter should be an object type constant value.</string>
+         </map>
+         <key>llSensorRemove</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>removes sensor.\nRemoves the sensor set by llSensorRepeat.</string>
+         </map>
+         <key>llSensorRepeat</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Name</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>ID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Type</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Range</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Arc</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Rate</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets a callback for Name and ID with Type (AGENT, ACTIVE, PASSIVE, and/or SCRIPTED) within Range meters and Arc radians of forward vector (Name, ID, and/or Type can be empty or 0) and repeats every Rate seconds.\nPerforms a repeating sensor scan for Name and ID with Type within Range meters and Arc radians of the forward vector (Name and/or ID can be empty or NULL_KEY).\n
+				A range of 0.0m does not perform a scan. The parameters have the same function as llSensor, except Rate, which defines the number of seconds between repeated scans and subsequent sensor or no_sensor events.</string>
+         </map>
+         <key>llSetAlpha</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Opacity</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Face</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the alpha (opacity) of Face.\nSets the alpha (opacity) value for Face. If Face is ALL_SIDES, sets the alpha for all faces. The alpha value is interpreted as an opacity percentage (1.0 is fully opaque, and 0.2 is mostly transparent). This function will clamp alpha values less than 0.1 to 0.1 and greater than 1.0 to 1.</string>
+         </map>
+         <key>llSetAngularVelocity</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Force</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Local</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets an object's angular velocity, in local coordinates if local == TRUE (if the script is physical).\nApplies angular (rotational) velocity to a physical object. Has no effect on non-physical objects.</string>
+         </map>
+         <key>llSetAnimationOverride</key>
+         <map>
+            <key>energy</key>
+            <real>0</real>
+            <key>sleep</key>
+            <real>0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>AnimationState</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>AnimationName</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the animation (in object inventory) that will play for the given animation state.\nTo use this function the script must obtain the PERMISSION_OVERRIDE_ANIMATIONS permission.</string>
+         </map>
+         <key>llSetBuoyancy</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Buoyancy</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Set the tasks buoyancy (0 is none, &lt; 1.0 sinks, 1.0 floats, &gt; 1.0 rises).\nSet the object buoyancy. A value of 0 is none, less than 1.0 sinks, 1.0 floats, and greater than 1.0 rises.</string>
+         </map>
+         <key>llSetCameraAtOffset</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Offset</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the camera used in this object, at offset, if an avatar sits on it.\nSets the offset that an avatar's camera will be moved to if the avatar sits on the object.</string>
+         </map>
+         <key>llSetCameraEyeOffset</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Offset</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the camera eye offset used in this object if an avatar sits on it.</string>
+         </map>
+         <key>llSetCameraParams</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Parameters</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets multiple camera parameters at once. List format is [ rule-1, data-1, rule-2, data-2 . . . rule-n, data-n ].\nSets multiple camera parameters at once.\n
+				List format is [rule-1, value-1, rule-2, value-2 ... rule-N, value-N]</string>
+         </map>
+         <key>llSetClickAction</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Action</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the action performed when a prim is clicked upon.</string>
+         </map>
+         <key>llSetColor</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Colour</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Face</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the color, for the face.\nSets the colour of the side specified. If Face is ALL_SIDES, sets the colour on all faces.</string>
+         </map>
+         <key>llSetContentType</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>HTTPRequestID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>ContentType</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Set the media type of an LSL HTTP server response.</string>
+         </map>
+         <key>llSetDamage</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Damage</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the amount of damage that will be done to an avatar that this task hits.	Task will be killed.\nSets the amount of damage that will be done to an avatar that this object hits. This object will be destroyed on damaging an avatar, and no collision event is triggered.</string>
+         </map>
+         <key>llSetForce</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Force</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Local</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets Force on object, in local coordinates if Local == TRUE (if the script is physical).\nIf the object is physical, this function sets the force.\n
+				The vector is in local coordinates if local is TRUE, global if FALSE.</string>
+         </map>
+         <key>llSetForceAndTorque</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Force</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Torque</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Local</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the Force and Torque of object, in local coordinates if Local == TRUE (if the script is physical).\nIf the object is physical, this function sets the Force and Torque. The vectors are in local coordinates if Local is TRUE, global if FALSE.</string>
+         </map>
+         <key>llSetHoverHeight</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Height</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Water</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Tau</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Critically damps to a Height (either above ground level or above the higher of land and water if water == TRUE).\nCritically damps to a Height. The height is above ground and water (which ever is greater) if water is TRUE. Only works with physics-enabled objects.\n
+				Do not use with vehicles. Use llStopHover to stop hovering.</string>
+         </map>
+         <key>llSetInventoryPermMask</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>InventoryItem</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>PermissionFlag</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>PermissionMask</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the given permission mask to the new value on the inventory item.</string>
+         </map>
+         <key>llSetKeyframedMotion</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Keyframes</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Options</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Requests that a non-physical object be key-framed according to key-frame list.\nSpecify a list of times, positions, and orientations to be followed by an object. The object will be smoothly moved between key-frames by the simulator. Collisions with other non-physical or key-framed objects will be ignored (no script events will fire and collision processing will not occur). Collisions with physical objects will be computed and reported, but the key-framed object will be unaffected by those collisions.</string>
+         </map>
+         <key>llSetLinkAlpha</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>LinkNumber</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Opacity</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Face</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>If a prim exists in the link chain at LinkNumber, set Face to Opacity.\nSets the Face, on the linked prim specified, to the Opacity.</string>
+         </map>
+         <key>llSetLinkCamera</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>LinkNumber</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>EyeOffset</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>LookOffset</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the camera eye offset, and the offset that camera is looking at, for avatars that sit on the linked prim.</string>
+         </map>
+         <key>llSetLinkColor</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>LinkNumber</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Colour</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Face</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>If a task exists in the link chain at LinkNumber, set the Face to color.\nSets the colour of the linked child's side, specified by LinkNumber.</string>
+         </map>
+         <key>llSetLinkMedia</key>
+         <map>
+            <key>energy</key>
+            <real>0.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>Link</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Face</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Parameters</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Set the media parameters for a particular face on linked prim.	Parameters is a list of name/value pairs (in no particular order). If media is not already on this object, add it. Parameters not specified are unchanged, or if new media is added set to the default specified.\nSet the media parameters for a particular face on the linked prim(s) without a delay.\n
+				Returns an integer that is a STATUS_* flag which details the success/failure of the operation(s).</string>
+         </map>
+         <key>llSetLinkPrimitiveParams</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.2</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>LinkNumber</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Parameters</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Set primitive parameters for LinkNumber based on Parameters.\nSets the parameters (or properties) of any linked prim in one step.</string>
+         </map>
+         <key>llSetLinkPrimitiveParamsFast</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>LinkNumber</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Parameters</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Set primitive parameters for LinkNumber based on Parameters, without a delay.\nSet parameters for link number, from the list of Parameters, with no built-in script sleep. This function is identical to llSetLinkPrimitiveParams, except without the delay.</string>
+         </map>
+         <key>llSetLinkTexture</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.2</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>LinkNumber</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Texture</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Face</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the Texture of Face for LinkNumber.\nSets the Texture of linked prims.</string>
+         </map>
+         <key>llSetLinkTextureAnim</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>LinkNumber</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Mode</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Face</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>SizeX</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>SizeY</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Start</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Length</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Rate</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Animate the texture on the specified prim's face/faces.\nAnimate the texture on the specified face/faces of the specified prim/prims by setting the texture scale and offset.\n
+				Identical to llSetTextureAnim except able to modify any prim in the link set.</string>
+         </map>
+         <key>llSetLocalRot</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.2</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Rotation</key>
+               <map>
+                  <key>type</key>
+                  <string>rotation</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the rotation of a child prim relative to the root prim.</string>
+         </map>
+         <key>llSetMemoryLimit</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>Limit</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Request Limit bytes to be reserved for this script. This function has no effect if the script is running in the LSO VM.\nRequest Limit bytes to be reserved for this script. This function has no effect if the script is running in the LSO VM.\n
+				Return TRUE or FALSE indicating whether the limit was set successfully.</string>
+         </map>
+         <key>llSetObjectDesc</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Description</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the object's description.\nSets the description of the scripted prim. You can get the description using llGetObjectDesc.\n
+				The description is limited to 127 characters.</string>
+         </map>
+         <key>llSetObjectName</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Name</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the object's name.</string>
+         </map>
+         <key>llSetObjectPermMask</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>PermissionFlag</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>PermissionMask</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the given permission mask to the new value on the root object the task is attached to.</string>
+         </map>
+         <key>llSetParcelMusicURL</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>2.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>URL</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the streaming audio URL for the parcel object is on.\nSets the streaming audio URL for the parcel the scripted object is on (the object must be owned by the owner of the parcel, if the parcel is group owned the object must be owned by that group).</string>
+         </map>
+         <key>llSetPayPrice</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Price</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>QuickButtons</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the default amount when someone chooses to pay this object.\nSets the values of the buttons and the text box default for the Pay dialogue, when a user right-clicks on the object and selects "Pay".\n
+				llSetPayPrice will affect what buttons exist, what their values are, and whether or not there is a manual payment text entry box.</string>
+         </map>
+         <key>llSetPhysicsMaterial</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>MaterialBits</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>GravityMultiplier</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Restitution</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Friction</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Density</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the requested attributes of the root object's physics material.</string>
+         </map>
+         <key>llSetPos</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.2</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Position</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the position (if the script isn't physical).\nIf the object is not physical, this function sets the position in region coordinates. If the object is a child prim, the position is treated as root relative and the link-set is adjusted.</string>
+         </map>
+         <key>llSetPrimitiveParams</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.2</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Parameters</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Set primitive parameters.\nThis function changes the many properties (or "parameters") of a prim in one operation. The Parameters are a list of changes.</string>
+         </map>
+         <key>llSetPrimMediaParams</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.1</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>Face</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>MediaParameters</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the MediaParameters for a particular Face on an object. If media is not already on this object, add it.
+				MediaParameters is a set of name/value pairs in no particular order. Parameters not specified are unchanged, or if new media is added then set to the default specified.\nSet the MediaParameters for a particular face.\n
+				Returns an integer that is a STATUS_* flag which details the success/failure of the operation(s).</string>
+         </map>
+         <key>llSetPrimURL</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>20.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>URL</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Deprecated: Use llSetPrimMediaParams instead.\nDeprecated: Use llSetPrimMediaParams instead. Updates the URL for the web page shown on the sides of the object.</string>
+         </map>
+         <key>llSetRegionPos</key>
+         <map>
+            <key>energy</key>
+            <real>0.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>Position</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the Position anywhere within the region (if the object isn't physical).\nTries to moves the entire object so that the root prim is within 0.1m of Position.\n
+				Returns an integer boolean, TRUE if the object is successfully placed within 0.1 m of Position, FALSE otherwise.\n
+				The object with the script will move the root prim position to the given location. The position is any position within the region. If the position is below ground, it will be set to the ground level at that x,y location. The function has no delay or throttle.</string>
+         </map>
+         <key>llSetRemoteScriptAccessPin</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.2</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>PIN</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>If PIN is set to a non-zero number, the task will accept remote script loads via llRemoteLoadScriptPin if it passes in the correct PIN. Othersise, llRemoteLoadScriptPin is ignored.\nIf PIN is set to a non-zero number, the task will accept remote script loads via llRemoteLoadScriptPin if passed the matching PIN. Otherwise llRemoteLoadScriptPin is ignored</string>
+         </map>
+         <key>llSetRot</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.2</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Rotation</key>
+               <map>
+                  <key>type</key>
+                  <string>rotation</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the rotation (if the script isn't physical).\nIf the object is not physical, this function sets the rotation.\n
+				If the script is in a child prim, the position is treated as root relative and the linked set is adjusted.</string>
+         </map>
+         <key>llSetScale</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Scale</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the scale.\nSets the prim's scale (size).</string>
+         </map>
+         <key>llSetScriptState</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>ScriptName</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Running</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Control the state of a named script.\nControl the state of a script in the prim.</string>
+         </map>
+         <key>llSetSitText</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Displays Text rather than "Sit" in context menu.\nDisplays Text rather than 'Sit' in the viewer's menu.</string>
+         </map>
+         <key>llSetSoundQueueing</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>QueueEnable</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Determines whether attached sound calls wait for the current sound to finish (0 = no [default], non-zero = yes).\nSets whether successive calls to llPlaySound, llLoopSound, etc., (attached sounds) interrupt the playing sound.\n
+				The default for objects is FALSE. Setting this value to TRUE will make the sound wait until the current playing sound reaches its end. The queue is one level deep.</string>
+         </map>
+         <key>llSetSoundRadius</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Radius</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Establishes a hard cut-off radius for audibility of scripted sounds (both attached and triggered).</string>
+         </map>
+         <key>llSetStatus</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Status</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Value</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets status (STATUS_PHYSICS, STATUS_PHANTOM, STATUS_BLOCK_GRAB, STATUS_ROTATE_X, STATUS_ROTATE_Y, and/or STATUS_ROTATE_Z) to value.\nSets the Status to Value. Use STATUS_* constants for the values of status.</string>
+         </map>
+         <key>llSetText</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Colour</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Opacity</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Set text floating over object.\nSets the text that floats above the object, using the specified colour and opacity level.</string>
+         </map>
+         <key>llSetTexture</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.2</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Texture</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Face</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the Texture of Face.\nSets the Texture of Face. If Face is ALL_SIDES, set the texture on all faces.</string>
+         </map>
+         <key>llSetTextureAnim</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Mode</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Face</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>SizeX</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>SizeY</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Start</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Length</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Rate</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Animate the texture on the specified face/faces.\nAnimates a texture by setting the texture scale and offset.</string>
+         </map>
+         <key>llSetTimerEvent</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Rate</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Cause the timer event to be triggered every Rate seconds.\nSets the timer event to be triggered at the specified Rate, in seconds.\n
+				Passing in 0.0 stops further timer events.</string>
+         </map>
+         <key>llSetTorque</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Torque</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Local</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the Torque of object, in local coordinates if Local == TRUE (if the script is physical).\nIf the object is physical, this function sets the torque.\n
+			The vector is in local coordinates if Local is TRUE, global if FALSE.</string>
+         </map>
+         <key>llSetTouchText</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Displays Text in the menu that acts on a touch.\nDisplays Text in the viewer context menu that acts on a touch.</string>
+         </map>
+         <key>llSetVehicleFlags</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Flags</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the enabled bits in 'flags'.\nSets the vehicle flags to TRUE.\nValid parameters can be found in the vehicle flags constants section.</string>
+         </map>
+         <key>llSetVehicleFloatParam</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>ParameterName</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>ParameterValue</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the specified vehicle float parameter.\nSets the vehicle floating point parameter.\n
+				Valid parameters and their expected values can be found in the vehicle parameter constants section.</string>
+         </map>
+         <key>llSetVehicleRotationParam</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>ParameterName</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>ParameterValue</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the specified vehicle rotation parameter.\nSets the vehicle rotation parameter.\n
+				Valid parameters can be found in the vehicle parameter constants section.</string>
+         </map>
+         <key>llSetVehicleType</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Type</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets vehicle to one of the default types.\nActivates the vehicle action and choose vehicle Type.\n
+				Valid Types and an explanation of their characteristics can be found in the vehicle type constants section.</string>
+         </map>
+         <key>llSetVehicleVectorParam</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>ParameterName</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>ParameterValue</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the specified vehicle vector parameter.\nSets the vehicle vector parameter.\nValid parameters can be found in the vehicle parameter constants section.</string>
+         </map>
+         <key>llSetVelocity</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Force</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Local</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets an objects velocity, in local coordinates if Local == TRUE (if the script is physical).\nApplies Force to a physical object.</string>
+         </map>
+         <key>llSHA1String</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns a string of 40 hex characters that is the SHA1 security Hash of Text.\nReturns a string of 40 hex characters that is the SHA1 security hash of the supplied string.</string>
+         </map>
+         <key>llShout</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Channel</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>shouts Text on Channel.\nShout Text on Channel. Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 to 2,147,483,648 are private channels that are not sent to avatars but other scripts can listen for through the llListen function.</string>
+         </map>
+         <key>llSin</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <map>
+               <key>Theta</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the sine of Theta (Theta in radians).\nReturns the sine of Theta in radians.</string>
+         </map>
+         <key>llSitTarget</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Offset</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Rotation</key>
+               <map>
+                  <key>type</key>
+                  <string>rotation</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Set the sit location for this object (if offset == &lt;0,0,0&gt; clear it).\nSet the sit location for this object. If offset == ZERO_VECTOR, clears the sit target.</string>
+         </map>
+         <key>llSleep</key>
+         <map>
+            <key>energy</key>
+            <real>0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Time</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Put script to sleep for Time seconds.\nPuts the script to sleep for time specified, in seconds.</string>
+         </map>
+         <key>llSound</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Sound</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Volume</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Queue</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Loop</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Deprecated: Use llPlaySound instead.\nDeprecated: Use llPlaySound instead.\nPlays Sound at Volume and specifies whether it should loop or not.</string>
+         </map>
+         <key>llSoundPreload</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Sound</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Deprecated: Use llPreloadSound instead.\nDeprecated: Use llPreloadSound instead.\nPreloads a sound on viewers within range.</string>
+         </map>
+         <key>llSqrt</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <map>
+               <key>Value</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the square root of Value, or returns 0 and triggers a Math Error for imaginary results.\nReturns the square root of the value. If the value is less than 0.0, this function returns 0.0 and raises a maths runtime error.</string>
+         </map>
+         <key>llStartAnimation</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Animation</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Start Animation for agent that owns object.\nThis function starts the animation for the last avatar that granted the object PERMISSION_TRIGGER_ANIMATION permission.</string>
+         </map>
+         <key>llStopAnimation</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Animation</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Stop Animation for agent that owns object.\nThis function stops the animation for the last avatar that granted the object PERMISSION_TRIGGER_ANIMATION permission.</string>
+         </map>
+         <key>llStopHover</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Stop hovering to a height.\nStop hovering at a height.</string>
+         </map>
+         <key>llStopLookAt</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Stop causing object to point at a target.\nStop causing object to look at target.</string>
+         </map>
+         <key>llStopMoveToTarget</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Stops critically damped motion.</string>
+         </map>
+         <key>llStopSound</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Stops currently attached sound.\nStops the currently playing attached sound started with llPlaySound or llLoopSound. Has no effect on sounds started with llTriggerSound.</string>
+         </map>
+         <key>llStringLength</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the length of string.\nReturns the number of characters in the specified text.</string>
+         </map>
+         <key>llStringToBase64</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Converts a string to the Base64 representation of the string.\nConverts a string to the Base 64 representation of the string.</string>
+         </map>
+         <key>llStringTrim</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>TrimType</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Trims the leading and/or trailing white spaces from a string.\n
+				TrimType can be STRING_TRIM, STRING_TRIM_HEAD or STRING_TRIM_TAIL.\nOutputs a string, eliminating white-space from the start and/or end of the specified string.\n
+				Constants for trim_type:\n
+				STRING_TRIM_HEAD: trim all leading spaces in text\n
+				STRING_TRIM_TAIL: trim all trailing spaces in text\n
+				STRING_TRIM: trim all leading and trailing spaces in text</string>
+         </map>
+         <key>llSubStringIndex</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Sequence</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns an integer that is the index in source where pattern first appears. Returns -1 if not found.\nReturns an index of the text where the sequence of characters first appears.\n
+				Returns -1 if no match is found.</string>
+         </map>
+         <key>llTakeCamera</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>AvatarID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Deprecated: Use llSetCameraParams instead.\nDeprecated: Use llSetCameraParams instead. Move avatar's viewpoint to task.</string>
+         </map>
+         <key>llTakeControls</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Controls</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Accept</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>PassOn</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Take controls from agent task has permissions for.	If (Accept == (controls &amp; input)), send input to task.	If PassOn send to agent also.\nRequires the PERMISSION_TAKE_CONTROLS permission to run.</string>
+         </map>
+         <key>llTan</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <map>
+               <key>Theta</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the tangent of Theta (Theta in radians).\nReturns the tangent of Theta radians.</string>
+         </map>
+         <key>llTarget</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>Position</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Range</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets positions within range of position as a target and return an ID for the target.\nSet object position, within range of position, as a target and returns an integer ID for the target.</string>
+         </map>
+         <key>llTargetOmega</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Axis</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>SpinRate</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Gain</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Attempt to spin at SpinRate with strength Gain.\nAttempt to spin at SpinRate with strength Gain on axis.\n
+			A spin-rate of 0.0 cancels the spin. This function always works in object local coordinates.</string>
+         </map>
+         <key>llTargetRemove</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Target</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Removes target number.\nRemove target number.</string>
+         </map>
+         <key>llTeleportAgent</key>
+         <map>
+            <key>energy</key>
+            <real>0</real>
+            <key>sleep</key>
+            <real>0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>AvatarID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>LandmarkName</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Position</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>LookAtPoint</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Requests a teleport of avatar to a landmark stored in the object's inventory. If no landmark is provided (an empty string), the avatar is teleported to the location position in the current region. In either case, the avatar is turned to face the position given by look_at in local coordinates.
+				Requires the PERMISSION_TELEPORT permission. This function can only teleport the owner of the object.</string>
+         </map>
+         <key>llTeleportAgentGlobalCoords</key>
+         <map>
+            <key>energy</key>
+            <real>0</real>
+            <key>sleep</key>
+            <real>0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>AvatarID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>GlobalPosition</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>RegionPosition</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>LookAtPoint</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Teleports an agent to set of a region_coordinates within a region at the specified global_coordinates. The agent lands facing the position defined by look_at local coordinates.</string>
+         </map>
+         <key>llTeleportAgentHome</key>
+         <map>
+            <key>energy</key>
+            <real>100.0</real>
+            <key>sleep</key>
+            <real>5.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>AvatarID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Teleports agent on owner's land to agent's home location.\nTeleport agent over the owner's land to agent's home location.</string>
+         </map>
+         <key>llTextBox</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>1.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>AvatarID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Channel</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Shows a dialog box on the avatar's screen with the message. A text box asks for input, and if entered the Text is chatted on Channel.\nShows a dialogue box on avatar's screen with the text message.\n
+				It contains a text box for input. Any text that is entered is said on the specified channel (as if by the avatar) when the "OK" button is clicked.</string>
+         </map>
+         <key>llToLower</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns a string that is Text with all lower-case characters.\nReturns Text in all lower case.</string>
+         </map>
+         <key>llToUpper</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns a string that is Text with all upper-case characters.\nReturns Text in all upper case.</string>
+         </map>
+         <key>llTransferLindenDollars</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <map>
+               <key>AvatarID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Amount</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Transfer Amount of linden dollars (L$) from script owner to AvatarID. Returns a key to a corresponding transaction_result event for the success of the transfer.\nAttempts to send the amount of money to the specified avatar, and trigger a transaction_result event identified by the returned key.</string>
+         </map>
+         <key>llTriggerSound</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Sound</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Volume</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Plays Sound at Volume (0.0 - 1.0), centered at but not attached to object.\nPlays a transient sound NOT attached to an object.\n
+				The sound plays from a stationary position located at the centre of the object at the time of the triggering.\n
+				There is no limit to the number of triggered sounds which can be generated by an object, and calling llTriggerSound does not affect the attached sounds created by llPlaySound and llLoopSound. This is very useful for things like collision noises, explosions, etc. There is no way to stop or alter the volume of a sound triggered by this function.</string>
+         </map>
+         <key>llTriggerSoundLimited</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Sound</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Volume</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>TNE</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>BSW</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Plays Sound at Volume (0.0 - 1.0), centered at but not attached to object, limited to axis-aligned bounding box defined by vectors top-north-east (TNE) and bottom-south-west (BSW).\nPlays a transient sound NOT attached to an object, with its audible range limited by the axis-aligned bounding box define by TNE (top-north-east) and BSW (bottom-south-west).\n
+				The sound plays from a stationary position located at the centre of the object at the time of the triggering.\n
+				There is no limit to the number of triggered sounds which can be generated by an object, and calling llTriggerSound does not affect the attached sounds created by llPlaySound and llLoopSound. This is very useful for things like collision noises, explosions, etc. There is no way to stop or alter the volume of a sound triggered by this function.</string>
+         </map>
+         <key>llUnescapeURL</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>URL</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns an unescaped/ unencoded version of URL, replacing %20 with spaces etc.\nReturns the string that is the URL unescaped, replacing "%20" with spaces, etc., version of URL.\n
+				The function can output raw UTF-8 strings.</string>
+         </map>
+         <key>llUnSit</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>AvatarID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>If agent identified by AvatarID is sitting on the object the script is attached to or is over land owned by the objects owner, the agent is forced to stand up.\nIf the agent identified is sitting on the object the script is attached to or is over land owned by the objects owner, the agent is forced to stand up.</string>
+         </map>
+         <key>llUpdateCharacter</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Options</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Change the character's settings.\nUpdates settings for a character.</string>
+         </map>
+         <key>llVecDist</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <map>
+               <key>Location1</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Location2</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the 3D distance between Location1 and Location2.\nReturns the distance from location 1 to location 2.</string>
+         </map>
+         <key>llVecMag</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <map>
+               <key>Vector</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the magnitude of Vector.\nReturns the magnitude of the vector.</string>
+         </map>
+         <key>llVecNorm</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <map>
+               <key>Vector</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the v normalized.\nReturns normalized vector.</string>
+         </map>
+         <key>llVolumeDetect</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>DetectEnabled</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>If DetectEnabled = TRUE, object becomes phantom but triggers collision_start and collision_end events when other objects start and stop interpenetrating. Must be applied to the root object.\nWhen detect = TRUE, this makes the entire link set the script is attached to phantom. If another object (including avatars) interpenetrates it, it will get a collision_start event.\n
+				When an object stops interpenetrating, a collision_end event is generated. While the other is inter-penetrating, collision events are NOT generated. The script must be applied to the root object of the link set to get the collision events.\n
+				Collision filters work normally.</string>
+         </map>
+         <key>llWanderWithin</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Origin</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Area</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Options</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Wander within a specified volume.\nSets a character to wander about a central spot within a specified area.</string>
+         </map>
+         <key>llWater</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <map>
+               <key>Offset</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the water height below the object position + offset.\nReturns the water height at the object's position + offset.</string>
+         </map>
+         <key>llWhisper</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Channel</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Whispers Text on Channel.\nWhisper Text on Channel. Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 to 2,147,483,648 are private channels that are not sent to avatars but other scripts can listen for through the llListen function.</string>
+         </map>
+         <key>llWind</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <map>
+               <key>Offset</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the wind velocity at the object position + offset.\nReturns the wind velocity at the object's position + offset.</string>
+         </map>
+         <key>llXorBase64Strings</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.3</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>Text1</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Text2</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Deprecated: Please use llXorBase64StringsCorrect instead.\n
+				Incorrectly performs an exclusive OR on two Base64 strings and returns a Base64 string.	Text2 repeats if it is shorter than Text1.	Retained for backwards compatibility.\nDeprecated: Use llXorBase64StringsCorrect instead.\nIncorrectly performs an exclusive OR on two Base64 strings and returns a Base64 string.</string>
+         </map>
+         <key>llXorBase64StringsCorrect</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>Text1</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Text2</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Correctly performs an exclusive OR on two Base64 strings and returns a Base64 string.\n
+				Text2 repeats if it is shorter than Text1.\nPerforms an exclusive-OR on two Base64 strings and returns a Base64 string. text-2 repeats if it is shorter than text-1.\n
+				This function is for encrypting data. Put your data in text-1 and your key in text-2 to encrypt or put the encrypted data into text-1 with the same key in text-2 to decrypt again.</string>
+         </map>
+      </map>
+   </map>
+</llsd>
\ No newline at end of file
diff --git a/indra/newview/app_settings/keywords_lsl_tokens.xml b/indra/newview/app_settings/keywords_lsl_tokens.xml
deleted file mode 100644
index 6806f80169..0000000000
--- a/indra/newview/app_settings/keywords_lsl_tokens.xml
+++ /dev/null
@@ -1,16865 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?><?xml-model href="llsd-lsl-syntax.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
-<llsd>
-   <map>
-      <key>controls</key>
-      <map>
-         <key>default</key>
-         <map>
-            <key>tooltip</key>
-            <string>All scripts must have a default state, which is the first state entered when the script starts.\nIf another state is defined before the default state, the compiler will report a syntax error.</string>
-         </map>
-         <key>do</key>
-         <map>
-            <key>tooltip</key>
-            <string>do / while loop\ndo {\n...\n} while (&lt;condition&gt;);</string>
-         </map>
-         <key>else</key>
-         <map>
-            <key>tooltip</key>
-            <string>if / else block\nif (&lt;condition&gt;) {\n...\n[} else [if (&lt;condition&gt;) {\n...]]\n}</string>
-         </map>
-         <key>for</key>
-         <map>
-            <key>tooltip</key>
-            <string>for loop\nfor (&lt;initialiser&gt;; &lt;condition&gt;; &lt;post-iteration-statement&gt;)\n{ ...\n}</string>
-         </map>
-         <key>if</key>
-         <map>
-            <key>tooltip</key>
-            <string>if / else block\nif (&lt;condition&gt;) {\n...\n[} else [if (&lt;condition&gt;) {\n...]]\n}</string>
-         </map>
-         <key>jump</key>
-         <map>
-            <key>tooltip</key>
-            <string>jump statement\njump &lt;label&gt;</string>
-         </map>
-         <key>return</key>
-         <map>
-            <key>tooltip</key>
-            <string>Leave current event or function.\nreturn [&lt;variable&gt;];\nOptionally pass back a variable's value, from a function.</string>
-         </map>
-         <key>state</key>
-         <map>
-            <key>tooltip</key>
-            <string>state &lt;target&gt;\nIf the target state is not the same as the current one, change to the target state.</string>
-         </map>
-         <key>while</key>
-         <map>
-            <key>tooltip</key>
-            <string>while loop\nwhile (&lt;condition&gt;) {\n,,,\n}</string>
-         </map>
-      </map>
-      <key>types</key>
-      <map>
-         <key>float</key>
-         <map>
-            <key>tooltip</key>
-            <string>32 bit floating point value.\nThe range is 1.175494351E-38 to 3.402823466E+38.</string>
-         </map>
-         <key>integer</key>
-         <map>
-            <key>tooltip</key>
-            <string>32 bit integer value.\n−2,147,483,648 and +2,147,483,647 (that is 0x80000000 to 0x7FFFFFFF in hex).</string>
-         </map>
-         <key>key</key>
-         <map>
-            <key>tooltip</key>
-            <string>A 128 bit unique identifier (UUID).\nThe key is represented as hexidecimal characters (A-F and 0-9), grouped into sections (8,4,4,4,12 characters) and separated by hyphens (for a total of 36 characters). e.g. "A822FF2B-FF02-461D-B45D-DCD10A2DE0C2".</string>
-         </map>
-         <key>list</key>
-         <map>
-            <key>tooltip</key>
-            <string>A collection of other data types.\nLists are signified by square brackets surrounding their elements; the elements inside are separated by commas. e.g. [0, 1, 2, 3, 4] or ["Yes", "No", "Perhaps"].</string>
-         </map>
-         <key>quaternion</key>
-         <map>
-            <key>tooltip</key>
-            <string>The quaternion type is a left over from way back when LSL was created. It was later renamed to &lt;rotation&gt; to make it more user friendly, but it appears someone forgot to remove it ;-)</string>
-         </map>
-         <key>rotation</key>
-         <map>
-            <key>tooltip</key>
-            <string>The rotation type is one of several ways to represent an orientation in 3D.\nIt is a mathematical object called a quaternion. You can think of a quaternion as four numbers (x, y, z, w), three of which represent the direction an object is facing and a fourth that represents the object's banking left or right around that direction.</string>
-         </map>
-         <key>string</key>
-         <map>
-            <key>tooltip</key>
-            <string>Text data.\nThe editor accepts UTF-8 encoded text.</string>
-         </map>
-         <key>vector</key>
-         <map>
-            <key>tooltip</key>
-            <string>A vector is a data type that contains a set of three float values.\nVectors are used to represent colours (RGB), positions, and directions/velocities.</string>
-         </map>
-      </map>
-      <key>constants</key>
-      <map>
-         <key>ACTIVE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x2</integer>
-            <key>tooltip</key>
-            <string>Objects in world that are running a script or currently physically moving.</string>
-         </map>
-         <key>AGENT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x1</integer>
-            <key>tooltip</key>
-            <string>Objects in world that are agents.</string>
-         </map>
-         <key>AGENT_ALWAYS_RUN</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x1000</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>AGENT_ATTACHMENTS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x2</integer>
-            <key>tooltip</key>
-            <string>The agent has attachments.</string>
-         </map>
-         <key>AGENT_AUTOPILOT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x2000</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>AGENT_AWAY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x40</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>AGENT_BUSY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x800</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>AGENT_BY_LEGACY_NAME</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>AGENT_BY_USERNAME</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x10</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>AGENT_CROUCHING</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x400</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>AGENT_FLYING</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x1</integer>
-            <key>tooltip</key>
-            <string>The agent is flying.</string>
-         </map>
-         <key>AGENT_IN_AIR</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x100</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>AGENT_LIST_PARCEL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>Agents on the same parcel where the script is running.</string>
-         </map>
-         <key>AGENT_LIST_PARCEL_OWNER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>Agents on any parcel in the region where the parcel owner is the same as the owner of the parcel under the scripted object.</string>
-         </map>
-         <key>AGENT_LIST_REGION</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string>All agents in the region.</string>
-         </map>
-         <key>AGENT_MOUSELOOK</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x8</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>AGENT_ON_OBJECT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x20</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>AGENT_SCRIPTED</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x4</integer>
-            <key>tooltip</key>
-            <string>The agent has scripted attachments.</string>
-         </map>
-         <key>AGENT_SITTING</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x10</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>AGENT_TYPING</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x200</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>AGENT_WALKING</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x80</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>ALL_SIDES</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>-1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>ANIM_ON</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x1</integer>
-            <key>tooltip</key>
-            <string>Texture animation is on.</string>
-         </map>
-         <key>ATTACH_AVATAR_CENTER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>40</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's geometric centre.</string>
-         </map>
-         <key>ATTACH_BACK</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>9</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's back.</string>
-         </map>
-         <key>ATTACH_BELLY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>28</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's belly.</string>
-         </map>
-         <key>ATTACH_CHEST</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's chest.</string>
-         </map>
-         <key>ATTACH_CHIN</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>12</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's chin.</string>
-         </map>
-         <key>ATTACH_HEAD</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's head.</string>
-         </map>
-         <key>ATTACH_HUD_BOTTOM</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>37</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>ATTACH_HUD_BOTTOM_LEFT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>36</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>ATTACH_HUD_BOTTOM_RIGHT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>38</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>ATTACH_HUD_CENTER_1</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>35</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>ATTACH_HUD_CENTER_2</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>31</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>ATTACH_HUD_TOP_CENTER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>33</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>ATTACH_HUD_TOP_LEFT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>34</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>ATTACH_HUD_TOP_RIGHT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>32</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>ATTACH_LEAR</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>13</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's left ear.</string>
-         </map>
-         <key>ATTACH_LEFT_PEC</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>29</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's left pectoral.</string>
-         </map>
-         <key>ATTACH_LEYE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>15</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's left eye.</string>
-         </map>
-         <key>ATTACH_LFOOT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>7</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's left foot.</string>
-         </map>
-         <key>ATTACH_LHAND</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's left hand.</string>
-         </map>
-         <key>ATTACH_LHIP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>25</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's left hip.</string>
-         </map>
-         <key>ATTACH_LLARM</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>21</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's left lower arm.</string>
-         </map>
-         <key>ATTACH_LLLEG</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>27</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's lower left leg.</string>
-         </map>
-         <key>ATTACH_LPEC</key>
-         <map>
-            <key>deprecated</key>
-            <boolean>true</boolean>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>30</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's right pectoral. (Deprecated, use ATTACH_RIGHT_PEC)</string>
-         </map>
-         <key>ATTACH_LSHOULDER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's left shoulder.</string>
-         </map>
-         <key>ATTACH_LUARM</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>20</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's left upper arm.</string>
-         </map>
-         <key>ATTACH_LULEG</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>27</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's lower upper leg.</string>
-         </map>
-         <key>ATTACH_MOUTH</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>11</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's mouth.</string>
-         </map>
-         <key>ATTACH_NECK</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>39</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's neck.</string>
-         </map>
-         <key>ATTACH_NOSE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>17</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's nose.</string>
-         </map>
-         <key>ATTACH_PELVIS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>10</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's pelvis.</string>
-         </map>
-         <key>ATTACH_REAR</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>14</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's right ear.</string>
-         </map>
-         <key>ATTACH_REYE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>16</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's right eye.</string>
-         </map>
-         <key>ATTACH_RFOOT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>8</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's right foot.</string>
-         </map>
-         <key>ATTACH_RHAND</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>6</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's right hand.</string>
-         </map>
-         <key>ATTACH_RHIP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>22</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's right hip.</string>
-         </map>
-         <key>ATTACH_RIGHT_PEC</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>30</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's right pectoral.</string>
-         </map>
-         <key>ATTACH_RLARM</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>19</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's right lower arm.</string>
-         </map>
-         <key>ATTACH_RLLEG</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>24</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's right lower leg.</string>
-         </map>
-         <key>ATTACH_RPEC</key>
-         <map>
-            <key>deprecated</key>
-            <boolean>true</boolean>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>29</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's left pectoral. (deprecated, use ATTACH_LEFT_PEC)</string>
-         </map>
-         <key>ATTACH_RSHOULDER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's right shoulder.</string>
-         </map>
-         <key>ATTACH_RUARM</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>18</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's right upper arm.</string>
-         </map>
-         <key>ATTACH_RULEG</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>23</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's right upper leg.</string>
-         </map>
-         <key>AVOID_CHARACTERS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>AVOID_DYNAMIC_OBSTACLES</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CAMERA_ACTIVE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>12</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CAMERA_BEHINDNESS_ANGLE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>8</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CAMERA_BEHINDNESS_LAG</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>9</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CAMERA_DISTANCE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>7</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CAMERA_FOCUS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>17</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CAMERA_FOCUS_LAG</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>6</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CAMERA_FOCUS_LOCKED</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>22</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CAMERA_FOCUS_OFFSET</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CAMERA_FOCUS_THRESHOLD</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>11</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CAMERA_PITCH</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CAMERA_POSITION</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>13</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CAMERA_POSITION_LAG</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>6</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CAMERA_POSITION_LOCKED</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>22</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CAMERA_POSITION_THRESHOLD</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>10</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CHANGED_ALLOWED_DROP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x40</integer>
-            <key>tooltip</key>
-            <string>The object inventory has changed because an item was added through the llAllowInventoryDrop interface.</string>
-         </map>
-         <key>CHANGED_COLOR</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x2</integer>
-            <key>tooltip</key>
-            <string>The object colour has changed.</string>
-         </map>
-         <key>CHANGED_INVENTORY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x1</integer>
-            <key>tooltip</key>
-            <string>The object inventory has changed.</string>
-         </map>
-         <key>CHANGED_LINK</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x20</integer>
-            <key>tooltip</key>
-            <string>The object has linked or its links were broken.</string>
-         </map>
-         <key>CHANGED_MEDIA</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2048</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CHANGED_OWNER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x80</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CHANGED_REGION</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x100</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CHANGED_REGION_START</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x400</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CHANGED_SCALE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x8</integer>
-            <key>tooltip</key>
-            <string>The object scale (size) has changed.</string>
-         </map>
-         <key>CHANGED_SHAPE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x4</integer>
-            <key>tooltip</key>
-            <string>The object base shape has changed, e.g., a box to a cylinder.</string>
-         </map>
-         <key>CHANGED_TELEPORT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x200</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CHANGED_TEXTURE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x10</integer>
-            <key>tooltip</key>
-            <string>The texture offset, scale rotation, or simply the object texture has changed.</string>
-         </map>
-         <key>CHARACTER_ACCOUNT_FOR_SKIPPED_FRAMES</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>14</integer>
-            <key>tooltip</key>
-            <string>If set to false, character will not attempt to catch up on lost time when pathfinding performance is low, potentially providing more reliable movement (albeit while potentially appearing to be more stuttery). Default is true to match pre-existing behavior.</string>
-         </map>
-         <key>CHARACTER_AVOIDANCE_MODE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string>Allows you to specify that a character should not try to avoid other characters, should not try to avoid dynamic obstacles (relatively fast moving objects and avatars), or both.</string>
-         </map>
-         <key>CHARACTER_CMD_JUMP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x01</integer>
-            <key>tooltip</key>
-            <string>Makes the character jump. Requires an additional parameter, the height to jump, between 0.1m and 2.0m. This must be provided as the first element of the llExecCharacterCmd option list.</string>
-         </map>
-         <key>CHARACTER_CMD_SMOOTH_STOP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CHARACTER_CMD_STOP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x00</integer>
-            <key>tooltip</key>
-            <string>Stops any current pathfinding operation.</string>
-         </map>
-         <key>CHARACTER_DESIRED_SPEED</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>Speed of pursuit in meters per second.</string>
-         </map>
-         <key>CHARACTER_DESIRED_TURN_SPEED</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>12</integer>
-            <key>tooltip</key>
-            <string>The character's maximum speed while turning about the Z axis. - Note that this is only loosely enforced.</string>
-         </map>
-         <key>CHARACTER_LENGTH</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string>Set collision capsule length - cannot be less than two times the radius.</string>
-         </map>
-         <key>CHARACTER_MAX_ACCEL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>8</integer>
-            <key>tooltip</key>
-            <string>The character's maximum acceleration rate.</string>
-         </map>
-         <key>CHARACTER_MAX_DECEL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>9</integer>
-            <key>tooltip</key>
-            <string>The character's maximum deceleration rate.</string>
-         </map>
-         <key>CHARACTER_MAX_SPEED</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>13</integer>
-            <key>tooltip</key>
-            <string>The character's maximum speed.</string>
-         </map>
-         <key>CHARACTER_MAX_TURN_RADIUS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>10</integer>
-            <key>tooltip</key>
-            <string>The character's turn radius when travelling at CHARACTER_MAX_TURN_SPEED.</string>
-         </map>
-         <key>CHARACTER_ORIENTATION</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string>Valid options are: VERTICAL, HORIZONTAL.</string>
-         </map>
-         <key>CHARACTER_RADIUS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>Set collision capsule radius.</string>
-         </map>
-         <key>CHARACTER_TYPE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>6</integer>
-            <key>tooltip</key>
-            <string>Specifies which walk-ability coefficient will be used by this character.</string>
-         </map>
-         <key>CHARACTER_TYPE_A</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CHARACTER_TYPE_B</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CHARACTER_TYPE_C</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CHARACTER_TYPE_D</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CHARACTER_TYPE_NONE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CLICK_ACTION_BUY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>When the prim is clicked, the buy dialog is opened.</string>
-         </map>
-         <key>CLICK_ACTION_NONE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string>Performs the default action: when the prim is clicked, touch events are triggered".</string>
-         </map>
-         <key>CLICK_ACTION_OPEN</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string>When the prim is clicked, the object inventory dialog is opened.</string>
-         </map>
-         <key>CLICK_ACTION_OPEN_MEDIA</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>6</integer>
-            <key>tooltip</key>
-            <string>When the prim is touched, the web media dialog is opened".</string>
-         </map>
-         <key>CLICK_ACTION_PAY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string>When the prim is clicked, the pay dialog is opened.</string>
-         </map>
-         <key>CLICK_ACTION_PLAY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string>When the prim is clicked, html-on-a-prim is enabled?</string>
-         </map>
-         <key>CLICK_ACTION_SIT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>When the prim is clicked, the avatar sits upon it.</string>
-         </map>
-         <key>CLICK_ACTION_TOUCH</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string>When the prim is clicked, touch events are triggered".</string>
-         </map>
-         <key>CONTENT_TYPE_ATOM</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string>"application/atom+xml"</string>
-         </map>
-         <key>CONTENT_TYPE_FORM</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>7</integer>
-            <key>tooltip</key>
-            <string>"application/x-www-form-urlencoded"</string>
-         </map>
-         <key>CONTENT_TYPE_HTML</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>"text/html", only valid for embedded browsers on content owned by the person viewing. Falls back to "text/plain" otherwise.</string>
-         </map>
-         <key>CONTENT_TYPE_JSON</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string>"application/json"</string>
-         </map>
-         <key>CONTENT_TYPE_LLSD</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>6</integer>
-            <key>tooltip</key>
-            <string>"application/llsd+xml"</string>
-         </map>
-         <key>CONTENT_TYPE_RSS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>8</integer>
-            <key>tooltip</key>
-            <string>"application/rss+xml"</string>
-         </map>
-         <key>CONTENT_TYPE_TEXT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string>"text/plain"</string>
-         </map>
-         <key>CONTENT_TYPE_XHTML</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string>"application/xhtml+xml"</string>
-         </map>
-         <key>CONTENT_TYPE_XML</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>"application/xml"</string>
-         </map>
-         <key>CONTROL_BACK</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x2</integer>
-            <key>tooltip</key>
-            <string>Test for the avatar move back control.</string>
-         </map>
-         <key>CONTROL_DOWN</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x20</integer>
-            <key>tooltip</key>
-            <string>Test for the avatar move down control.</string>
-         </map>
-         <key>CONTROL_FWD</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x1</integer>
-            <key>tooltip</key>
-            <string>Test for the avatar move forward control.</string>
-         </map>
-         <key>CONTROL_LBUTTON</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x10000000</integer>
-            <key>tooltip</key>
-            <string>Test for the avatar left button control.</string>
-         </map>
-         <key>CONTROL_LEFT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x4</integer>
-            <key>tooltip</key>
-            <string>Test for the avatar move left control.</string>
-         </map>
-         <key>CONTROL_ML_LBUTTON</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x40000000</integer>
-            <key>tooltip</key>
-            <string>Test for the avatar left button control while in mouse look.</string>
-         </map>
-         <key>CONTROL_RIGHT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x8</integer>
-            <key>tooltip</key>
-            <string>Test for the avatar move right control.</string>
-         </map>
-         <key>CONTROL_ROT_LEFT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x100</integer>
-            <key>tooltip</key>
-            <string>Test for the avatar rotate left control.</string>
-         </map>
-         <key>CONTROL_ROT_RIGHT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x200</integer>
-            <key>tooltip</key>
-            <string>Test for the avatar rotate right control.</string>
-         </map>
-         <key>CONTROL_UP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x10</integer>
-            <key>tooltip</key>
-            <string>Test for the avatar move up control.</string>
-         </map>
-         <key>DATA_BORN</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string>The date the agent was born, returned in ISO 8601 format of YYYY-MM-DD.</string>
-         </map>
-         <key>DATA_NAME</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>The name of the agent.</string>
-         </map>
-         <key>DATA_ONLINE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>TRUE for online, FALSE for offline.</string>
-         </map>
-         <key>DATA_PAYINFO</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>8</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>DATA_RATING</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string>Returns the agent ratings as a comma separated string of six integers. They are:
-			1) Positive rated behaviour
-			2) Negative rated behaviour
-			3) Positive rated appearance
-			4) Negative rated appearance
-			5) Positive rated building
-			6) Negative rated building</string>
-         </map>
-         <key>DATA_SIM_POS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>DATA_SIM_RATING</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>7</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>DATA_SIM_STATUS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>6</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>DEBUG_CHANNEL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2147483647</integer>
-            <key>tooltip</key>
-            <string>DEBUG_CHANNEL is an integer constant that, when passed to llSay, llWhisper, or llShout as a channel parameter, will print text to the Script Warning/Error Window.</string>
-         </map>
-         <key>DEG_TO_RAD</key>
-         <map>
-            <key>type</key>
-            <string>float</string>
-            <key>value</key>
-            <real>0.01745329</real>
-            <key>tooltip</key>
-            <string>0.01745329 - Number of radians per degree.
-			You can use this to convert degrees to radians by multiplying the degrees by this number.</string>
-         </map>
-         <key>DENSITY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>Used with llSetPhysicsMaterial to enable the density value. Must be between 1.0 and 22587.0 (in Kg/m^3 -- see if you can figure out what 22587 represents)</string>
-         </map>
-         <key>EOF</key>
-         <map>
-            <key>type</key>
-            <string>string</string>
-            <key>value</key>
-            <string>\n\n\n</string>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>ERR_GENERIC</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>-1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>ERR_MALFORMED_PARAMS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>-3</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>ERR_PARCEL_PERMISSIONS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>-2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>ERR_RUNTIME_PERMISSIONS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>-4</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>ERR_THROTTLED</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>-5</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>ESTATE_ACCESS_ALLOWED_AGENT_ADD</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string>Add the agent to this estate's Allowed Residents list.</string>
-         </map>
-         <key>ESTATE_ACCESS_ALLOWED_AGENT_REMOVE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>8</integer>
-            <key>tooltip</key>
-            <string>Remove the agent from this estate's Allowed Residents list.</string>
-         </map>
-         <key>ESTATE_ACCESS_ALLOWED_GROUP_ADD</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>16</integer>
-            <key>tooltip</key>
-            <string>Add the group to this estate's Allowed groups list.</string>
-         </map>
-         <key>ESTATE_ACCESS_ALLOWED_GROUP_REMOVE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>32</integer>
-            <key>tooltip</key>
-            <string>Remove the group from this estate's Allowed groups list.</string>
-         </map>
-         <key>ESTATE_ACCESS_BANNED_AGENT_ADD</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>64</integer>
-            <key>tooltip</key>
-            <string>Add the agent to this estate's Banned residents list.</string>
-         </map>
-         <key>ESTATE_ACCESS_BANNED_AGENT_REMOVE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>128</integer>
-            <key>tooltip</key>
-            <string>Remove the agent from this estate's Banned residents list.</string>
-         </map>
-         <key>FALSE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string>An integer constant for boolean comparisons. Has the value '0'.</string>
-         </map>
-         <key>FORCE_DIRECT_PATH</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>Makes character navigate in a straight line toward position. May be set to TRUE or FALSE.</string>
-         </map>
-         <key>FRICTION</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>Used with llSetPhysicsMaterial to enable the friction value. Must be between 0.0 and 255.0</string>
-         </map>
-         <key>GRAVITY_MULTIPLIER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>8</integer>
-            <key>tooltip</key>
-            <string>Used with llSetPhysicsMaterial to enable the gravity multiplier value. Must be between -1.0 and +28.0</string>
-         </map>
-         <key>HORIZONTAL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>HTTP_BODY_MAXLENGTH</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>HTTP_BODY_TRUNCATED</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>HTTP_CUSTOM_HEADER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string>Add an extra custom HTTP header to the request. The first string is the name of the parameter to change, e.g. "Pragma", and the second string is the value, e.g. "no-cache". Up to 8 custom headers may be configured per request. Note that certain headers, such as the default headers, are blocked for security reasons.</string>
-         </map>
-         <key>HTTP_METHOD</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>HTTP_MIMETYPE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>HTTP_PRAGMA_NO_CACHE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>6</integer>
-            <key>tooltip</key>
-            <string>Allows enabling/disbling of the "Pragma: no-cache" header.\nUsage: [HTTP_PRAGMA_NO_CACHE, integer SendHeader]. When SendHeader is TRUE, the "Pragma: no-cache" header is sent by the script. This matches the default behavior. When SendHeader is FALSE, no "Pragma" header is sent by the script.</string>
-         </map>
-         <key>HTTP_VERBOSE_THROTTLE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>HTTP_VERIFY_CERT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>INVENTORY_ALL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>-1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>INVENTORY_ANIMATION</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>20</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>INVENTORY_BODYPART</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>13</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>INVENTORY_CLOTHING</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>INVENTORY_GESTURE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>21</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>INVENTORY_LANDMARK</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>INVENTORY_NONE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>-1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>INVENTORY_NOTECARD</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>7</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>INVENTORY_OBJECT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>6</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>INVENTORY_SCRIPT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>10</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>INVENTORY_SOUND</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>INVENTORY_TEXTURE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>JSON_ARRAY</key>
-         <map>
-            <key>type</key>
-            <string>string</string>
-            <key>value</key>
-            <string>U+FDD2</string>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>JSON_FALSE</key>
-         <map>
-            <key>type</key>
-            <string>string</string>
-            <key>value</key>
-            <string>U+FDD7</string>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>JSON_INVALID</key>
-         <map>
-            <key>type</key>
-            <string>string</string>
-            <key>value</key>
-            <string>U+FDD0</string>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>JSON_NULL</key>
-         <map>
-            <key>type</key>
-            <string>string</string>
-            <key>value</key>
-            <string>U+FDD5</string>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>JSON_NUMBER</key>
-         <map>
-            <key>type</key>
-            <string>string</string>
-            <key>value</key>
-            <string>U+FDD3</string>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>JSON_OBJECT</key>
-         <map>
-            <key>type</key>
-            <string>string</string>
-            <key>value</key>
-            <string>U+FDD1</string>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>JSON_STRING</key>
-         <map>
-            <key>type</key>
-            <string>string</string>
-            <key>value</key>
-            <string>U+FDD4</string>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>JSON_TRUE</key>
-         <map>
-            <key>type</key>
-            <string>string</string>
-            <key>value</key>
-            <string>U+FDD6</string>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>KFM_CMD_PAUSE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>For use with KFM_COMMAND.</string>
-         </map>
-         <key>KFM_CMD_PLAY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string>For use with KFM_COMMAND.</string>
-         </map>
-         <key>KFM_CMD_STOP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>For use with KFM_COMMAND.</string>
-         </map>
-         <key>KFM_COMMAND</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>KFM_DATA</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>KFM_FORWARD</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string>For use with KFM_MODE.</string>
-         </map>
-         <key>KFM_LOOP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>For use with KFM_MODE.</string>
-         </map>
-         <key>KFM_MODE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>KFM_PING_PONG</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>For use with KFM_MODE.</string>
-         </map>
-         <key>KFM_REVERSE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>For use with KFM_MODE.</string>
-         </map>
-         <key>KFM_ROTATION</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>For use with KFM_DATA.</string>
-         </map>
-         <key>KFM_TRANSLATION</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>For use with KFM_DATA.</string>
-         </map>
-         <key>LAND_LARGE_BRUSH</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string>Use a large brush size.</string>
-         </map>
-         <key>LAND_LEVEL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string>Action to level the land.</string>
-         </map>
-         <key>LAND_LOWER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>Action to lower the land.</string>
-         </map>
-         <key>LAND_MEDIUM_BRUSH</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>Use a medium brush size.</string>
-         </map>
-         <key>LAND_NOISE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>LAND_RAISE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>Action to raise the land.</string>
-         </map>
-         <key>LAND_REVERT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>LAND_SMALL_BRUSH</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>Use a small brush size.</string>
-         </map>
-         <key>LAND_SMOOTH</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>LINK_ALL_CHILDREN</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>-3</integer>
-            <key>tooltip</key>
-            <string>This targets every object except the root in the linked set.</string>
-         </map>
-         <key>LINK_ALL_OTHERS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>-2</integer>
-            <key>tooltip</key>
-            <string>This targets every object in the linked set except the object with the script.</string>
-         </map>
-         <key>LINK_ROOT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string>This targets the root of the linked set.</string>
-         </map>
-         <key>LINK_SET</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>-1</integer>
-            <key>tooltip</key>
-            <string>This targets every object in the linked set.</string>
-         </map>
-         <key>LINK_THIS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>-4</integer>
-            <key>tooltip</key>
-            <string>The link number of the prim containing the script.</string>
-         </map>
-         <key>LIST_STAT_GEOMETRIC_MEAN</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>9</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>LIST_STAT_MAX</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>LIST_STAT_MEAN</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>LIST_STAT_MEDIAN</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>LIST_STAT_MIN</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>LIST_STAT_NUM_COUNT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>8</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>LIST_STAT_RANGE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>LIST_STAT_STD_DEV</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>LIST_STAT_SUM</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>6</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>LIST_STAT_SUM_SQUARES</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>7</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>LOOP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x2</integer>
-            <key>tooltip</key>
-            <string>Loop the texture animation.</string>
-         </map>
-         <key>MASK_BASE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>MASK_EVERYONE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>MASK_GROUP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>MASK_NEXT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>MASK_OWNER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>NULL_KEY</key>
-         <map>
-            <key>type</key>
-            <string>key</string>
-            <key>value</key>
-            <uuid>00000000-0000-0000-0000-000000000000</uuid>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>OBJECT_ATTACHED_POINT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>19</integer>
-            <key>tooltip</key>
-            <string>Gets the attachment point to which the object is attached.\nReturns 0 if the object is not an attachment (or is an avatar, etc).</string>
-         </map>
-         <key>OBJECT_CHARACTER_TIME</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>17</integer>
-            <key>tooltip</key>
-            <string>Units in seconds</string>
-         </map>
-         <key>OBJECT_CREATOR</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>8</integer>
-            <key>tooltip</key>
-            <string>Gets the object's creator key. If id is an avatar, a NULL_KEY is returned.</string>
-         </map>
-         <key>OBJECT_DESC</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>Gets the object's description. If id is an avatar, an empty string is returned.</string>
-         </map>
-         <key>OBJECT_GROUP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>7</integer>
-            <key>tooltip</key>
-            <string>Gets the prims's group key. If id is an avatar, a NULL_KEY is returned.</string>
-         </map>
-         <key>OBJECT_NAME</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>Gets the object's name.</string>
-         </map>
-         <key>OBJECT_OWNER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>6</integer>
-            <key>tooltip</key>
-            <string>Gets an object's owner's key. If id is group owned, a NULL_KEY is returned.</string>
-         </map>
-         <key>OBJECT_PATHFINDING_TYPE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>20</integer>
-            <key>tooltip</key>
-            <string>Returns the pathfinding setting of any object in the region. It returns an integer matching one of the OPT_* constants.</string>
-         </map>
-         <key>OBJECT_PHANTOM</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>22</integer>
-            <key>tooltip</key>
-            <string>Returns boolean, detailing if phantom is enabled or disabled on the object.\nIf id is an avatar or attachment, 0 is returned.</string>
-         </map>
-         <key>OBJECT_PHYSICS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>21</integer>
-            <key>tooltip</key>
-            <string>Returns boolean, detailing if physics is enabled or disabled on the object.\nIf id is an avatar or attachment, 0 is returned.</string>
-         </map>
-         <key>OBJECT_PHYSICS_COST</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>16</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>OBJECT_POS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string>Gets the object's position in region coordinates.</string>
-         </map>
-         <key>OBJECT_PRIM_EQUIVALENCE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>13</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>OBJECT_ROOT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>18</integer>
-            <key>tooltip</key>
-            <string>Gets the id of the root prim of the object requested.\nIf id is an avatar, return the id of the root prim of the linkset the avatar is sitting on (or the avatar's own id if the avatar is not sitting on an object within the region).</string>
-         </map>
-         <key>OBJECT_ROT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string>Gets the object's rotation.</string>
-         </map>
-         <key>OBJECT_RUNNING_SCRIPT_COUNT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>9</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>OBJECT_SCRIPT_MEMORY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>11</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>OBJECT_SCRIPT_TIME</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>12</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>OBJECT_SERVER_COST</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>14</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>OBJECT_STREAMING_COST</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>15</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>OBJECT_TEMP_ON_REZ</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>23</integer>
-            <key>tooltip</key>
-            <string>Returns boolean, detailing if temporary is enabled or disabled on the object.</string>
-         </map>
-         <key>OBJECT_TOTAL_SCRIPT_COUNT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>10</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>OBJECT_UNKNOWN_DETAIL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>-1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>OBJECT_VELOCITY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string>Gets the object's velocity.</string>
-         </map>
-         <key>OPT_AVATAR</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>Returned for avatars.</string>
-         </map>
-         <key>OPT_CHARACTER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>Returned for pathfinding characters.</string>
-         </map>
-         <key>OPT_EXCLUSION_VOLUME</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>6</integer>
-            <key>tooltip</key>
-            <string>Returned for exclusion volumes.</string>
-         </map>
-         <key>OPT_LEGACY_LINKSET</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string>Returned for movable obstacles, movable phantoms, physical, and volumedetect objects.</string>
-         </map>
-         <key>OPT_MATERIAL_VOLUME</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string>Returned for material volumes.</string>
-         </map>
-         <key>OPT_OTHER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>-1</integer>
-            <key>tooltip</key>
-            <string>Returned for attachments, Linden trees, and grass.</string>
-         </map>
-         <key>OPT_STATIC_OBSTACLE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string>Returned for static obstacles.</string>
-         </map>
-         <key>OPT_WALKABLE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string>Returned for walkable objects.</string>
-         </map>
-         <key>PARCEL_COUNT_GROUP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_COUNT_OTHER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_COUNT_OWNER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_COUNT_SELECTED</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_COUNT_TEMP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_COUNT_TOTAL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_DETAILS_AREA</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string>The parcel's area, in square meters. (5 chars.).</string>
-         </map>
-         <key>PARCEL_DETAILS_DESC</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>The description of the parcel. (127 chars).</string>
-         </map>
-         <key>PARCEL_DETAILS_GROUP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string>The parcel group's key. (36 chars.).</string>
-         </map>
-         <key>PARCEL_DETAILS_ID</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string>The parcel's key. (36 chars.).</string>
-         </map>
-         <key>PARCEL_DETAILS_NAME</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string>The name of the parcel. (63 chars.).</string>
-         </map>
-         <key>PARCEL_DETAILS_OWNER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>The parcel owner's key. (36 chars.).</string>
-         </map>
-         <key>PARCEL_DETAILS_SEE_AVATARS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>6</integer>
-            <key>tooltip</key>
-            <string>The parcel's avatar visibility setting. (1 char.).</string>
-         </map>
-         <key>PARCEL_FLAG_ALLOW_ALL_OBJECT_ENTRY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x08000000</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_FLAG_ALLOW_CREATE_GROUP_OBJECTS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x4000000</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_FLAG_ALLOW_CREATE_OBJECTS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x40</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_FLAG_ALLOW_DAMAGE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x20</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_FLAG_ALLOW_FLY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_FLAG_ALLOW_GROUP_OBJECT_ENTRY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x10000000</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_FLAG_ALLOW_GROUP_SCRIPTS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x2000000</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_FLAG_ALLOW_LANDMARK</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x8</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_FLAG_ALLOW_SCRIPTS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_FLAG_ALLOW_TERRAFORM</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x10</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_FLAG_LOCAL_SOUND_ONLY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x8000</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_FLAG_RESTRICT_PUSHOBJECT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x200000</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_FLAG_USE_ACCESS_GROUP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x100</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_FLAG_USE_ACCESS_LIST</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x200</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_FLAG_USE_BAN_LIST</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x400</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_FLAG_USE_LAND_PASS_LIST</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x800</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_MEDIA_COMMAND_AGENT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>7</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_MEDIA_COMMAND_AUTO_ALIGN</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>9</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_MEDIA_COMMAND_DESC</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>12</integer>
-            <key>tooltip</key>
-            <string>Use this to get or set the parcel media description.</string>
-         </map>
-         <key>PARCEL_MEDIA_COMMAND_LOOP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_MEDIA_COMMAND_LOOP_SET</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>13</integer>
-            <key>tooltip</key>
-            <string>Used to get or set the parcel's media looping variable.</string>
-         </map>
-         <key>PARCEL_MEDIA_COMMAND_PAUSE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_MEDIA_COMMAND_PLAY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_MEDIA_COMMAND_SIZE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>11</integer>
-            <key>tooltip</key>
-            <string>Use this to get or set the parcel media pixel resolution.</string>
-         </map>
-         <key>PARCEL_MEDIA_COMMAND_STOP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_MEDIA_COMMAND_TEXTURE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_MEDIA_COMMAND_TIME</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>6</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_MEDIA_COMMAND_TYPE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>10</integer>
-            <key>tooltip</key>
-            <string>Use this to get or set the parcel media MIME type (e.g. "text/html").</string>
-         </map>
-         <key>PARCEL_MEDIA_COMMAND_UNLOAD</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>8</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_MEDIA_COMMAND_URL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PASSIVE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x4</integer>
-            <key>tooltip</key>
-            <string>Static in-world objects.</string>
-         </map>
-         <key>PATROL_PAUSE_AT_WAYPOINTS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PAY_DEFAULT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>-2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PAY_HIDE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>-1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PAYMENT_INFO_ON_FILE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PAYMENT_INFO_USED</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PERM_ALL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x7FFFFFFF</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PERM_COPY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x8000</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PERM_MODIFY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x4000</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PERM_MOVE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x80000</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PERM_TRANSFER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x2000</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PERMISSION_ATTACH</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x20</integer>
-            <key>tooltip</key>
-            <string>If this permission is enabled, the object can successfully call llAttachToAvatar to attach to the given avatar.</string>
-         </map>
-         <key>PERMISSION_CHANGE_JOINTS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x100</integer>
-            <key>tooltip</key>
-            <string>(not yet implemented)</string>
-         </map>
-         <key>PERMISSION_CHANGE_LINKS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x80</integer>
-            <key>tooltip</key>
-            <string>If this permission is enabled, the object can successfully call llCreateLink, llBreakLink, and llBreakAllLinks to change links to other objects.</string>
-         </map>
-         <key>PERMISSION_CHANGE_PERMISSIONS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x200</integer>
-            <key>tooltip</key>
-            <string>(not yet implemented)</string>
-         </map>
-         <key>PERMISSION_CONTROL_CAMERA</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x800</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PERMISSION_DEBIT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x2</integer>
-            <key>tooltip</key>
-            <string>If this permission is enabled, the object can successfully call llGiveMoney or llTransferLindenDollars to debit the owners account.</string>
-         </map>
-         <key>PERMISSION_OVERRIDE_ANIMATIONS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x8000</integer>
-            <key>tooltip</key>
-            <string>Permission to override default animations.</string>
-         </map>
-         <key>PERMISSION_RELEASE_OWNERSHIP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x40</integer>
-            <key>tooltip</key>
-            <string>(not yet implemented)</string>
-         </map>
-         <key>PERMISSION_REMAP_CONTROLS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x8</integer>
-            <key>tooltip</key>
-            <string>(not yet implemented)</string>
-         </map>
-         <key>PERMISSION_TAKE_CONTROLS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x4</integer>
-            <key>tooltip</key>
-            <string>If this permission enabled, the object can successfully call the llTakeControls libray call.</string>
-         </map>
-         <key>PERMISSION_TELEPORT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x1000</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PERMISSION_TRACK_CAMERA</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x400</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PERMISSION_TRIGGER_ANIMATION</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x10</integer>
-            <key>tooltip</key>
-            <string>If this permission is enabled, the object can successfully call llStartAnimation for the avatar that owns this.</string>
-         </map>
-         <key>PI</key>
-         <map>
-            <key>type</key>
-            <string>float</string>
-            <key>value</key>
-            <real>3.14159265</real>
-            <key>tooltip</key>
-            <string>3.14159265 - The number of radians in a semi-circle.</string>
-         </map>
-         <key>PI_BY_TWO</key>
-         <map>
-            <key>type</key>
-            <string>float</string>
-            <key>value</key>
-            <real>1.57079633</real>
-            <key>tooltip</key>
-            <string>1.57079633 - The number of radians in a quarter circle.</string>
-         </map>
-         <key>PING_PONG</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x8</integer>
-            <key>tooltip</key>
-            <string>Play animation going forwards, then backwards.</string>
-         </map>
-         <key>PRIM_BUMP_BARK</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_BUMP_BLOBS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>12</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_BUMP_BRICKS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_BUMP_BRIGHT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_BUMP_CHECKER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>6</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_BUMP_CONCRETE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>7</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_BUMP_DARK</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_BUMP_DISKS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>10</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_BUMP_GRAVEL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>11</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_BUMP_LARGETILE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>14</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_BUMP_NONE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_BUMP_SHINY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>19</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_BUMP_SIDING</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>13</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_BUMP_STONE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>9</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_BUMP_STUCCO</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>15</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_BUMP_SUCTION</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>16</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_BUMP_TILE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>8</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_BUMP_WEAVE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>17</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_BUMP_WOOD</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_CAST_SHADOWS</key>
-         <map>
-            <key>deprecated</key>
-            <boolean>true</boolean>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>24</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_COLOR</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>18</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_DESC</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>28</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_FLEXIBLE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>21</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_FULLBRIGHT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>20</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_GLOW</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>25</integer>
-            <key>tooltip</key>
-            <string>PRIM_GLOW is used to get or set the glow status of the face.</string>
-         </map>
-         <key>PRIM_HOLE_CIRCLE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x10</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_HOLE_DEFAULT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x00</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_HOLE_SQUARE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x20</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_HOLE_TRIANGLE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x30</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_LINK_TARGET</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>34</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_MATERIAL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_MATERIAL_FLESH</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_MATERIAL_GLASS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_MATERIAL_LIGHT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>7</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_MATERIAL_METAL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_MATERIAL_PLASTIC</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_MATERIAL_RUBBER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>6</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_MATERIAL_STONE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_MATERIAL_WOOD</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_MEDIA_ALT_IMAGE_ENABLE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string>Boolean. Gets/Sets the default image state (the image that the user sees before a piece of media is active) for the chosen face. The default image is specified by Second Life's server for that media type.</string>
-         </map>
-         <key>PRIM_MEDIA_AUTO_LOOP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string>Boolean. Gets/Sets whether auto-looping is enabled.</string>
-         </map>
-         <key>PRIM_MEDIA_AUTO_PLAY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string>Boolean. Gets/Sets whether the media auto-plays when a Resident can view it.</string>
-         </map>
-         <key>PRIM_MEDIA_AUTO_SCALE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>6</integer>
-            <key>tooltip</key>
-            <string>Boolean. Gets/Sets whether auto-scaling is enabled. Auto-scaling forces the media to the full size of the texture.</string>
-         </map>
-         <key>PRIM_MEDIA_AUTO_ZOOM</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>7</integer>
-            <key>tooltip</key>
-            <string>Boolean. Gets/Sets whether clicking the media triggers auto-zoom and auto-focus on the media.</string>
-         </map>
-         <key>PRIM_MEDIA_CONTROLS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>Integer. Gets/Sets the style of controls. Can be either PRIM_MEDIA_CONTROLS_STANDARD or PRIM_MEDIA_CONTROLS_MINI.</string>
-         </map>
-         <key>PRIM_MEDIA_CONTROLS_MINI</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>Mini web navigation controls; does not include an address bar.</string>
-         </map>
-         <key>PRIM_MEDIA_CONTROLS_STANDARD</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string>Standard web navigation controls.</string>
-         </map>
-         <key>PRIM_MEDIA_CURRENT_URL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>String. Gets/Sets the current url displayed on the chosen face. Changing this URL causes navigation. 1024 characters Maximum.</string>
-         </map>
-         <key>PRIM_MEDIA_FIRST_CLICK_INTERACT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>8</integer>
-            <key>tooltip</key>
-            <string>Boolean. Gets/Sets whether the first click interaction is enabled.</string>
-         </map>
-         <key>PRIM_MEDIA_HEIGHT_PIXELS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>10</integer>
-            <key>tooltip</key>
-            <string>Integer. Gets/Sets the height of the media in pixels.</string>
-         </map>
-         <key>PRIM_MEDIA_HOME_URL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string>String. Gets/Sets the home URL for the chosen face. 1024 characters maximum.</string>
-         </map>
-         <key>PRIM_MEDIA_PERM_ANYONE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_MEDIA_PERM_GROUP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_MEDIA_PERM_NONE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_MEDIA_PERM_OWNER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_MEDIA_PERMS_CONTROL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>14</integer>
-            <key>tooltip</key>
-            <string>Integer. Gets/Sets the permissions mask that control who can see the media control bar above the object:: PRIM_MEDIA_PERM_ANYONE, PRIM_MEDIA_PERM_GROUP, PRIM_MEDIA_PERM_NONE, PRIM_MEDIA_PERM_OWNER</string>
-         </map>
-         <key>PRIM_MEDIA_PERMS_INTERACT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>13</integer>
-            <key>tooltip</key>
-            <string>Integer. Gets/Sets the permissions mask that control who can interact with the object: PRIM_MEDIA_PERM_ANYONE, PRIM_MEDIA_PERM_GROUP, PRIM_MEDIA_PERM_NONE, PRIM_MEDIA_PERM_OWNER</string>
-         </map>
-         <key>PRIM_MEDIA_WHITELIST</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>12</integer>
-            <key>tooltip</key>
-            <string>String. Gets/Sets the white-list as a string of escaped, comma-separated URLs. This string can hold up to 64 URLs or 1024 characters, whichever comes first.</string>
-         </map>
-         <key>PRIM_MEDIA_WHITELIST_ENABLE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>11</integer>
-            <key>tooltip</key>
-            <string>Boolean. Gets/Sets whether navigation is restricted to URLs in PRIM_MEDIA_WHITELIST.</string>
-         </map>
-         <key>PRIM_MEDIA_WIDTH_PIXELS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>9</integer>
-            <key>tooltip</key>
-            <string>Integer. Gets/Sets the width of the media in pixels.</string>
-         </map>
-         <key>PRIM_NAME</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>27</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_OMEGA</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>32</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_PHANTOM</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_PHYSICS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_PHYSICS_SHAPE_CONVEX</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>Use the convex hull of the prim shape for physics (this is the default for mesh objects).</string>
-         </map>
-         <key>PRIM_PHYSICS_SHAPE_NONE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>Ignore this prim in the physics shape. NB: This cannot be applied to the root prim.</string>
-         </map>
-         <key>PRIM_PHYSICS_SHAPE_PRIM</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string>Use the normal prim shape for physics (this is the default for all non-mesh objects).</string>
-         </map>
-         <key>PRIM_PHYSICS_SHAPE_TYPE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>30</integer>
-            <key>tooltip</key>
-            <string>Allows you to set the physics shape type of a prim via lsl. Permitted values are:
-			PRIM_PHYSICS_SHAPE_NONE, PRIM_PHYSICS_SHAPE_PRIM, PRIM_PHYSICS_SHAPE_CONVEX</string>
-         </map>
-         <key>PRIM_POINT_LIGHT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>23</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_POS_LOCAL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>33</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_POSITION</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>6</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_ROT_LOCAL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>29</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_ROTATION</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>8</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_SCULPT_FLAG_INVERT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>64</integer>
-            <key>tooltip</key>
-            <string>Render inside out (inverts the normals).</string>
-         </map>
-         <key>PRIM_SCULPT_FLAG_MIRROR</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>128</integer>
-            <key>tooltip</key>
-            <string>Render an X axis mirror of the sculpty.</string>
-         </map>
-         <key>PRIM_SCULPT_TYPE_CYLINDER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_SCULPT_TYPE_MASK</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>7</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_SCULPT_TYPE_PLANE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_SCULPT_TYPE_SPHERE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_SCULPT_TYPE_TORUS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_SHINY_HIGH</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_SHINY_LOW</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_SHINY_MEDIUM</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_SHINY_NONE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_SIZE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>7</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_SLICE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>35</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_TEMP_ON_REZ</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_TEXGEN</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>22</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_TEXGEN_DEFAULT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_TEXGEN_PLANAR</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_TEXT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>26</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_TEXTURE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>17</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_TYPE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>9</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_TYPE_BOX</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_TYPE_CYLINDER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_TYPE_PRISM</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_TYPE_RING</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>6</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_TYPE_SCULPT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>7</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_TYPE_SPHERE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_TYPE_TORUS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_TYPE_TUBE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PROFILE_NONE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string>Disables profiling</string>
-         </map>
-         <key>PROFILE_SCRIPT_MEMORY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>Enables memory profiling</string>
-         </map>
-         <key>PSYS_PART_BOUNCE_MASK</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x4</integer>
-            <key>tooltip</key>
-            <string>Particles bounce off of a plane at the objects Z height.</string>
-         </map>
-         <key>PSYS_PART_EMISSIVE_MASK</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x100</integer>
-            <key>tooltip</key>
-            <string>The particle glows.</string>
-         </map>
-         <key>PSYS_PART_END_ALPHA</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string>A float which determines the ending alpha of the object.</string>
-         </map>
-         <key>PSYS_PART_END_COLOR</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string>A vector &lt;r, g, b&gt; which determines the ending colour of the object.</string>
-         </map>
-         <key>PSYS_PART_END_SCALE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>6</integer>
-            <key>tooltip</key>
-            <string>A vector &lt;sx, sy, z&gt;, which is the ending size of the particle billboard in meters (z is ignored).</string>
-         </map>
-         <key>PSYS_PART_FLAGS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string>Each particle that is emitted by the particle system is simulated based on the following flags. To use multiple flags, bitwise or (|) them together.</string>
-         </map>
-         <key>PSYS_PART_FOLLOW_SRC_MASK</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x10</integer>
-            <key>tooltip</key>
-            <string>The particle position is relative to the source objects position.</string>
-         </map>
-         <key>PSYS_PART_FOLLOW_VELOCITY_MASK</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x20</integer>
-            <key>tooltip</key>
-            <string>The particle orientation is rotated so the vertical axis faces towards the particle velocity.</string>
-         </map>
-         <key>PSYS_PART_INTERP_COLOR_MASK</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x1</integer>
-            <key>tooltip</key>
-            <string>Interpolate both the colour and alpha from the start value to the end value.</string>
-         </map>
-         <key>PSYS_PART_INTERP_SCALE_MASK</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x2</integer>
-            <key>tooltip</key>
-            <string>Interpolate the particle scale from the start value to the end value.</string>
-         </map>
-         <key>PSYS_PART_MAX_AGE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>19</integer>
-            <key>tooltip</key>
-            <string>Age in seconds of a particle at which it dies.</string>
-         </map>
-         <key>PSYS_PART_START_ALPHA</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>A float which determines the starting alpha of the object.</string>
-         </map>
-         <key>PSYS_PART_START_COLOR</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>A vector &lt;r.r, g.g, b.b&gt; which determines the starting colour of the object.</string>
-         </map>
-         <key>PSYS_PART_START_SCALE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string>A vector &lt;sx, sy, z&gt;, which is the starting size of the particle billboard in meters (z is ignored).</string>
-         </map>
-         <key>PSYS_PART_TARGET_LINEAR_MASK</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x80</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PSYS_PART_TARGET_POS_MASK</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x40</integer>
-            <key>tooltip</key>
-            <string>The particle heads towards the location of the target object as defined by PSYS_SRC_TARGET_KEY.</string>
-         </map>
-         <key>PSYS_PART_WIND_MASK</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x8</integer>
-            <key>tooltip</key>
-            <string>Particles have their velocity damped towards the wind velocity.</string>
-         </map>
-         <key>PSYS_SRC_ACCEL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>8</integer>
-            <key>tooltip</key>
-            <string>A vector &lt;x, y, z&gt; which is the acceleration to apply on particles.</string>
-         </map>
-         <key>PSYS_SRC_ANGLE_BEGIN</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>22</integer>
-            <key>tooltip</key>
-            <string>Area in radians specifying where particles will NOT be created (for ANGLE patterns)</string>
-         </map>
-         <key>PSYS_SRC_ANGLE_END</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>23</integer>
-            <key>tooltip</key>
-            <string>Area in radians filled with particles (for ANGLE patterns) (if lower than PSYS_SRC_ANGLE_BEGIN, acts as PSYS_SRC_ANGLE_BEGIN itself, and PSYS_SRC_ANGLE_BEGIN acts as PSYS_SRC_ANGLE_END).</string>
-         </map>
-         <key>PSYS_SRC_BURST_PART_COUNT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>15</integer>
-            <key>tooltip</key>
-            <string>How many particles to release in a burst.</string>
-         </map>
-         <key>PSYS_SRC_BURST_RADIUS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>16</integer>
-            <key>tooltip</key>
-            <string>What distance from the center of the object to create the particles.</string>
-         </map>
-         <key>PSYS_SRC_BURST_RATE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>13</integer>
-            <key>tooltip</key>
-            <string>How often to release a particle burst (float seconds).</string>
-         </map>
-         <key>PSYS_SRC_BURST_SPEED_MAX</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>18</integer>
-            <key>tooltip</key>
-            <string>Maximum speed that a particle should be moving.</string>
-         </map>
-         <key>PSYS_SRC_BURST_SPEED_MIN</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>17</integer>
-            <key>tooltip</key>
-            <string>Minimum speed that a particle should be moving.</string>
-         </map>
-         <key>PSYS_SRC_INNERANGLE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>10</integer>
-            <key>tooltip</key>
-            <string>Specifies the inner angle of the arc created by the PSYS_SRC_PATTERN_ANGLE or PSYS_SRC_PATTERN_ANGLE_CONE source pattern.
-			The area specified will NOT have particles in it.</string>
-         </map>
-         <key>PSYS_SRC_MAX_AGE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>19</integer>
-            <key>tooltip</key>
-            <string>How long this particle system should last, 0.0 means forever.</string>
-         </map>
-         <key>PSYS_SRC_OMEGA</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>21</integer>
-            <key>tooltip</key>
-            <string>Sets the angular velocity to rotate the axis that SRC_PATTERN_ANGLE and SRC_PATTERN_ANGLE_CONE use.</string>
-         </map>
-         <key>PSYS_SRC_OUTERANGLE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>11</integer>
-            <key>tooltip</key>
-            <string>Specifies the outer angle of the arc created by the PSYS_SRC_PATTERN_ANGLE or PSYS_SRC_PATTERN_ANGLE_CONE source pattern.
-			The area between the outer and inner angle will be filled with particles.</string>
-         </map>
-         <key>PSYS_SRC_PATTERN</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>9</integer>
-            <key>tooltip</key>
-            <string>The pattern which is used to generate particles.
-			Use one of the following values: PSYS_SRC_PATTERN Values.</string>
-         </map>
-         <key>PSYS_SRC_PATTERN_ANGLE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x04</integer>
-            <key>tooltip</key>
-            <string>Shoot particles across a 2 dimensional area defined by the arc created from PSYS_SRC_OUTERANGLE. There will be an open area defined by PSYS_SRC_INNERANGLE within the larger arc.</string>
-         </map>
-         <key>PSYS_SRC_PATTERN_ANGLE_CONE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x08</integer>
-            <key>tooltip</key>
-            <string>Shoot particles out in a 3 dimensional cone with an outer arc of PSYS_SRC_OUTERANGLE and an inner open area defined by PSYS_SRC_INNERANGLE.</string>
-         </map>
-         <key>PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x10</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PSYS_SRC_PATTERN_DROP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x01</integer>
-            <key>tooltip</key>
-            <string>Drop particles at the source position.</string>
-         </map>
-         <key>PSYS_SRC_PATTERN_EXPLODE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x02</integer>
-            <key>tooltip</key>
-            <string>Shoot particles out in all directions, using the burst parameters.</string>
-         </map>
-         <key>PSYS_SRC_TARGET_KEY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>20</integer>
-            <key>tooltip</key>
-            <string>The key of a target object to move towards if PSYS_PART_TARGET_POS_MASK is enabled.</string>
-         </map>
-         <key>PSYS_SRC_TEXTURE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>12</integer>
-            <key>tooltip</key>
-            <string>An asset name for the texture to use for the particles.</string>
-         </map>
-         <key>PU_EVADE_HIDDEN</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x07</integer>
-            <key>tooltip</key>
-            <string>Triggered when an llEvade character thinks it has hidden from its pursuer.</string>
-         </map>
-         <key>PU_EVADE_SPOTTED</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x08</integer>
-            <key>tooltip</key>
-            <string>Triggered when an llEvade character switches from hiding to running</string>
-         </map>
-         <key>PU_FAILURE_INVALID_GOAL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x03</integer>
-            <key>tooltip</key>
-            <string>Goal is not on the navigation-mesh and cannot be reached.</string>
-         </map>
-         <key>PU_FAILURE_INVALID_START</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x02</integer>
-            <key>tooltip</key>
-            <string>Character cannot navigate from the current location - e.g., the character is off the navmesh or too high above it.</string>
-         </map>
-         <key>PU_FAILURE_NO_NAVMESH</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x09</integer>
-            <key>tooltip</key>
-            <string>This is a fatal error reported to a character when there is no navmesh for the region. This usually indicates a server failure and users should file a bug report and include the time and region in which they received this message.</string>
-         </map>
-         <key>PU_FAILURE_NO_VALID_DESTINATION</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x06</integer>
-            <key>tooltip</key>
-            <string>There is no good place for the character to go - e.g., it is patrolling and all the patrol points are now unreachable.</string>
-         </map>
-         <key>PU_FAILURE_OTHER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1000000</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PU_FAILURE_TARGET_GONE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x05</integer>
-            <key>tooltip</key>
-            <string>Target (for llPursue or llEvade) can no longer be tracked - e.g., it left the region or is an avatar that is now more than about 30m outside the region.</string>
-         </map>
-         <key>PU_FAILURE_UNREACHABLE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x04</integer>
-            <key>tooltip</key>
-            <string>Goal is no longer reachable for some reason - e.g., an obstacle blocks the path.</string>
-         </map>
-         <key>PU_GOAL_REACHED</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x01</integer>
-            <key>tooltip</key>
-            <string>Character has reached the goal and will stop or choose a new goal (if wandering).</string>
-         </map>
-         <key>PU_SLOWDOWN_DISTANCE_REACHED</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x00</integer>
-            <key>tooltip</key>
-            <string>Character is near current goal.</string>
-         </map>
-         <key>PUBLIC_CHANNEL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string>PUBLIC_CHANNEL is an integer constant that, when passed to llSay, llWhisper, or llShout as a channel parameter, will print text to the publicly heard chat channel.</string>
-         </map>
-         <key>PURSUIT_FUZZ_FACTOR</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string>Selects a random destination near the offset.</string>
-         </map>
-         <key>PURSUIT_GOAL_TOLERANCE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PURSUIT_INTERCEPT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string>Define whether the character attempts to predict the target's location.</string>
-         </map>
-         <key>PURSUIT_OFFSET</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>Go to a position offset from the target.</string>
-         </map>
-         <key>RAD_TO_DEG</key>
-         <map>
-            <key>type</key>
-            <string>float</string>
-            <key>value</key>
-            <real>57.2957795</real>
-            <key>tooltip</key>
-            <string>57.2957795 - Number of degrees per radian. You can use this number to convert radians to degrees by multiplying the radians by this number.</string>
-         </map>
-         <key>RC_DATA_FLAGS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>RC_DETECT_PHANTOM</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>RC_GET_LINK_NUM</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>RC_GET_NORMAL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>RC_GET_ROOT_KEY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>RC_MAX_HITS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>RC_REJECT_AGENTS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>RC_REJECT_LAND</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>8</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>RC_REJECT_NONPHYSICAL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>RC_REJECT_PHYSICAL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>RC_REJECT_TYPES</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>RCERR_CAST_TIME_EXCEEDED</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>-3</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>RCERR_SIM_PERF_LOW</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>-2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>RCERR_UNKNOWN</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>-1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>REGION_FLAG_ALLOW_DAMAGE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>REGION_FLAG_ALLOW_DIRECT_TELEPORT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x100000</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>REGION_FLAG_BLOCK_FLY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x80000</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>REGION_FLAG_BLOCK_TERRAFORM</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x40</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>REGION_FLAG_DISABLE_COLLISIONS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x1000</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>REGION_FLAG_DISABLE_PHYSICS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x4000</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>REGION_FLAG_FIXED_SUN</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x10</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>REGION_FLAG_RESTRICT_PUSHOBJECT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x400000</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>REGION_FLAG_SANDBOX</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x100</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>REMOTE_DATA_CHANNEL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>REMOTE_DATA_REPLY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>REMOTE_DATA_REQUEST</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>REQUIRE_LINE_OF_SIGHT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>Define whether the character needs a line-of-sight to give chase.</string>
-         </map>
-         <key>RESTITUTION</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string>Used with llSetPhysicsMaterial to enable the density value. Must be between 0.0 and 1.0</string>
-         </map>
-         <key>REVERSE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x4</integer>
-            <key>tooltip</key>
-            <string>Play animation in reverse direction.</string>
-         </map>
-         <key>ROTATE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x20</integer>
-            <key>tooltip</key>
-            <string>Animate texture rotation.</string>
-         </map>
-         <key>SCALE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x40</integer>
-            <key>tooltip</key>
-            <string>Animate the texture scale.</string>
-         </map>
-         <key>SCRIPTED</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x8</integer>
-            <key>tooltip</key>
-            <string>Scripted in-world objects.</string>
-         </map>
-         <key>SIM_STAT_PCT_CHARS_STEPPED</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string>Returns the % of pathfinding characters skipped each frame, averaged over the last minute.\nThe returned value corresponds to the "Characters Updated" stat in the viewer's Statistics Bar.</string>
-         </map>
-         <key>SMOOTH</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x10</integer>
-            <key>tooltip</key>
-            <string>Slide in the X direction, instead of playing separate frames.</string>
-         </map>
-         <key>SQRT2</key>
-         <map>
-            <key>type</key>
-            <string>float</string>
-            <key>value</key>
-            <real>1.41421356</real>
-            <key>tooltip</key>
-            <string>1.41421356 - The square root of 2.</string>
-         </map>
-         <key>STATUS_BLOCK_GRAB</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>64</integer>
-            <key>tooltip</key>
-            <string>Controls whether the object can be grabbed.\nA grab is the default action when in third person, and is available as the hand tool in build mode. This is useful for physical objects that you don't want other people to be able to trivially disturb. The default is FALSE</string>
-         </map>
-         <key>STATUS_BLOCK_GRAB_OBJECT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1024</integer>
-            <key>tooltip</key>
-            <string>Prevent click-and-drag movement on all prims in the object.</string>
-         </map>
-         <key>STATUS_BOUNDS_ERROR</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1002</integer>
-            <key>tooltip</key>
-            <string>Argument(s) passed to function had a bounds error.</string>
-         </map>
-         <key>STATUS_CAST_SHADOWS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x200</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>STATUS_DIE_AT_EDGE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x80</integer>
-            <key>tooltip</key>
-            <string>Controls whether the object is returned to the owners inventory if it wanders off the edge of the world.\nIt is useful to set this status TRUE for things like bullets or rockets. The default is TRUE</string>
-         </map>
-         <key>STATUS_INTERNAL_ERROR</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1999</integer>
-            <key>tooltip</key>
-            <string>An internal error occurred.</string>
-         </map>
-         <key>STATUS_MALFORMED_PARAMS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1000</integer>
-            <key>tooltip</key>
-            <string>Function was called with malformed parameters.</string>
-         </map>
-         <key>STATUS_NOT_FOUND</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1003</integer>
-            <key>tooltip</key>
-            <string>Object or other item was not found.</string>
-         </map>
-         <key>STATUS_NOT_SUPPORTED</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1004</integer>
-            <key>tooltip</key>
-            <string>Feature not supported.</string>
-         </map>
-         <key>STATUS_OK</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string>Result of function call was a success.</string>
-         </map>
-         <key>STATUS_PHANTOM</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x10</integer>
-            <key>tooltip</key>
-            <string>Controls/indicates whether the object collides or not.\nSetting the value to TRUE makes the object non-colliding with all objects. It is a good idea to use this for most objects that move or rotate, but are non-physical. It is also useful for simulating volumetric lighting. The default is FALSE.</string>
-         </map>
-         <key>STATUS_PHYSICS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x1</integer>
-            <key>tooltip</key>
-            <string>Controls/indicates whether the object moves physically.\nThis controls the same flag that the UI check-box for Physical controls. The default is FALSE.</string>
-         </map>
-         <key>STATUS_RETURN_AT_EDGE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x100</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>STATUS_ROTATE_X</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>STATUS_ROTATE_Y</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x4</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>STATUS_ROTATE_Z</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x8</integer>
-            <key>tooltip</key>
-            <string>Controls/indicates whether the object can physically rotate around
-			the specific axis or not. This flag has no meaning
-			for non-physical objects. Set the value to FALSE
-			if you want to disable rotation around that axis. The
-			default is TRUE for a physical object.
-			A useful example to think about when visualizing
-			the effect is a sit-and-spin device. They spin around the
-			Z axis (up) but not around the X or Y axis.</string>
-         </map>
-         <key>STATUS_SANDBOX</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x20</integer>
-            <key>tooltip</key>
-            <string>Controls/indicates whether the object can cross region boundaries
-			and move more than 20 meters from its creation
-			point. The default if FALSE.</string>
-         </map>
-         <key>STATUS_TYPE_MISMATCH</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1001</integer>
-            <key>tooltip</key>
-            <string>Argument(s) passed to function had a type mismatch.</string>
-         </map>
-         <key>STATUS_WHITELIST_FAILED</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2001</integer>
-            <key>tooltip</key>
-            <string>Whitelist Failed.</string>
-         </map>
-         <key>STRING_TRIM</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x03</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>STRING_TRIM_HEAD</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x01</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>STRING_TRIM_TAIL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x02</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>TEXTURE_BLANK</key>
-         <map>
-            <key>type</key>
-            <string>key</string>
-            <key>value</key>
-            <uuid>5748decc-f629-461c-9a36-a35a221fe21f</uuid>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>TEXTURE_DEFAULT</key>
-         <map>
-            <key>type</key>
-            <string>key</string>
-            <key>value</key>
-            <uuid>89556747-24cb-43ed-920b-47caed15465f</uuid>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>TEXTURE_MEDIA</key>
-         <map>
-            <key>type</key>
-            <string>key</string>
-            <key>value</key>
-            <uuid>8b5fec65-8d8d-9dc5-cda8-8fdf2716e361</uuid>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>TEXTURE_PLYWOOD</key>
-         <map>
-            <key>type</key>
-            <string>key</string>
-            <key>value</key>
-            <uuid>89556747-24cb-43ed-920b-47caed15465f</uuid>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>TEXTURE_TRANSPARENT</key>
-         <map>
-            <key>type</key>
-            <string>key</string>
-            <key>value</key>
-            <uuid>8dcd4a48-2d37-4909-9f78-f7a9eb4ef903</uuid>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>TOUCH_INVALID_FACE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0xFFFFFFFF</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>TOUCH_INVALID_TEXCOORD</key>
-         <map>
-            <key>type</key>
-            <string>vector</string>
-            <key>value</key>
-            <map>
-               <key>x</key>
-               <real>-1.0</real>
-               <key>y</key>
-               <real>-1.0</real>
-               <key>z</key>
-               <real>0.0</real>
-            </map>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>TOUCH_INVALID_VECTOR</key>
-         <map>
-            <key>type</key>
-            <string>vector</string>
-            <key>value</key>
-            <map>
-               <key>x</key>
-               <real>0.0</real>
-               <key>y</key>
-               <real>0.0</real>
-               <key>z</key>
-               <real>0.0</real>
-            </map>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>TRAVERSAL_TYPE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>7</integer>
-            <key>tooltip</key>
-            <string>One of TRAVERSAL_TYPE_FAST, TRAVERSAL_TYPE_SLOW, and TRAVERSAL_TYPE_NONE.</string>
-         </map>
-         <key>TRAVERSAL_TYPE_FAST</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>TRAVERSAL_TYPE_NONE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>TRAVERSAL_TYPE_SLOW</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>TRUE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>An integer constant for boolean comparisons. Has the value '1'.</string>
-         </map>
-         <key>TWO_PI</key>
-         <map>
-            <key>type</key>
-            <string>float</string>
-            <key>value</key>
-            <real>6.28318530</real>
-            <key>tooltip</key>
-            <string>6.28318530 - The radians of a circle.</string>
-         </map>
-         <key>TYPE_FLOAT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>The list entry is a float.</string>
-         </map>
-         <key>TYPE_INTEGER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>The list entry is an integer.</string>
-         </map>
-         <key>TYPE_INVALID</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string>The list entry is invalid.</string>
-         </map>
-         <key>TYPE_KEY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string>The list entry is a key.</string>
-         </map>
-         <key>TYPE_ROTATION</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>6</integer>
-            <key>tooltip</key>
-            <string>The list entry is a rotation.</string>
-         </map>
-         <key>TYPE_STRING</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string>The list entry is a string.</string>
-         </map>
-         <key>TYPE_VECTOR</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string>The list entry is a vector.</string>
-         </map>
-         <key>URL_REQUEST_DENIED</key>
-         <map>
-            <key>type</key>
-            <string>string</string>
-            <key>value</key>
-            <string>URL_REQUEST_DENIED</string>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>URL_REQUEST_GRANTED</key>
-         <map>
-            <key>type</key>
-            <string>string</string>
-            <key>value</key>
-            <string>URL_REQUEST_GRANTED</string>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>32</integer>
-            <key>tooltip</key>
-            <string>A slider between minimum (0.0) and maximum (1.0) deflection of angular orientation. That is, its a simple scalar for modulating the strength of angular deflection such that the vehicles preferred axis of motion points toward its real velocity.</string>
-         </map>
-         <key>VEHICLE_ANGULAR_DEFLECTION_TIMESCALE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>33</integer>
-            <key>tooltip</key>
-            <string>The time-scale for exponential success of linear deflection deflection. Its another way to specify the strength of the vehicles tendency to reorient itself so that its preferred axis of motion agrees with its true velocity.</string>
-         </map>
-         <key>VEHICLE_ANGULAR_FRICTION_TIMESCALE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>17</integer>
-            <key>tooltip</key>
-            <string>A vector of timescales for exponential decay of the vehicles angular velocity about its preferred axes of motion (at, left, up).
-			Range = [0.07, inf) seconds for each element of the vector.</string>
-         </map>
-         <key>VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>35</integer>
-            <key>tooltip</key>
-            <string>The timescale for exponential decay of the angular motors magnitude.</string>
-         </map>
-         <key>VEHICLE_ANGULAR_MOTOR_DIRECTION</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>19</integer>
-            <key>tooltip</key>
-            <string>The direction and magnitude (in preferred frame) of the vehicles angular motor.The vehicle will accelerate (or decelerate if necessary) to match its velocity to its motor.</string>
-         </map>
-         <key>VEHICLE_ANGULAR_MOTOR_TIMESCALE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>34</integer>
-            <key>tooltip</key>
-            <string>The timescale for exponential approach to full angular motor velocity.</string>
-         </map>
-         <key>VEHICLE_BANKING_EFFICIENCY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>38</integer>
-            <key>tooltip</key>
-            <string>A slider between anti (-1.0), none (0.0), and maxmum (1.0) banking strength.</string>
-         </map>
-         <key>VEHICLE_BANKING_MIX</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>39</integer>
-            <key>tooltip</key>
-            <string>A slider between static (0.0) and dynamic (1.0) banking. "Static" means the banking scales only with the angle of roll, whereas "dynamic" is a term that also scales with the vehicles linear speed.</string>
-         </map>
-         <key>VEHICLE_BANKING_TIMESCALE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>40</integer>
-            <key>tooltip</key>
-            <string>The timescale for banking to exponentially approach its maximum effect. This is another way to scale the strength of the banking effect, however it affects the term that is proportional to the difference between what the banking behavior is trying to do, and what the vehicle is actually doing.</string>
-         </map>
-         <key>VEHICLE_BUOYANCY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>27</integer>
-            <key>tooltip</key>
-            <string>A slider between minimum (0.0) and maximum anti-gravity (1.0).</string>
-         </map>
-         <key>VEHICLE_FLAG_CAMERA_DECOUPLED</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x200</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x10</integer>
-            <key>tooltip</key>
-            <string>Hover at global height.</string>
-         </map>
-         <key>VEHICLE_FLAG_HOVER_TERRAIN_ONLY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x8</integer>
-            <key>tooltip</key>
-            <string>Ignore water height when hovering.</string>
-         </map>
-         <key>VEHICLE_FLAG_HOVER_UP_ONLY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x20</integer>
-            <key>tooltip</key>
-            <string>Hover does not push down. Use this flag for hovering vehicles that should be able to jump above their hover height.</string>
-         </map>
-         <key>VEHICLE_FLAG_HOVER_WATER_ONLY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x4</integer>
-            <key>tooltip</key>
-            <string>Ignore terrain height when hovering.</string>
-         </map>
-         <key>VEHICLE_FLAG_LIMIT_MOTOR_UP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x40</integer>
-            <key>tooltip</key>
-            <string>Prevents ground vehicles from motoring into the sky.</string>
-         </map>
-         <key>VEHICLE_FLAG_LIMIT_ROLL_ONLY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x2</integer>
-            <key>tooltip</key>
-            <string>For vehicles with vertical attractor that want to be able to climb/dive, for instance, aeroplanes that want to use the banking feature.</string>
-         </map>
-         <key>VEHICLE_FLAG_MOUSELOOK_BANK</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x100</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>VEHICLE_FLAG_MOUSELOOK_STEER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x80</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>VEHICLE_FLAG_NO_DEFLECTION_UP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x1</integer>
-            <key>tooltip</key>
-            <string>This flag prevents linear deflection parallel to world z-axis. This is useful for preventing ground vehicles with large linear deflection, like bumper cars, from climbing their linear deflection into the sky.</string>
-         </map>
-         <key>VEHICLE_FLAG_NO_FLY_UP</key>
-         <map>
-            <key>deprecated</key>
-            <boolean>true</boolean>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x1</integer>
-            <key>tooltip</key>
-            <string>Old, changed to VEHICLE_FLAG_NO_DEFLECTION_UP</string>
-         </map>
-         <key>VEHICLE_HOVER_EFFICIENCY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>25</integer>
-            <key>tooltip</key>
-            <string>A slider between minimum (0.0 = bouncy) and maximum (1.0 = fast as possible) damped motion of the hover behavior. </string>
-         </map>
-         <key>VEHICLE_HOVER_HEIGHT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>24</integer>
-            <key>tooltip</key>
-            <string>The height (above the terrain or water, or global) at which the vehicle will try to hover.</string>
-         </map>
-         <key>VEHICLE_HOVER_TIMESCALE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>26</integer>
-            <key>tooltip</key>
-            <string>Period of time (in seconds) for the vehicle to achieve its hover height.</string>
-         </map>
-         <key>VEHICLE_LINEAR_DEFLECTION_EFFICIENCY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>28</integer>
-            <key>tooltip</key>
-            <string>A slider between minimum (0.0) and maximum (1.0) deflection of linear velocity. That is, its a simple scalar for modulating the strength of linear deflection.</string>
-         </map>
-         <key>VEHICLE_LINEAR_DEFLECTION_TIMESCALE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>29</integer>
-            <key>tooltip</key>
-            <string>The timescale for exponential success of linear deflection deflection. It is another way to specify how much time it takes for the vehicles linear velocity to be redirected to its preferred axis of motion.</string>
-         </map>
-         <key>VEHICLE_LINEAR_FRICTION_TIMESCALE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>16</integer>
-            <key>tooltip</key>
-            <string>A vector of timescales for exponential decay of the vehicles linear velocity along its preferred axes of motion (at, left, up).
-			Range = [0.07, inf) seconds for each element of the vector.</string>
-         </map>
-         <key>VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>35</integer>
-            <key>tooltip</key>
-            <string>The timescale for exponential decay of the linear motors magnitude.</string>
-         </map>
-         <key>VEHICLE_LINEAR_MOTOR_DIRECTION</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>18</integer>
-            <key>tooltip</key>
-            <string>The direction and magnitude (in preferred frame) of the vehicles linear motor. The vehicle will accelerate (or decelerate if necessary) to match its velocity to its motor.
-			Range of magnitude = [0, 30] meters/second.</string>
-         </map>
-         <key>VEHICLE_LINEAR_MOTOR_OFFSET</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>20</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>VEHICLE_LINEAR_MOTOR_TIMESCALE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>30</integer>
-            <key>tooltip</key>
-            <string>The timescale for exponential approach to full linear motor velocity.</string>
-         </map>
-         <key>VEHICLE_REFERENCE_FRAME</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>44</integer>
-            <key>tooltip</key>
-            <string>A rotation of the vehicles preferred axes of motion and orientation (at, left, up) with respect to the vehicles local frame (x, y, z).</string>
-         </map>
-         <key>VEHICLE_TYPE_AIRPLANE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string>Uses linear deflection for lift, no hover, and banking to turn.
-			// very little friction along forward-back axis
-			llSetVehicleVectorParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, &lt;200, 10, 5&gt; );
-			// uniform angular friction
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_FRICTION_TIMESCALE, 20 );
-			// linear motor
-			llSetVehicleVectorParam( VEHICLE_LINEAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
-			llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_TIMESCALE, 2 );
-			llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 60 );
-			// angular motor
-			llSetVehicleVectorParam( VEHICLE_ANGULAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_TIMESCALE, 4 );
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 8 );
-			// no hover
-			llSetVehicleFloatParam( VEHICLE_HOVER_HEIGHT, 0 );
-			llSetVehicleFloatParam( VEHICLE_HOVER_EFFICIENCY, 0.5 );
-			llSetVehicleFloatParam( VEHICLE_HOVER_TIMESCALE, 1000 );
-			llSetVehicleFloatParam( VEHICLE_BUOYANCY, 0 );
-			// linear deflection
-			llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 0.5 );
-			llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 0.5 );
-			// angular deflection
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 1.0 );
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 2.0 );
-			// vertical attractor
-			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 0.9 );
-			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 2 );
-			// banking
-			llSetVehicleFloatParam( VEHICLE_BANKING_EFFICIENCY, 1 );
-			llSetVehicleFloatParam( VEHICLE_BANKING_MIX, 0.7 );
-			llSetVehicleFloatParam( VEHICLE_BANKING_TIMESCALE, 2 );
-			// default rotation of local frame
-			llSetVehicleRotationParam( VEHICLE_REFERENCE_FRAME, &lt;0, 0, 0, 1&gt; );
-			// remove these flags
-			llRemoveVehicleFlags( VEHICLE_FLAG_NO_DEFLECTION_UP
-			| VEHICLE_FLAG_HOVER_WATER_ONLY
-			| VEHICLE_FLAG_HOVER_TERRAIN_ONLY
-			| VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT
-			| VEHICLE_FLAG_HOVER_UP_ONLY
-			| VEHICLE_FLAG_LIMIT_MOTOR_UP );
-			// set these flags
-			llSetVehicleFlags( VEHICLE_FLAG_LIMIT_ROLL_ONLY );</string>
-         </map>
-         <key>VEHICLE_TYPE_BALLOON</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string>Hover, and friction, but no deflection.
-			// uniform linear friction
-			llSetVehicleFloatParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, 5 );
-			// uniform angular friction
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_FRICTION_TIMESCALE, 10 );
-			// linear motor
-			llSetVehicleVectorParam( VEHICLE_LINEAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
-			llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_TIMESCALE, 5 );
-			llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 60 );
-			// angular motor
-			llSetVehicleVectorParam( VEHICLE_ANGULAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_TIMESCALE, 6 );
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 10 );
-			// hover
-			llSetVehicleFloatParam( VEHICLE_HOVER_HEIGHT, 5 );
-			llSetVehicleFloatParam( VEHICLE_HOVER_EFFICIENCY, 0.8 );
-			llSetVehicleFloatParam( VEHICLE_HOVER_TIMESCALE, 10 );
-			llSetVehicleFloatParam( VEHICLE_BUOYANCY, 1 );
-			// no linear deflection
-			llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 0 );
-			llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 5 );
-			// no angular deflection
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 0 );
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 5 );
-			// no vertical attractor
-			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 1 );
-			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 1000 );
-			// no banking
-			llSetVehicleFloatParam( VEHICLE_BANKING_EFFICIENCY, 0 );
-			llSetVehicleFloatParam( VEHICLE_BANKING_MIX, 0.7 );
-			llSetVehicleFloatParam( VEHICLE_BANKING_TIMESCALE, 5 );
-			// default rotation of local frame
-			llSetVehicleRotationParam( VEHICLE_REFERENCE_FRAME, &lt;0, 0, 0, 1&gt; );
-			// remove all flags
-			llRemoveVehicleFlags( VEHICLE_FLAG_NO_DEFLECTION_UP
-			| VEHICLE_FLAG_HOVER_WATER_ONLY
-			| VEHICLE_FLAG_LIMIT_ROLL_ONLY
-			| VEHICLE_FLAG_HOVER_TERRAIN_ONLY
-			| VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT
-			| VEHICLE_FLAG_HOVER_UP_ONLY
-			| VEHICLE_FLAG_LIMIT_MOTOR_UP );</string>
-         </map>
-         <key>VEHICLE_TYPE_BOAT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string>Hovers over water with lots of friction and some anglar deflection.
-			// least for forward-back, most friction for up-down
-			llSetVehicleVectorParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, &lt;10, 3, 2&gt; );
-			// uniform angular friction (setting it as a scalar rather than a vector)
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_FRICTION_TIMESCALE, 10 );
-			// linear motor wins after about five seconds, decays after about a minute
-			llSetVehicleVectorParam( VEHICLE_LINEAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
-			llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_TIMESCALE, 5 );
-			llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 60 );
-			// angular motor wins after four seconds, decays in same amount of time
-			llSetVehicleVectorParam( VEHICLE_ANGULAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_TIMESCALE, 4 );
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 4 );
-			// hover
-			llSetVehicleFloatParam( VEHICLE_HOVER_HEIGHT, 0 );
-			llSetVehicleFloatParam( VEHICLE_HOVER_EFFICIENCY, 0.5 );
-			llSetVehicleFloatParam( VEHICLE_HOVER_TIMESCALE, 2.0 );
-			llSetVehicleFloatParam( VEHICLE_BUOYANCY, 1 );
-			// halfway linear deflection with timescale of 3 seconds
-			llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 0.5 );
-			llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 3 );
-			// angular deflection
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 0.5 );
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 5 );
-			// somewhat bounscy vertical attractor
-			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 0.5 );
-			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 5 );
-			// weak negative damped banking
-			llSetVehicleFloatParam( VEHICLE_BANKING_EFFICIENCY, -0.3 );
-			llSetVehicleFloatParam( VEHICLE_BANKING_MIX, 0.8 );
-			llSetVehicleFloatParam( VEHICLE_BANKING_TIMESCALE, 1 );
-			// default rotation of local frame
-			llSetVehicleRotationParam( VEHICLE_REFERENCE_FRAME, &lt;0, 0, 0, 1&gt; );
-			// remove these flags
-			llRemoveVehicleFlags( VEHICLE_FLAG_HOVER_TERRAIN_ONLY
-			| VEHICLE_FLAG_LIMIT_ROLL_ONLY
-			| VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT);
-			// set these flags
-			llSetVehicleFlags( VEHICLE_FLAG_NO_DEFLECTION_UP
-			| VEHICLE_FLAG_HOVER_WATER_ONLY
-			| VEHICLE_FLAG_HOVER_UP_ONLY
-			| VEHICLE_FLAG_LIMIT_MOTOR_UP );</string>
-         </map>
-         <key>VEHICLE_TYPE_CAR</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>Another vehicle that bounces along the ground but needs
-			the motors to be driven from external controls or
-			timer events.
-			// most friction for left-right, least for up-down
-			llSetVehicleVectorParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, &lt;100, 2, 1000&gt; );
-			// no angular friction
-			llSetVehicleVectorParam( VEHICLE_ANGULAR_FRICTION_TIMESCALE, &lt;1000, 1000, 1000&gt; );
-			// linear motor wins after about a second, decays after about a minute
-			llSetVehicleVectorParam( VEHICLE_LINEAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
-			llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_TIMESCALE, 1 );
-			llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 60 );
-			// angular motor wins after a second, decays in less time than that
-			llSetVehicleVectorParam( VEHICLE_ANGULAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_TIMESCALE, 1 );
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 0.8 );
-			// no hover
-			llSetVehicleFloatParam( VEHICLE_HOVER_HEIGHT, 0 );
-			llSetVehicleFloatParam( VEHICLE_HOVER_EFFICIENCY, 0 );
-			llSetVehicleFloatParam( VEHICLE_HOVER_TIMESCALE, 1000 );
-			llSetVehicleFloatParam( VEHICLE_BUOYANCY, 0 );
-			// maximum linear deflection with timescale of 2 seconds
-			llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 1 );
-			llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 2 );
-			// no angular deflection
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 0 );
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 10 );
-			// critically damped vertical attractor
-			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 1 );
-			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 10 );
-			// weak negative critically damped banking
-			llSetVehicleFloatParam( VEHICLE_BANKING_EFFICIENCY, -0.2 );
-			llSetVehicleFloatParam( VEHICLE_BANKING_MIX, 1 );
-			llSetVehicleFloatParam( VEHICLE_BANKING_TIMESCALE, 1 );
-			// default rotation of local frame
-			llSetVehicleRotationParam( VEHICLE_REFERENCE_FRAME, &lt;0, 0, 0, 1&gt; );
-			// remove these flags
-			llRemoveVehicleFlags( VEHICLE_FLAG_HOVER_WATER_ONLY
-			| VEHICLE_FLAG_HOVER_TERRAIN_ONLY
-			| VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT);
-			// set these flags
-			llSetVehicleFlags( VEHICLE_FLAG_NO_DEFLECTION_UP
-			| VEHICLE_FLAG_LIMIT_ROLL_ONLY
-			| VEHICLE_FLAG_HOVER_UP_ONLY
-			| VEHICLE_FLAG_LIMIT_MOTOR_UP );</string>
-         </map>
-         <key>VEHICLE_TYPE_NONE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>VEHICLE_TYPE_SLED</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>Simple vehicle that bumps along the ground,
-			and likes to move along its local x-axis.
-			// most friction for left-right, least for up-down
-			llSetVehicleVectorParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, &lt;30, 1, 1000&gt; );
-			// no angular friction
-			llSetVehicleVectorParam( VEHICLE_ANGULAR_FRICTION_TIMESCALE, &lt;1000, 1000, 1000&gt; );
-			// no linear motor
-			llSetVehicleVectorParam( VEHICLE_LINEAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
-			llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_TIMESCALE, 1000 );
-			llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 120 );
-			// no angular motor
-			llSetVehicleVectorParam( VEHICLE_ANGULAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_TIMESCALE, 1000 );
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 120 );
-			// no hover (but with timescale of 10 sec if enabled)
-			llSetVehicleFloatParam( VEHICLE_HOVER_HEIGHT, 0 );
-			llSetVehicleFloatParam( VEHICLE_HOVER_EFFICIENCY, 10 );
-			llSetVehicleFloatParam( VEHICLE_HOVER_TIMESCALE, 10 );
-			llSetVehicleFloatParam( VEHICLE_BUOYANCY, 0 );
-			// maximum linear deflection with timescale of 1 second
-			llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 1 );
-			llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 1 );
-			// no angular deflection
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 0 );
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 10 );
-			// no vertical attractor (doesnt mind flipping over)
-			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 1 );
-			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 1000 );
-			// no banking
-			llSetVehicleFloatParam( VEHICLE_BANKING_EFFICIENCY, 0 );
-			llSetVehicleFloatParam( VEHICLE_BANKING_MIX, 1 );
-			llSetVehicleFloatParam( VEHICLE_BANKING_TIMESCALE, 10 );
-			// default rotation of local frame
-			llSetVehicleRotationParam( VEHICLE_REFERENCE_FRAME, &lt;0, 0, 0, 1&gt; );
-			// remove these flags
-			llRemoveVehicleFlags( VEHICLE_FLAG_HOVER_WATER_ONLY
-			| VEHICLE_FLAG_HOVER_TERRAIN_ONLY
-			| VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT
-			| VEHICLE_FLAG_HOVER_UP_ONLY );
-			// set these flags (the limit_roll flag will have no effect
-			// until banking is enabled, if ever)
-			llSetVehicleFlags( VEHICLE_FLAG_NO_DEFLECTION_UP
-			| VEHICLE_FLAG_LIMIT_ROLL_ONLY
-			| VEHICLE_FLAG_LIMIT_MOTOR_UP );</string>
-         </map>
-         <key>VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>36</integer>
-            <key>tooltip</key>
-            <string>A slider between minimum (0.0 = wobbly) and maximum (1.0 = firm as possible) stability of the vehicle to keep itself upright.</string>
-         </map>
-         <key>VEHICLE_VERTICAL_ATTRACTION_TIMESCALE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>37</integer>
-            <key>tooltip</key>
-            <string>The period of wobble, or timescale for exponential approach, of the vehicle to rotate such that its preferred "up" axis is oriented along the worlds "up" axis.</string>
-         </map>
-         <key>VERTICAL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>WANDER_PAUSE_AT_WAYPOINTS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>ZERO_ROTATION</key>
-         <map>
-            <key>type</key>
-            <string>rotation</string>
-            <key>value</key>
-            <map>
-               <key>x</key>
-               <real>0.0</real>
-               <key>y</key>
-               <real>0.0</real>
-               <key>z</key>
-               <real>0.0</real>
-               <key>w</key>
-               <real>1.0</real>
-            </map>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>ZERO_VECTOR</key>
-         <map>
-            <key>type</key>
-            <string>vector</string>
-            <key>value</key>
-            <map>
-               <key>x</key>
-               <real>0.0</real>
-               <key>y</key>
-               <real>0.0</real>
-               <key>z</key>
-               <real>0.0</real>
-            </map>
-            <key>tooltip</key>
-            <string/>
-         </map>
-      </map>
-      <key>events</key>
-      <map>
-         <key>at_rot_target</key>
-         <map>
-            <key>arguments</key>
-            <map>
-               <key>TargetNumber</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>TargetRotation</key>
-               <map>
-                  <key>type</key>
-                  <string>rotation</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>CurrentRotation</key>
-               <map>
-                  <key>type</key>
-                  <string>rotation</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>This event is triggered when a script comes within a defined angle of a target rotation. The range and rotation, are set by a call to llRotTarget.</string>
-         </map>
-         <key>at_target</key>
-         <map>
-            <key>arguments</key>
-            <map>
-               <key>TargetNumber</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>TargetPosition</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>CurrentPosition</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>This event is triggered when the scripted object comes within a defined range of the target position, defined by the llTarget function call.</string>
-         </map>
-         <key>attach</key>
-         <map>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>This event is triggered whenever an object is attached or detached from an avatar. If it is attached, the key of the avatar it is attached to is passed in, otherwise NULL_KEY is.</string>
-         </map>
-         <key>changed</key>
-         <map>
-            <key>arguments</key>
-            <map>
-               <key>Changed</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Triggered when various events change the object. The change argument will be a bit-field of CHANGED_* constants.</string>
-         </map>
-         <key>collision</key>
-         <map>
-            <key>arguments</key>
-            <map>
-               <key>NumberOfCollisions</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>This event is raised while another object, or avatar, is colliding with the object the script is attached to.
-			The number of detected objects is passed to the script. Information on those objects may be gathered via the llDetected* functions.</string>
-         </map>
-         <key>collision_end</key>
-         <map>
-            <key>arguments</key>
-            <map>
-               <key>NumberOfCollisions</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>This event is raised when another object, or avatar, stops colliding with the object the script is attached to.
-			The number of detected objects is passed to the script. Information on those objects may be gathered via the llDetected* library functions.</string>
-         </map>
-         <key>collision_start</key>
-         <map>
-            <key>arguments</key>
-            <map>
-               <key>NumberOfCollisions</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>This event is raised when another object, or avatar, starts colliding with the object the script is attached to.
-			The number of detected objects is passed to the script. Information on those objects may be gathered via the llDetected* library functions.</string>
-         </map>
-         <key>control</key>
-         <map>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Levels</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Edges</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Once a script has the ability to grab control inputs from the avatar, this event will be used to pass the commands into the script.
-			The levels and edges are bit-fields of control constants.</string>
-         </map>
-         <key>dataserver</key>
-         <map>
-            <key>arguments</key>
-            <map>
-               <key>RequestID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Data</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>This event is triggered when the requested data is returned to the script.
-			Data may be requested by the llRequestAgentData, llRequestInventoryData, and llGetNotecardLine function calls, for example.</string>
-         </map>
-         <key>email</key>
-         <map>
-            <key>arguments</key>
-            <map>
-               <key>Time</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Address</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Subject</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Body</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>NumberRemaining</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>This event is triggered when an email sent to this script arrives.
-			The number remaining tells how many more emails are known to be still pending.</string>
-         </map>
-         <key>http_request</key>
-         <map>
-            <key>arguments</key>
-            <map>
-               <key>HTTPRequestID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>HTTPMethod</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Body</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Triggered when task receives an HTTP request.</string>
-         </map>
-         <key>http_response</key>
-         <map>
-            <key>arguments</key>
-            <map>
-               <key>HTTPRequestID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Status</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Metadata</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Body</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>This event handler is invoked when an HTTP response is received for a pending llHTTPRequest request or if a pending request fails or times out.</string>
-         </map>
-         <key>land_collision</key>
-         <map>
-            <key>arguments</key>
-            <map>
-               <key>Position</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>This event is raised when the object the script is attached to is colliding with the ground.</string>
-         </map>
-         <key>land_collision_end</key>
-         <map>
-            <key>arguments</key>
-            <map>
-               <key>Position</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>This event is raised when the object the script is attached to stops colliding with the ground.</string>
-         </map>
-         <key>land_collision_start</key>
-         <map>
-            <key>arguments</key>
-            <map>
-               <key>Position</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>This event is raised when the object the script is attached to begins to collide with the ground.</string>
-         </map>
-         <key>link_message</key>
-         <map>
-            <key>arguments</key>
-            <map>
-               <key>SendersLink</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Value</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>ID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Triggered when object receives a link message via llMessageLinked function call.</string>
-         </map>
-         <key>listen</key>
-         <map>
-            <key>arguments</key>
-            <map>
-               <key>Channel</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Name</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>ID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>This event is raised whenever a chat message matching the constraints set in the llListen command is received. The name and ID of the speaker, as well as the message, are passed in as parameters.
-			Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 through 2,147,483,648 are private channels that are not sent to avatars but other scripts can listen on those channels.</string>
-         </map>
-         <key>money</key>
-         <map>
-            <key>arguments</key>
-            <map>
-               <key>Payer</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Amount</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>This event is triggered when a resident has given an amount of Linden dollars to the object.</string>
-         </map>
-         <key>moving_end</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Triggered whenever an object with this script stops moving.</string>
-         </map>
-         <key>moving_start</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Triggered whenever an object with this script starts moving.</string>
-         </map>
-         <key>no_sensor</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>This event is raised when sensors are active, via the llSensor function call, but are not sensing anything.</string>
-         </map>
-         <key>not_at_rot_target</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>When a target is set via the llRotTarget function call, but the script is outside the specified angle this event is raised.</string>
-         </map>
-         <key>not_at_target</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>When a target is set via the llTarget library call, but the script is outside the specified range this event is raised.</string>
-         </map>
-         <key>object_rez</key>
-         <map>
-            <key>arguments</key>
-            <map>
-               <key>RezzedObjectsID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Triggered when an object rezzes another object from its inventory via the llRezObject, or similar, functions. The id is the globally unique key for the object rezzed.</string>
-         </map>
-         <key>on_rez</key>
-         <map>
-            <key>arguments</key>
-            <map>
-               <key>StartParameter</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Triggered whenever an object is rezzed from inventory or by another object. The start parameter is passed in from the llRezObject call, or zero if from inventory.</string>
-         </map>
-         <key>path_update</key>
-         <map>
-            <key>arguments</key>
-            <map>
-               <key>Type</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Reserved</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>This event is called to inform the script of changes within the object's path-finding status.</string>
-         </map>
-         <key>remote_data</key>
-         <map>
-            <key>arguments</key>
-            <map>
-               <key>EventType</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>ChannelID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>MessageID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Sender</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Data</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Data</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Triggered by various XML-RPC calls with event_type specifying the type of data.</string>
-         </map>
-         <key>run_time_permissions</key>
-         <map>
-            <key>arguments</key>
-            <map>
-               <key>PermissionFlags</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Scripts need permission from either the owner or the avatar they wish to act on before they may perform certain functions, such as debiting money from their owners account, triggering an animation on an avatar, or capturing control inputs. The llRequestPermissions library function is used to request these permissions and the various permissions integer constants can be supplied.
-			The integer returned to this event handler contains the current set of permissions flags, so if permissions equal 0 then no permissions are set.</string>
-         </map>
-         <key>sensor</key>
-         <map>
-            <key>arguments</key>
-            <map>
-               <key>NumberDetected</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>This event is raised whenever objects matching the constraints of the llSensor command are detected.
-			The number of detected objects is passed to the script in the parameter. Information on those objects may be gathered via the llDetected* functions.</string>
-         </map>
-         <key>state_entry</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>The state_entry event occurs whenever a new state is entered, including at program start, and is always the first event handled.</string>
-         </map>
-         <key>state_exit</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>The state_exit event occurs whenever the state command is used to transition to another state. It is handled before the new states state_entry event.</string>
-         </map>
-         <key>timer</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>This event is raised at regular intervals set by the llSetTimerEvent library function.</string>
-         </map>
-         <key>touch</key>
-         <map>
-            <key>arguments</key>
-            <map>
-               <key>NumberOfTouches</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>This event is raised while a user is touching the object the script is attached to.
-			The number of touching objects is passed to the script in the parameter.
-			Information on those objects may be gathered via the llDetected* library functions.</string>
-         </map>
-         <key>touch_end</key>
-         <map>
-            <key>arguments</key>
-            <map>
-               <key>NumberOfTouches</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>This event is raised when a user stops touching the object the script is attached to. The number of touches is passed to the script in the parameter.
-			Information on those objects may be gathered via the llDetected* library functions.</string>
-         </map>
-         <key>touch_start</key>
-         <map>
-            <key>arguments</key>
-            <map>
-               <key>NumberOfTouches</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>This event is raised when a user first touches the object the script is attached to. The number of touches is passed to the script in the parameter.
-			Information on those objects may be gathered via the llDetected() library functions.</string>
-         </map>
-         <key>transaction_result</key>
-         <map>
-            <key>arguments</key>
-            <map>
-               <key>RequestID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Success</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Message</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Triggered by llTransferMoney() function.</string>
-         </map>
-      </map>
-      <key>functions</key>
-      <map>
-         <key>llAbs</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Value</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the absolute (positive) version of Value.</string>
-         </map>
-         <key>llAcos</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>Value</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the arc-cosine of Value, in radians.</string>
-         </map>
-         <key>llAddToLandBanList</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>ID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Hours</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Add avatar ID to the parcel ban list for the specified number of Hours.\nA value of 0 for Hours will add the agent indefinitely.\nThe smallest value that Hours will accept is 0.01; anything smaller will be seen as 0.\nWhen values that small are used, it seems the function bans in approximately 30 second increments (Probably 36 second increments, as 0.01 of an hour is 36 seconds).\nResidents teleporting to a parcel where they are banned will be redirected to a neighbouring parcel.</string>
-         </map>
-         <key>llAddToLandPassList</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.1</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>ID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Hours</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Add avatar ID to the land pass list, for a duration of Hours.</string>
-         </map>
-         <key>llAdjustSoundVolume</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.1</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Volume</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Adjusts the volume (0.0 - 1.0) of the currently playing attached sound started with llPlaySound or llLoopSound.\nAdjusts the volume of the currently playing attached sound started with llPlaySound or llLoopSound.\nThis function has no effect on sounds started with llTriggerSound.</string>
-         </map>
-         <key>llAllowInventoryDrop</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Flag</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>If Flag == TRUE, users without object modify permissions can still drop inventory items into the object.</string>
-         </map>
-         <key>llAngleBetween</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>Rot1</key>
-               <map>
-                  <key>type</key>
-                  <string>rotation</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Rot2</key>
-               <map>
-                  <key>type</key>
-                  <string>rotation</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the angle, in radians, between rotations Rot1 and Rot2.</string>
-         </map>
-         <key>llApplyImpulse</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Force</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Local</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Applies impulse to the object.\nApplies the Force in local coordinates if Local == TRUE. Otherwise the Force is applied in global coordinates.\nThis function only works on physical objects.</string>
-         </map>
-         <key>llApplyRotationalImpulse</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Force</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Local</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Applies rotational impulse to the object,\nThe force is in local coordinates, if Local == TRUE, otherwise the impulse is applied in global coordinates.\nThis function only works on physical objects.</string>
-         </map>
-         <key>llAsin</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>Value</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the arc-sine, in radians, of Value.</string>
-         </map>
-         <key>llAtan2</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>y</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>x</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the arc-tangent2 of y, x.</string>
-         </map>
-         <key>llAttachToAvatar</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>AttachmentPoint</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Attach to avatar at point AttachmentPoint, if task has permissions to do so.\nAttach to avatar at point iAttachmentPoint.\nRequires the PERMISSION_ATTACH runtime permission.</string>
-         </map>
-         <key>llAttachToAvatarTemp</key>
-         <map>
-            <key>energy</key>
-            <real>0</real>
-            <key>sleep</key>
-            <real>0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>AttachPoint</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Follows the same convention as llAttachToAvatar, with the exception that the object will not create new inventory for the user, and will disappear on detach or disconnect.</string>
-         </map>
-         <key>llAvatarOnLinkSitTarget</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>arguments</key>
-            <map>
-               <key>LinkNumber</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>If an avatar is sitting on the link's sit target, return the avatar's key, NULL_KEY otherwise.\nReturns a key that is the UUID of the user seated on the specified link's prim.</string>
-         </map>
-         <key>llAvatarOnSitTarget</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>If an avatar is seated on the sit target, returns the avatar's key, otherwise NULL_KEY.\nThis only will detect avatars sitting on sit targets defined with llSitTarget.</string>
-         </map>
-         <key>llAxes2Rot</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>rotation</string>
-            <key>arguments</key>
-            <map>
-               <key>Forward</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Left</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Up</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the rotation represented by coordinate axes Forward, Left, and Up.</string>
-         </map>
-         <key>llAxisAngle2Rot</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>rotation</string>
-            <key>arguments</key>
-            <map>
-               <key>Axis</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Angle</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the rotation that is a generated Angle about Axis.</string>
-         </map>
-         <key>llBase64ToInteger</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns an integer that is the Text, Base64 decoded as a big endian integer.\nReturns zero if Text is longer then 8 characters. If Text contains fewer then 6 characters, the return value is unpredictable.</string>
-         </map>
-         <key>llBase64ToString</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Converts a Base64 string to a conventional string.\nIf the conversion creates any unprintable characters, they are converted to question marks.</string>
-         </map>
-         <key>llBreakAllLinks</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>De-links all prims in the link set (requires permission PERMISSION_CHANGE_LINKS be set).</string>
-         </map>
-         <key>llBreakLink</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>LinkNumber</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>De-links the prim with the given link number (requires permission PERMISSION_CHANGE_LINKS be set).</string>
-         </map>
-         <key>llCastRay</key>
-         <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real/>
-            <key>return</key>
-            <string>list</string>
-            <key>arguments</key>
-            <map>
-               <key>Start</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>End</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Options</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Casts a ray into the physics world from 'start' to 'end' and returns data according to details in Options.\nReports collision data for intersections with objects.\nReturn value: [UUID_1, {link_number_1}, hit_position_1, {hit_normal_1}, UUID_2, {link_number_2}, hit_position_2, {hit_normal_2}, ... , status_code] where {} indicates optional data.</string>
-         </map>
-         <key>llCeil</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Value</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns smallest integer value &gt;= Value.</string>
-         </map>
-         <key>llClearCameraParams</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Resets all camera parameters to default values and turns off scripted camera control.</string>
-         </map>
-         <key>llClearLinkMedia</key>
-         <map>
-            <key>energy</key>
-            <real>0.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Link</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Face</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Clears (deletes) the media and all parameters from the given Face on the linked prim.\nReturns an integer that is a STATUS_* flag, which details the success/failure of the operation.</string>
-         </map>
-         <key>llClearPrimMedia</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.1</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Face</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Clears (deletes) the media and all parameters from the given Face.\nReturns an integer that is a STATUS_* flag which details the success/failure of the operation.</string>
-         </map>
-         <key>llCloseRemoteDataChannel</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>1.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>ChannelID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Closes the specified XML-RPC channel.</string>
-         </map>
-         <key>llCloud</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>Offset</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the cloud density at the object's position + Offset.</string>
-         </map>
-         <key>llCollisionFilter</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>ObjectName</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>ObjectID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Accept</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>If Accept == TRUE, only accept collisions with objects Name and ID, otherwise with objects not Name or ID.\nSpecify an empty string or NULL_KEY to not filter on the corresponding parameter.</string>
-         </map>
-         <key>llCollisionSound</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>ImpactSound</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>ImpactVolume</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Suppress default collision sounds, replace default impact sounds with ImpactSound.\nThe ImpactSound must be in the object inventory.\nSupply an empty string to suppress collision sounds.</string>
-         </map>
-         <key>llCollisionSprite</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>ImpactSprite</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Suppress default collision sprites, replace default impact sprite with ImpactSprite; found in the object inventory (empty string to just suppress).</string>
-         </map>
-         <key>llCos</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>Theta</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the cosine of Theta (Theta in radians).</string>
-         </map>
-         <key>llCreateCharacter</key>
-         <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real/>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Options</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Convert link-set to AI/Physics character.\nCreates a path-finding entity, known as a "character", from the object containing the script. Required to activate use of path-finding functions.\nOptions is a list of key/value pairs.</string>
-         </map>
-         <key>llCreateLink</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>1.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>TargetPrim</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Parent</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Attempt to link the object the script is in, to target (requires permission PERMISSION_CHANGE_LINKS be set).\nIf parent == TRUE, the object the script is attached to is the root.\nRequires permission PERMISSION_CHANGE_LINKS be set.</string>
-         </map>
-         <key>llCSV2List</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>list</string>
-            <key>arguments</key>
-            <map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Create a list from a string of comma separated values specified in Text.</string>
-         </map>
-         <key>llDeleteCharacter</key>
-         <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real/>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Convert link-set from AI/Physics character to Physics object.\nConvert the current link-set back to a standard object, removing all path-finding properties.</string>
-         </map>
-         <key>llDeleteSubList</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>list</string>
-            <key>arguments</key>
-            <map>
-               <key>Source</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Start</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>End</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Removes the slice from start to end and returns the remainder of the list.\nRemove a slice from the list and return the remainder, start and end are inclusive.\nUsing negative numbers for start and/or end causes the index to count backwards from the length of the list, so 0, -1 would delete the entire list.\nIf Start is larger than End the list deleted is the exclusion of the entries; so 6, 4 would delete the entire list except for the 5th. list entry.</string>
-         </map>
-         <key>llDeleteSubString</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>Source</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Start</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>End</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Removes the indicated sub-string and returns the result.\nStart and End are inclusive.\nUsing negative numbers for Start and/or End causes the index to count backwards from the length of the string, so 0, -1 would delete the entire string.\nIf Start is larger than End, the sub-string is the exclusion of the entries; so 6, 4 would delete the entire string except for the 5th. character.</string>
-         </map>
-         <key>llDetachFromAvatar</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Remove the object containing the script from the avatar.</string>
-         </map>
-         <key>llDetectedGrab</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>Number</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the grab offset of a user touching the object.\nReturns &lt;0.0, 0.0, 0.0&gt; if Number is not a valid object.</string>
-         </map>
-         <key>llDetectedGroup</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Number</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns TRUE if detected object or agent Number has the same user group active as this object.\nIt will return FALSE if the object or agent is in the group, but the group is not active.</string>
-         </map>
-         <key>llDetectedKey</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>arguments</key>
-            <map>
-               <key>Number</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the key of detected object or avatar number.\nReturns NULL_KEY if Number is not a valid index.</string>
-         </map>
-         <key>llDetectedLinkNumber</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Number</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the link position of the triggered event for touches and collisions only.\n0 for a non-linked object, 1 for the root of a linked object, 2 for the first child, etc.</string>
-         </map>
-         <key>llDetectedName</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>Number</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the name of detected object or avatar number.\nReturns the name of detected object number.\nReturns empty string if Number is not a valid index.</string>
-         </map>
-         <key>llDetectedOwner</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>arguments</key>
-            <map>
-               <key>Number</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the key of detected object's owner.\nReturns invalid key if Number is not a valid index.</string>
-         </map>
-         <key>llDetectedPos</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>Number</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the position of detected object or avatar number.\nReturns &lt;0.0, 0.0, 0.0&gt; if Number is not a valid index.</string>
-         </map>
-         <key>llDetectedRot</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>rotation</string>
-            <key>arguments</key>
-            <map>
-               <key>Number</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the rotation of detected object or avatar number.\nReturns &lt;0.0, 0.0, 0.0, 1.0&gt; if Number is not a valid offset.</string>
-         </map>
-         <key>llDetectedTouchBinormal</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>Index</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the surface bi-normal for a triggered touch event.\nReturns a vector that is the surface bi-normal (tangent to the surface) where the touch event was triggered.</string>
-         </map>
-         <key>llDetectedTouchFace</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Index</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the index of the face where the avatar clicked in a triggered touch event.</string>
-         </map>
-         <key>llDetectedTouchNormal</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>Index</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the surface normal for a triggered touch event.\nReturns a vector that is the surface normal (perpendicular to the surface) where the touch event was triggered.</string>
-         </map>
-         <key>llDetectedTouchPos</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>Index</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the position, in region coordinates, where the object was touched in a triggered touch event.\nUnless it is a HUD, in which case it returns the position relative to the attach point.</string>
-         </map>
-         <key>llDetectedTouchST</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>Index</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns a vector that is the surface coordinates where the prim was touched.\nThe X and Y vector positions contain the horizontal (S) and vertical (T) face coordinates respectively.\nEach component is in the interval [0.0, 1.0].\nTOUCH_INVALID_TEXCOORD is returned if the surface coordinates cannot be determined (e.g. when the viewer does not support this function).</string>
-         </map>
-         <key>llDetectedTouchUV</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>Index</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns a vector that is the texture coordinates for where the prim was touched.\nThe X and Y vector positions contain the U and V face coordinates respectively.\nTOUCH_INVALID_TEXCOORD is returned if the touch UV coordinates cannot be determined (e.g. when the viewer does not support this function).</string>
-         </map>
-         <key>llDetectedType</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Number</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the type (AGENT, ACTIVE, PASSIVE, SCRIPTED) of detected object.\nReturns 0 if number is not a valid index.\nNote that number is a bit-field, so comparisons need to be a bitwise checked. e.g.:\ninteger iType = llDetectedType(0);\n{\n	// ...do stuff with the agent\n}</string>
-         </map>
-         <key>llDetectedVel</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>Number</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the velocity of the detected object Number.\nReturns&lt;0.0, 0.0, 0.0&gt; if Number is not a valid offset.</string>
-         </map>
-         <key>llDialog</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.1</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Buttons</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Channel</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Shows a dialog box on the avatar's screen with the message.\n
-				Up to 12 strings in the list form buttons.\n
-				If a button is clicked, the name is chatted on Channel.\nOpens a "notify box" in the given avatars screen displaying the message.\n
-			Up to twelve buttons can be specified in a list of strings. When the user clicks a button, the name of the button is said on the specified channel.\n
-			Channels work just like llSay(), so channel 0 can be heard by everyone.\n
-			The chat originates at the object's position, not the avatar's position, even though it is said as the avatar (uses avatar's UUID and Name etc.).\n
-			Examples:\n
-			llDialog(who, "Are you a boy or a girl?", [ "Boy", "Girl" ], -4913);\n
-			llDialog(who, "This shows only an OK button.", [], -192);\n
-			llDialog(who, "This chats so you can 'hear' it.", ["Hooray"], 0);</string>
-         </map>
-         <key>llDie</key>
-         <map>
-            <key>energy</key>
-            <real>0.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Deletes the object.\nDelete the object which holds the script.</string>
-         </map>
-         <key>llDumpList2String</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>Source</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Separator</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the list as a single string, using Separator between the entries.\nWrite the list out as a single string, using Separator between values.</string>
-         </map>
-         <key>llEdgeOfWorld</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Position</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Direction</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Checks to see whether the border hit by Direction from Position is the edge of the world (has no neighboring region).\nReturns TRUE if the line along Direction from Position hits the edge of the world in the current simulator, returns FALSE if that edge crosses into another simulator.</string>
-         </map>
-         <key>llEjectFromLand</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Ejects AvatarID from land that you own.\nEjects AvatarID from land that the object owner (group or resident) owns.</string>
-         </map>
-         <key>llEmail</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>20.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Address</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Subject</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sends email to Address with Subject and Message.\nSends an email to Address with Subject and Message.</string>
-         </map>
-         <key>llEscapeURL</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>URL</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns an escaped/encoded version of url, replacing spaces with %20 etc.\nReturns the string that is the URL-escaped version of URL (replacing spaces with %20, etc.).\n
-			This function returns the UTF-8 encoded escape codes for selected characters.</string>
-         </map>
-         <key>llEuler2Rot</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>rotation</string>
-            <key>arguments</key>
-            <map>
-               <key>Vector</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the rotation representation of the Euler angles.\nReturns the rotation represented by the Euler Angle.</string>
-         </map>
-         <key>llEvade</key>
-         <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real/>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>TargetID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Options</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Evade a specified target.\nCharacters will (roughly) try to hide from their pursuers if there is a good hiding spot along their fleeing path. Hiding means no direct line of sight from the head of the character (centre of the top of its physics bounding box) to the head of its pursuer and no direct path between the two on the navigation-mesh.</string>
-         </map>
-         <key>llExecCharacterCmd</key>
-         <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real/>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Command</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Options</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Execute a character command.\nSend a command to the path system.\n
-			Currently only supports stopping the current path-finding operation or causing the character to jump.</string>
-         </map>
-         <key>llFabs</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>Value</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the positive version of Value.\nReturns the absolute value of Value.</string>
-         </map>
-         <key>llFleeFrom</key>
-         <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real/>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Source</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Distance</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Options</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Flee from a point.\nDirects a character (llCreateCharacter) to keep away from a defined position in the region or adjacent regions.</string>
-         </map>
-         <key>llFloor</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Value</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns largest integer value &lt;= Value.</string>
-         </map>
-         <key>llForceMouselook</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Enable</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>If Enable is TRUE any avatar that sits on this object is forced into mouse-look mode.\nAfter calling this function with Enable set to TRUE, any agent sitting down on the prim will be forced into mouse-look.\n
-			Just like llSitTarget, this changes a permanent property of the prim (not the object) and needs to be reset by calling this function with Enable set to FALSE in order to disable it.</string>
-         </map>
-         <key>llFrand</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>Magnitude</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns a pseudo random number in the range [0, Magnitude] or [Magnitude, 0].\nReturns a pseudo-random number between [0, Magnitude].</string>
-         </map>
-         <key>llGenerateKey</key>
-         <map>
-            <key>energy</key>
-            <real>0</real>
-            <key>sleep</key>
-            <real>0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Generates a key (SHA-1 hash) using UUID generation to create a unique key.\nAs the UUID produced is versioned, it should never return a value of NULL_KEY.\nThe specific UUID version is an implementation detail that has changed in the past and may change again in the future. Do not depend upon the UUID that is returned to be version 5 SHA-1 hash.</string>
-         </map>
-         <key>llGetAccel</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the acceleration of the object relative to the region's axes.\nGets the acceleration of the object.</string>
-         </map>
-         <key>llGetAgentInfo</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns an integer bit-field containing the agent information about id.\n
-				Returns AGENT_FLYING, AGENT_ATTACHMENTS, AGENT_SCRIPTED, AGENT_SITTING, AGENT_ON_OBJECT, AGENT_MOUSELOOK, AGENT_AWAY, AGENT_BUSY, AGENT_TYPING, AGENT_CROUCHING, AGENT_ALWAYS_RUN, AGENT_WALKING and/or AGENT_IN_AIR.\nReturns information about the given agent ID as a bit-field of agent info constants.</string>
-         </map>
-         <key>llGetAgentLanguage</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the language code of the preferred interface language of the avatar.\nReturns a string that is the language code of the preferred interface language of the resident.</string>
-         </map>
-         <key>llGetAgentList</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>list</string>
-            <key>arguments</key>
-            <map>
-               <key>Scope</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Options</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Requests a list of agents currently in the region, limited by the scope parameter.\nReturns a list [key UUID-0, key UUID-1, ..., key UUID-n] or [string error_msg] - returns avatar keys for all agents in the region limited to the area(s) specified by scope</string>
-         </map>
-         <key>llGetAgentSize</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>If the avatar is in the same region, returns the size of the bounding box of the requested avatar by id, otherwise returns ZERO_VECTOR.\nIf the agent is in the same region as the object, returns the size of the avatar.</string>
-         </map>
-         <key>llGetAlpha</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>Face</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the alpha value of Face.\nReturns the 'alpha' of the given face. If face is ALL_SIDES the value returned is the mean average of all faces.</string>
-         </map>
-         <key>llGetAndResetTime</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the script time in seconds and then resets the script timer to zero.\nGets the time in seconds since starting and resets the time to zero.</string>
-         </map>
-         <key>llGetAnimation</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the name of the currently playing locomotion animation for the avatar id.\nReturns the currently playing animation for the specified avatar ID.</string>
-         </map>
-         <key>llGetAnimationList</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>list</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns a list of keys of playing animations for an avatar.\nReturns a list of keys of all playing animations for the specified avatar ID.</string>
-         </map>
-         <key>llGetAnimationOverride</key>
-         <map>
-            <key>energy</key>
-            <real>0</real>
-            <key>sleep</key>
-            <real>0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>AnimationState</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns a string that is the name of the animation that is used for the specified animation state\nTo use this function the script must obtain either the PERMISSION_OVERRIDE_ANIMATIONS or PERMISSION_TRIGGER_ANIMATION permission (automatically granted to attached objects).</string>
-         </map>
-         <key>llGetAttached</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the object's attachment point, or 0 if not attached.\nReturns the object attachment point, or 0 if not attached.</string>
-         </map>
-         <key>llGetBoundingBox</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>list</string>
-            <key>arguments</key>
-            <map>
-               <key>ID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the bounding box around the object (including any linked prims) relative to its root prim, as a list in the format [ (vector) min_corner, (vector) max_corner ].\nReturns the bounding box around the object or avatar with the specified key (including any linked prims) relative to the\n
-			root prim, as a list: [ (vector) min_corner, (vector) max_corner ]</string>
-         </map>
-         <key>llGetCameraPos</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the current camera position for the agent the task has permissions for.\nReturns the position of the camera, of the user that granted the script PERMISSION_TRACK_CAMERA. If no user has granted the permission, it returns ZERO_VECTOR.</string>
-         </map>
-         <key>llGetCameraRot</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>rotation</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the current camera orientation for the agent the task has permissions for.\nReturns the rotation of the camera, of the user who has granted this script PERMISSION_TRACK_CAMERA. If no user has granted the permission, it returns ZERO_ROTATION.\n
-			The key of the user whose camera is being tracked, can be obtained using llGetPermissionsKey.</string>
-         </map>
-         <key>llGetCenterOfMass</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the prim's centre of mass (unless called from the root prim, where it returns the object's centre of mass).</string>
-         </map>
-         <key>llGetClosestNavPoint</key>
-         <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real/>
-            <key>return</key>
-            <string>list</string>
-            <key>arguments</key>
-            <map>
-               <key>Point</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Options</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Get the closest navigable point to the point provided.\nThe function accepts a point in region-local space (like all the other path-finding methods) and returns either an empty list or a list containing a single vector which is the closest point on the navigation-mesh to the point provided.</string>
-         </map>
-         <key>llGetColor</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>Face</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the color on Face.\nReturns the colour of Face as a vector of red, green, and blue values between 0 and 1. If face is ALL_SIDES the colour returned is the mean average of each channel.</string>
-         </map>
-         <key>llGetCreator</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns a key for the creator of the prim.\nReturns the key of the object's original creator. Similar to llGetOwner.</string>
-         </map>
-         <key>llGetDate</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the current date in the UTC time zone in the format YYYY-MM-DD.\nReturns the current UTC date as YYYY-MM-DD.</string>
-         </map>
-         <key>llGetDisplayName</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the name of an avatar, if the avatar is in the current region, and the name has been cached, otherwise the same as llGetUsername.	Use llRequestDisplayName if you absolutely must have the display name.\nReturns a string that is the non-unique display name of the avatar specified by AvatarID.\n
-			AvatarID must specify a valid avatar key, present in or otherwise known to the region in which the script is running, otherwise an empty string is returned.\n
-			This function will still return a valid display name if the avatar is a child agent of the region (i.e., in an adjacent region, but presently able to see into the one the script is in), or for a short period after the avatar leaves the region (specifically, when the client completely disconnects from the region, either as a main or child agent).</string>
-         </map>
-         <key>llGetEnergy</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns how much energy is in the object as a percentage of maximum.</string>
-         </map>
-         <key>llGetEnv</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>DataRequest</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns a string with the requested data about the region.</string>
-         </map>
-         <key>llGetForce</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the force (if the script is physical).\nReturns the current force if the script is physical.</string>
-         </map>
-         <key>llGetFreeMemory</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the number of free bytes of memory the script can use.\nReturns the available free space for the current script. This is inaccurate with LSO.</string>
-         </map>
-         <key>llGetFreeURLs</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the number of available URLs for the current script.\nReturns an integer that is the number of available URLs.</string>
-         </map>
-         <key>llGetGeometricCenter</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the geometric center of the linked set the script is attached to.\nReturns the geometric centre of the linked set the script is in relative to the object's position (the position of the root prim of a linked set).\n
-			To get the object's position, use llGetPos.</string>
-         </map>
-         <key>llGetGMTclock</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the time in seconds since midnight GMT.\nGets the time in seconds since midnight in GMT/UTC.</string>
-         </map>
-         <key>llGetHTTPHeader</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>HTTPRequestID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Header</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the value for header for request_id.\nReturns a string that is the value of the Header for HTTPRequestID.</string>
-         </map>
-         <key>llGetInventoryCreator</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>arguments</key>
-            <map>
-               <key>InventoryItem</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns a key for the creator of the inventory item.\nThis function returns the UUID of the creator of item. If item is not found in inventory, the object says "No item named 'name' ".</string>
-         </map>
-         <key>llGetInventoryKey</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>arguments</key>
-            <map>
-               <key>InventoryItem</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the key that is the UUID of the inventory named.\nReturns the key of the inventory named.</string>
-         </map>
-         <key>llGetInventoryName</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>InventoryType</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Index</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the name of the inventory item number of a given type.\nGet the name of the inventory Index number of InventoryType.\n
-			Use the inventory constants INVENTORY_* to specify the type.</string>
-         </map>
-         <key>llGetInventoryNumber</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>InventoryType</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the number of items of a given type (INVENTORY_* flag) in the prim's inventory.\nGet the number of items of InventoryType in the object inventory.\n
-			Use the inventory constants INVENTORY_* to specify the type.</string>
-         </map>
-         <key>llGetInventoryPermMask</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>InventoryItem</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>BitMask</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the requested permission mask for the inventory item.\nReturns the requested permission mask for the inventory item defined by InventoryItem. If item is not in the object's inventory, llGetInventoryPermMask returns FALSE and causes the object to say "No item named '&lt;item&gt;'", where "&lt;item&gt;" is item.\n
-			If this is used to determine whether or not an inventory item exists within the object, it will have the side effect of spamming chat. So please don't ;-)</string>
-         </map>
-         <key>llGetInventoryType</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>InventoryItem</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the type of the inventory item named.\nReturns the type of the inventory item named.\n
-			Remember, like all inventory functions, llGetInventoryType is case-sensitive.</string>
-         </map>
-         <key>llGetKey</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the key of the prim the script is attached to.\nGet the key for the object which has this script.</string>
-         </map>
-         <key>llGetLandOwnerAt</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>arguments</key>
-            <map>
-               <key>Position</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the key of the land owner, returns NULL_KEY if public.\nReturns the key of the land owner at Position, or NULL_KEY if public.</string>
-         </map>
-         <key>llGetLinkKey</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>arguments</key>
-            <map>
-               <key>LinkNumber</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the key of the linked prim LinkNumber.\nReturns the key of LinkNumber in the link set.</string>
-         </map>
-         <key>llGetLinkMedia</key>
-         <map>
-            <key>energy</key>
-            <real>0.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>list</string>
-            <key>arguments</key>
-            <map>
-               <key>LinkNumber</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Face</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Parameters</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Get the media parameters for a particular face on linked prim, given the desired list of parameter names. Returns a list of values in the order requested.	Returns an empty list if no media exists on the face.\nGet the desired list of named media parameters, for a particular face, of a linked prim.\n
-				Returns a list of values in the order requested.</string>
-         </map>
-         <key>llGetLinkName</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>LinkNumber</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the name of LinkNumber in a link set.\nReturns the name of LinkNumber the link set.</string>
-         </map>
-         <key>llGetLinkNumber</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the link number of the prim containing the script (0 means not linked, 1 the prim is the root, 2 the prim is the first child, etc.).\nReturns the link number of the prim containing the script. 0 means no link, 1 the root, 2 for first child, etc.</string>
-         </map>
-         <key>llGetLinkNumberOfSides</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>LinkNumber</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the number of sides of the specified linked prim.\nReturns an integer that is the number of faces (or sides) of the prim link.</string>
-         </map>
-         <key>llGetLinkPrimitiveParams</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>list</string>
-            <key>arguments</key>
-            <map>
-               <key>LinkNumber</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Parameters</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Get primitive parameters for LinkNumber based on rules.\nIdentical to llGetPrimitiveParams except that it acts on the prim specified by the link number given.\n
-			Returns the list of primitive attributes requested in the Parameters list for link.\n
-			PRIM_* flags can be broken into three categories, face flags, prim flags, and object flags.\n
-			* Supplying a prim or object flag will return that flags attributes.\n
-			* Face flags require the user to also supply a side parameter.</string>
-         </map>
-         <key>llGetListEntryType</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>ListVariable</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Index</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the type of the index entry in the list (TYPE_INTEGER, TYPE_FLOAT, TYPE_STRING, TYPE_KEY, TYPE_VECTOR, TYPE_ROTATION, or TYPE_INVALID if index is off list).\nReturns the type of the variable at Index in ListVariable.</string>
-         </map>
-         <key>llGetListLength</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>ListVariable</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the number of elements in the list.\nReturns the number of elements in ListVariable.</string>
-         </map>
-         <key>llGetLocalPos</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the position relative to the root.\nReturns the local position of a child object relative to the root.</string>
-         </map>
-         <key>llGetLocalRot</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>rotation</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the rotation local to the root.\nReturns the local rotation of a child object relative to the root.</string>
-         </map>
-         <key>llGetMass</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the mass of object that the script is attached to.\nReturns the scripted object's mass. When called from a script in a link-set, the parent will return the sum of the link-set weights, while a child will return just its own mass. When called from a script inside an attachment, this function will return the mass of the avatar it's attached to, not its own.</string>
-         </map>
-         <key>llGetMassMKS</key>
-         <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Acts as llGetMass(), except that the units of the value returned are Kg.</string>
-         </map>
-         <key>llGetMemoryLimit</key>
-         <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Get the maximum memory a script can use, in bytes.\nGet the maximum memory a script can use.\n
-			Returns the integer amount of memory the script can use in bytes.</string>
-         </map>
-         <key>llGetNextEmail</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Address</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Subject</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Get the next waiting email with appropriate address and/or subject (if blank they are ignored).\nGet the next waiting email with appropriate address and/or subject.\n
-				If the parameters are blank, they are not used for filtering.</string>
-         </map>
-         <key>llGetNotecardLine</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.1</real>
-            <key>return</key>
-            <string>key</string>
-            <key>arguments</key>
-            <map>
-               <key>NotecardName</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>LineNumber</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns line from NotecardName via the dataserver event.\nThis function fetches LineNumber from NotecardName and returns the data through the dataserver event. The line count starts at zero.\n
-				If the requested line is passed the end of the note-card the dataserver event will return the constant EOF string.\n
-				The key returned by this function is a unique identifier which will be supplied to the dataserver event in the requested parameter.</string>
-         </map>
-         <key>llGetNumberOfNotecardLines</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.1</real>
-            <key>return</key>
-            <string>key</string>
-            <key>arguments</key>
-            <map>
-               <key>NotecardName</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns number of lines in NotecardName via the dataserver event (cast return value to integer).\nReturns the number of lines in the note-card sNotecardName via the dataserver event. (Cast the value returned by the dataserver to an integer.)\n
-			The key returned is a query ID for identifying the dataserver reply.</string>
-         </map>
-         <key>llGetNumberOfPrims</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the number of prims in a link set the script is attached to.\nReturns the number of prims in (and avatars seated on) the object the script is in.</string>
-         </map>
-         <key>llGetNumberOfSides</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the number of faces (or sides) of the prim.\nReturns the number of sides of the prim which has the script.</string>
-         </map>
-         <key>llGetObjectDesc</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the description of the prim the script is attached to.\nReturns the description of the scripted object/prim. You can set the description using llSetObjectDesc.</string>
-         </map>
-         <key>llGetObjectDetails</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>list</string>
-            <key>arguments</key>
-            <map>
-               <key>ID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Parameters</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the object details specified in Parameters for the object with key ID.\n
-				Parameters are OBJECT_NAME, _DESC, _POS, _ROT, _VELOCITY, _OWNER, _GROUP, _CREATOR.\nReturns a list of the details specified in Parameters for the object with key ID.</string>
-         </map>
-         <key>llGetObjectMass</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>ID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the mass of the avatar or object in the region.\nGets the mass of the object or avatar corresponding to ID.</string>
-         </map>
-         <key>llGetObjectName</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the name of the prim which the script is attached to.\nReturns the name of the prim (not object) which contains the script.</string>
-         </map>
-         <key>llGetObjectPermMask</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>PermissionMask</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the requested permission mask for the root object the task is attached to.</string>
-         </map>
-         <key>llGetObjectPrimCount</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>ObjectID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the total number of prims for an object in the region.\nReturns the prim count for any object id in the same region.</string>
-         </map>
-         <key>llGetOmega</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the rotation velocity in radians per second.\nReturns a vector that is the rotation velocity of the object in radians per second.</string>
-         </map>
-         <key>llGetOwner</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the object owner's UUID.\nReturns the key for the owner of the object.</string>
-         </map>
-         <key>llGetOwnerKey</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>arguments</key>
-            <map>
-               <key>ObjectID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the owner of ObjectID.\nReturns the key for the owner of object ObjectID.</string>
-         </map>
-         <key>llGetParcelDetails</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>list</string>
-            <key>arguments</key>
-            <map>
-               <key>Position</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>ParcelDetails</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the parcel details specified in ParcelDetails for the parcel at Position.\n
- 				Parameters is one or more of: PARCEL_DETAILS_NAME, _DESC, _OWNER, _GROUP, _AREA, _ID, _SEE_AVATARS.\nReturns a list that is the parcel details specified in ParcelDetails (in the same order) for the parcel at Position.</string>
-         </map>
-         <key>llGetParcelFlags</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Position</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns a mask of the parcel flags (PARCEL_FLAG_*) for the parcel that includes the point Position.\nReturns a bit-field specifying the parcel flags (PARCEL_FLAG_*) for the parcel at Position.</string>
-         </map>
-         <key>llGetParcelMaxPrims</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Position</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>SimWide</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the maximum number of prims allowed on the parcel at Position.\nReturns an integer that is the maximum number of prims allowed on the parcel at Position.</string>
-         </map>
-         <key>llGetParcelMusicURL</key>
-         <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real/>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Gets the streaming audio URL for the parcel object is on.\nReturns a string containing the parcel streaming audio URL.\n
-				The object owner, avatar or group, must also be the land owner.</string>
-         </map>
-         <key>llGetParcelPrimCount</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Position</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Category</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>SimWide</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the number of prims on the parcel at Position of the given category.
-				Categories: PARCEL_COUNT_TOTAL, _OWNER, _GROUP, _OTHER, _SELECTED, _TEMP.\nReturns the number of prims used on the parcel at Position which are in Category.\n
-				If SimWide is TRUE, it returns the number of objects for the entire region in the category specified.\n
-				If SimWide is FALSE, it returns the number of objects on this specific parcel in the category specified</string>
-         </map>
-         <key>llGetParcelPrimOwners</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>2.0</real>
-            <key>return</key>
-            <string>list</string>
-            <key>arguments</key>
-            <map>
-               <key>Position</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns a list of all residents who own objects on the parcel at Position, with individual prim counts.
-				Requires owner-like permissions for the parcel.\nReturns a strided list of keys and integers of up to 100 agents who own objects in the parcel at Position.\n
-				The list is formatted as [ key agentKey1, integer agentCount1, key agentKey2, integer agentCount2, ... ], sorted by agent key.\n
-				The integers are counts of the number of prims (not objects) owned by the corresponding agents.\n
-				Only works when the object owner is in the region (likely the reason it doesn't work when deeded to group).</string>
-         </map>
-         <key>llGetPermissions</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns an integer bit-field with the permissions that have been granted.\nReturns an integer bit-field with the script permissions granted. e.g.:\n
-				integer iPerms = llGetPermissions();\n
-				if (iPerms &amp; PERMISSION_DEBIT) {\n
-					llOwnerSay("Yay, I can steal your money!!");\n
-				} else {\n
-					llOwnerSay("Damn, your money is safe from me!");\n
-				}</string>
-         </map>
-         <key>llGetPermissionsKey</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the key of the avatar that last granted permissions to the script.\nReturns the key of the avatar that last granted or declined permissions to the script.\n
-				Returns NULL_KEY if permissions were never granted or declined.</string>
-         </map>
-         <key>llGetPhysicsMaterial</key>
-         <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real/>
-            <key>return</key>
-            <string>list</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns a list of the form [float gravity_multiplier, float restitution, float friction, float density].</string>
-         </map>
-         <key>llGetPos</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the position of the task in region coordinates.\nReturns the vector position of the task in region coordinates.</string>
-         </map>
-         <key>llGetPrimitiveParams</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.2</real>
-            <key>return</key>
-            <string>list</string>
-            <key>arguments</key>
-            <map>
-               <key>Parameters</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the primitive parameters specified in the parameters list.\nReturns primitive parameters specified in the Parameters list.</string>
-         </map>
-         <key>llGetPrimMediaParams</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.1</real>
-            <key>return</key>
-            <string>list</string>
-            <key>arguments</key>
-            <map>
-               <key>Face</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Parameters</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the media parameters for a particular face on an object, given the desired list of parameter names, in the order requested. Returns an empty list if no media exists on the face.\nGet the media parameters for a particular face on an object, given the desired list of Parameters.\n
-				Returns a list of values in the order requested.\n
-				Returns an empty list if no media exists on the face.</string>
-         </map>
-         <key>llGetRegionAgentCount</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the number of avatars in the region.\nReturns an integer that is the number of avatars in the region.</string>
-         </map>
-         <key>llGetRegionCorner</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns a vector, in meters, that is the global location of the south-west corner of the region which the object is in.\nReturns the Region-Corner of the simulator containing the task. The region-corner is a vector (values in meters) representing distance from the first region.</string>
-         </map>
-         <key>llGetRegionFlags</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the region flags (REGION_FLAG_*) for the region the object is in.\nReturns a bit-field specifying the region flags (REGION_FLAG_*) for the region the object is in.</string>
-         </map>
-         <key>llGetRegionFPS</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the mean region frames per second.</string>
-         </map>
-         <key>llGetRegionName</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the current region name.</string>
-         </map>
-         <key>llGetRegionTimeDilation</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the current time dilation as a float between 0.0 (full dilation) and 1.0 (no dilation).\nReturns the current time dilation as a float between 0.0 and 1.0.</string>
-         </map>
-         <key>llGetRootPosition</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the position (in region coordinates) of the root prim of the object which the script is attached to.\nGets the position (in region coordinates) of the root/parent prim of the object containing the script.\n
-			This is used to allow a child prim to determine where the root is.</string>
-         </map>
-         <key>llGetRootRotation</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>rotation</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the rotation (relative to the region) of the root prim of the object which the script is attached to.\nGets the global rotation of the root object of the object script is attached to.</string>
-         </map>
-         <key>llGetRot</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>rotation</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the rotation relative to the region's axes.\nReturns the rotation.</string>
-         </map>
-         <key>llGetScale</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the scale of the prim.\nReturns a vector that is the scale (dimensions) of the prim.</string>
-         </map>
-         <key>llGetScriptName</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the name of the script that this function is used in.\nReturns the name of this script.</string>
-         </map>
-         <key>llGetScriptState</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>ScriptName</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns TRUE if the script named is running.\nReturns TRUE if ScriptName is running.</string>
-         </map>
-         <key>llGetSimStats</key>
-         <map>
-            <key>energy</key>
-            <real>0</real>
-            <key>sleep</key>
-            <real>0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>StatType</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns a float that is the requested statistic.</string>
-         </map>
-         <key>llGetSimulatorHostname</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the host-name of the machine which the script is running on (same as string in viewer Help dialog).\nReturns the host name (server) of the region in which the scripted object is located.\n
-			For example, "sim225.agni.lindenlab.com".</string>
-         </map>
-         <key>llGetSPMaxMemory</key>
-         <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the maximum used memory for the current script. Only valid after using PROFILE_SCRIPT_MEMORY. Non-mono scripts always use 16k.\nReturns the integer of the most bytes used while llScriptProfiler was last active.</string>
-         </map>
-         <key>llGetStartParameter</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns an integer that is the script start parameter.\nReturns the start parameter passed to llRezObject.\n
-			If the object was created from agent inventory, this function returns 0.</string>
-         </map>
-         <key>llGetStatus</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>StatusFlag</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns value of status (STATUS_PHYSICS, STATUS_PHANTOM, STATUS_BLOCK_GRAB, STATUS_ROTATE_X, STATUS_ROTATE_Y, and/or STATUS_ROTATE_Z).\nReturns the value of specified status.</string>
-         </map>
-         <key>llGetSubString</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>String</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Start</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>End</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the indicated substring.\nReturns the indicated sub-string from String. The start and end are inclusive.\n
-				Using negative numbers for start and/or end causes the index to count backwards from the length of the string, so 0, -1 would capture the entire string.\n
-				If start is larger than end, the sub string is the exclusion of the entries, so 6, 4 would give the entire string except for the 5th. character.</string>
-         </map>
-         <key>llGetSunDirection</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns a normalized vector of the direction of the sun in the region.\nReturns the sun's direction on the simulator.</string>
-         </map>
-         <key>llGetTexture</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>Face</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns a string that is the texture on face (the inventory name if it is a texture in the prim's inventory, otherwise the key).\nReturns the texture of a face, if it is found in object inventory, its key otherwise.</string>
-         </map>
-         <key>llGetTextureOffset</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>Face</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the texture offset of face in the x and y components of a vector.</string>
-         </map>
-         <key>llGetTextureRot</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>Face</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the texture rotation of side.</string>
-         </map>
-         <key>llGetTextureScale</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>Face</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the texture scale of side in the x and y components of a vector.\nReturns the texture scale of a side in the x and y components of a vector.</string>
-         </map>
-         <key>llGetTime</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the time in seconds since the last region reset, script reset, or call to either llResetTime or llGetAndResetTime.</string>
-         </map>
-         <key>llGetTimeOfDay</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the time in seconds since [SECOND_LIFE] server midnight or since region up-time, whichever is smaller.\nGets the time in seconds since midnight in Second Life.</string>
-         </map>
-         <key>llGetTimestamp</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns a time-stamp (UTC time zone) in the format: YYYY-MM-DDThh:mm:ss.ff..fZ.\nReturns the current time-and-date (a time-stamp) in the format YYYY-MM-DDThh:mm:ss.ff..fZ, for example: 2004-08-27T00:56:21.785886Z\n
-				The letter Z is the zone designator for the zero UTC offset, and is why UTC is sometimes referred to as Zulu time (Zulu being the name of Z in the phonetic alphabet. T is just a separator between date and time.</string>
-         </map>
-         <key>llGetTorque</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the torque (if the script is physical).\nReturns a vector that is the torque (if the script is physical).</string>
-         </map>
-         <key>llGetUnixTime</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the number of seconds elapsed since 00:00 hours, Jan 1, 1970 UTC from the system clock.\nReturns the number of seconds elapsed since 00:00 hours, Jan 1, 1970 UTC from the system clock.\n
-				In UNIX terms, time_t. This is great for a monotonic source of time that ticks once a second.</string>
-         </map>
-         <key>llGetUsedMemory</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the current used memory for the current script. Non-mono scripts always use 16K.\nReturns the integer of the number of bytes of memory currently in use by the script. Non-mono scripts always use 16K.</string>
-         </map>
-         <key>llGetUsername</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the single-word user-name of an avatar, if the avatar is in the current region, otherwise the empty string.\nReturns a string that is the unique user-name of the avatar specified.\n
-				AvatarID must specify a valid avatar key present in, or otherwise known to, the region in which the script is running, otherwise an empty string is returned. This function will still return a valid user-name if the avatar is a child agent of the region (i.e., in an adjacent region, but presently able to see into the one the script is in), or for a short period after the avatar leaves the region (specifically, when the client completely disconnects from the region, either as a main or child agent).</string>
-         </map>
-         <key>llGetVel</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the velocity of the object.\nReturns a vector that is the velocity of the object.</string>
-         </map>
-         <key>llGetWallclock</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the time in seconds since midnight California Pacific time (PST/PDT).\nReturns the time in seconds since simulator's time-zone midnight (Pacific Time).</string>
-         </map>
-         <key>llGiveInventory</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>TargetID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>InventoryItem</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Give InventoryItem to destination represented by TargetID.\nGive the named inventory item to the avatar or object in the same simulator as the giver.\n
-			If the recipient is an avatar, the avatar then follows the normal procedure of accepting or denying the offer. If the recipient is an object, the same permissions apply as if you were dragging inventory onto the object by hand, i.e. if llAllowInventoryDrop has been called with TRUE, any other object can pass objects to its inventory.</string>
-         </map>
-         <key>llGiveInventoryList</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>3.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>TargetID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>FolderName</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>InventoryItems</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Give InventoryItems to destination (represented by TargetID) as a new folder of items.\nGive the list of named inventory items to the keyed avatar or object in the same simulator as the giver.\n
-			If the recipient is an avatar, the avatar then follows the normal procedure of accepting or denying the offer. The offered inventory is then placed in a folder named category in the recipients inventory.\n
-			If the recipient is an object, the same permissions apply as if you were dragging inventory onto the object by hand, i.e. if llAllowInventoryDrop has been called with TRUE, any other object can pass objects to its inventory. If the recipient is an object, the sFolderName parameter is ignored.</string>
-         </map>
-         <key>llGiveMoney</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Amount</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Transfers Amount of L from script owner to AvatarID.\nTransfer Amount from the script owner to AvatarID.\n
-				This call will (silently) fail if PERMISSION_DEBIT has not been set.</string>
-         </map>
-         <key>llGodLikeRezObject</key>
-         <map>
-            <key>god-mode</key>
-            <boolean>true</boolean>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>InventoryItemID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Position</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Rez directly off of a UUID if owner has dog-bit set.</string>
-         </map>
-         <key>llGround</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>Offset</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the ground height at the object position + offset.\nReturns the ground height at the object's position + Offset.</string>
-         </map>
-         <key>llGroundContour</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>Offset</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the ground contour direction below the object position + Offset.\nReturns the ground contour at the object's position + Offset.</string>
-         </map>
-         <key>llGroundNormal</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>Offset</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the ground normal below the object position + offset.\nReturns the ground contour at the object's position + Offset.</string>
-         </map>
-         <key>llGroundRepel</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Height</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Water</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Tau</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Critically damps to height if within height * 0.5 of level (either above ground level or above the higher of land and water if water == TRUE).\nCritically damps to fHeight if within fHeight * 0.5 of ground or water level.\n
-				The height is above ground level if iWater is FALSE or above the higher of land and water if iWater is TRUE.\n
-				Do not use with vehicles. Only works in physics-enabled objects.</string>
-         </map>
-         <key>llGroundSlope</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>Offset</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the ground slope below the object position + Offset.\nReturns the ground slope at the object position + Offset.</string>
-         </map>
-         <key>llHTTPRequest</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>arguments</key>
-            <map>
-               <key>URL</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Parameters</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Body</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sends an HTTP request to the specified URL with the Body of the request and Parameters.\nSends an HTTP request to URL with the specified body and parameters.\n
-				Returns a key that is a handle identifying the HTTP request made.</string>
-         </map>
-         <key>llHTTPResponse</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>HTTPRequestID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Status</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Body</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Responds to HTTPRequestID with Status and Body.\nResponds to HTTPRequestID with Status code and Body.</string>
-         </map>
-         <key>llInsertString</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>TargetVariable</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Position</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>SourceVariable</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Inserts SourceVariable into TargetVariable at Position, and returns the result.\nInserts SourceVariable into TargetVariable at Position and returns the result. Note this does not alter TargetVariable.</string>
-         </map>
-         <key>llInstantMessage</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>2.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>IMs Text to the user identified.\nSend Text to the user as an instant message.</string>
-         </map>
-         <key>llIntegerToBase64</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>Value</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns a string that is a Base64 big endian encode of Value.\nEncodes the Value as an 8-character Base64 string.</string>
-         </map>
-         <key>llJson2List</key>
-         <map>
-            <key>energy</key>
-            <real>0.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>list</string>
-            <key>arguments</key>
-            <map>
-               <key>JSON</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Converts the top level of the JSON string to a list.</string>
-         </map>
-         <key>llJsonGetValue</key>
-         <map>
-            <key>energy</key>
-            <real>0.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>JSON</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Specifiers</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Gets the value indicated by Specifiers from the JSON string.</string>
-         </map>
-         <key>llJsonSetValue</key>
-         <map>
-            <key>energy</key>
-            <real>0.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>JSON</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Specifiers</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Value</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns a new JSON string that is the JSON given with the Value indicated by Specifiers set to Value.</string>
-         </map>
-         <key>llJsonValueType</key>
-         <map>
-            <key>energy</key>
-            <real>0.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>JSON</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Specifiers</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the type constant (JSON_*) for the value in JSON indicated by Specifiers.</string>
-         </map>
-         <key>llKey2Name</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>ID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the name of the prim or avatar specified by ID. The ID must be a valid rezzed prim or avatar key in the current simulator, otherwise an empty string is returned.\nReturns the name of a rezzed prim or avatar, present in or otherwise known, to the region in which the script is running. If the key is invalid (not in region, or not a prim or avatar's key), returns an empty string.</string>
-         </map>
-         <key>llLinkParticleSystem</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>LinkNumber</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Rules</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Creates a particle system based on Rules. An empty list removes a particle system from object.\n
-				List format is [ rule-1, data-1, rule-2, data-2 ... rule-n, data-n ].\nA particle system defined by a list of rules is set for the prim(s) link. This is identical to llParticleSystem except that it applies to a specified linked prim and not just the prim the script is in.</string>
-         </map>
-         <key>llLinkSitTarget</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>LinkNumber</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Offset</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Rotation</key>
-               <map>
-                  <key>type</key>
-                  <string>rotation</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Set the sit location for the linked prim(s). If Offset == &lt;0,0,0&gt; clear it.\nSet the sit location for the linked prim(s). The sit location is relative to the prim's position and rotation.</string>
-         </map>
-         <key>llList2CSV</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>ListVariable</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Creates a string of comma separated values from the list.\nCreate a string of comma separated values from the specified list.</string>
-         </map>
-         <key>llList2Float</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>ListVariable</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Index</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Copies the float at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to a float, then zero is returned.</string>
-         </map>
-         <key>llList2Integer</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>ListVariable</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Index</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Copies the integer at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to an integer, then zero is returned.</string>
-         </map>
-         <key>llList2Json</key>
-         <map>
-            <key>energy</key>
-            <real>0</real>
-            <key>sleep</key>
-            <real>0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>JsonType</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Values</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Converts either a strided list of key:value pairs to a JSON_OBJECT, or a list of values to a JSON_ARRAY.</string>
-         </map>
-         <key>llList2Key</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>arguments</key>
-            <map>
-               <key>ListVariable</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Index</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Copies the key at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to a key, then null string is returned.</string>
-         </map>
-         <key>llList2List</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>list</string>
-            <key>arguments</key>
-            <map>
-               <key>ListVariable</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Start</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>End</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Copies the slice of the list from Start to End.\nReturns the slice of the list from start to end from the list as a new list. The start and end parameters are inclusive.\n
-				Using negative numbers for start and/or end causes the index to count backwards from the length of the list, so 0, -1 would capture the entire list.\n
-				If start is larger than end the list returned is the exclusion of the entries, so 6, 4 would give the entire list except for the 5th. entry.</string>
-         </map>
-         <key>llList2ListStrided</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>list</string>
-            <key>arguments</key>
-            <map>
-               <key>ListVariable</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Start</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>End</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Stride</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Copies the strided slice of the list from Start to End.\nReturns a copy of the strided slice of the specified list from Start to End.</string>
-         </map>
-         <key>llList2Rot</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>rotation</string>
-            <key>arguments</key>
-            <map>
-               <key>ListVariable</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Index</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Copies the rotation at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to rotation, thenZERO_ROTATION is returned.</string>
-         </map>
-         <key>llList2String</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>ListVariable</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Index</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Copies the string at Index in the list.\nReturns the value at Index in the specified list as a string. If Index describes a location not in the list then null string is returned.</string>
-         </map>
-         <key>llList2Vector</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>ListVariable</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Index</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Copies the vector at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to a vector, then ZERO_VECTOR is returned.</string>
-         </map>
-         <key>llListen</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Channel</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>SpeakersName</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>SpeakersID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets a callback for Text on Channel from SpeakersName and SpeakersID (SpeakersName, SpeakersID, and/or Text can be empty) and returns an identifier that can be used to deactivate or remove the listen.\nSets a listen event callback on the specified channel. Specifying values for speakername, speakerID, and message will filter the results accordingly, which is advisable or your listen event will respond to every thing said on the channel potentially causing a great deal of lag.\n
-				Returns an identifier that can be used to deactivate or remove the listen. The name, id and/or msg parameters\n
-				Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 to 2,147,483,648 are hidden channels that are not sent to avatars.</string>
-         </map>
-         <key>llListenControl</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>ChannelHandle</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Active</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Makes a listen event callback active or inactive.\nMake a listen event callback active or inactive. Pass in the value returned from llListen to the iChannelHandle parameter to specify which event you are controlling.\n
-				Use boolean values to specify Active</string>
-         </map>
-         <key>llListenRemove</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>ChannelHandle</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Removes listen event callback number.\nRemoves a listen event callback. Pass in the value returned from llListen to the iChannelHandle parameter to specify which event to remove.</string>
-         </map>
-         <key>llListFindList</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>ListVariable</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Find</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the index of the first instance of Find in ListVariable. Returns -1 if not found.\nReturns the position of the first instance of the Find list in the ListVariable. Returns -1 if not found.</string>
-         </map>
-         <key>llListInsertList</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>list</string>
-            <key>arguments</key>
-            <map>
-               <key>Target</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>ListVariable</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Position</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns a list that contains all the elements from Target but with the elements from ListVariable inserted at Position start.\nReturns a new list, created by inserting ListVariable into the Target list at Position. Note this does not alter the Target.</string>
-         </map>
-         <key>llListRandomize</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>list</string>
-            <key>arguments</key>
-            <map>
-               <key>ListVariable</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Stride</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns a randomized list of blocks of size Stride.\nReturns the specified list randomized into blocks of size stride.\n
-				If the remainder from the length of the list, divided by the stride is non-zero, this function does not randomize the list.</string>
-         </map>
-         <key>llListReplaceList</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>list</string>
-            <key>arguments</key>
-            <map>
-               <key>Target</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>ListVariable</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Start</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>End</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns a list that is Target with Start through End removed and ListVariable inserted at Start.\nReturns a list replacing the slice of the Target list from Start to End with the specified ListVariable. Start and End are inclusive, so 0, 1 would replace the first two entries and 0, 0 would replace only the first list entry.</string>
-         </map>
-         <key>llListSort</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>list</string>
-            <key>arguments</key>
-            <map>
-               <key>ListVariable</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Stride</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Ascending</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sorts the list into blocks of stride, in Ascending order if Ascending == TRUE. The sort order is affected by type.\nReturns the specified list, sorted into blocks of stride in ascending order (if Ascending is TRUE, otherwise descending). Note that sort only works if the first entry of each block is the same type.</string>
-         </map>
-         <key>llListStatistics</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>Operation</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>ListVariable</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Performs statistical aggregate functions on ListVariable using LIST_STAT_* Operations.\nThis function allows a script to perform a statistical operation as defined by operation on a list composed of integers and floats.</string>
-         </map>
-         <key>llLoadURL</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>URL</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Shows dialog to avatar AvatarID offering to load web page at URL.	If user clicks yes, launches their web browser.\nllLoadURL displays a dialogue box to the user, offering to load the specified web page using the default web browser.</string>
-         </map>
-         <key>llLog</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>Value</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the natural logarithm of Value. Returns zero if Value &lt;= 0.\nReturns the base e (natural) logarithm of the specified Value.</string>
-         </map>
-         <key>llLog10</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>Value</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the base 10 logarithm of Value. Returns zero if Value &lt;= 0.\nReturns the base 10 (common) logarithm of the specified Value.</string>
-         </map>
-         <key>llLookAt</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Target</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Strength</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Damping</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Cause object name to point it's forward axis towards Target.\nCause object to point the forward axis toward Target.\n
-				Good Strength values are around half the mass of the object and good Damping values are less than 1/10th of the Strength.\n
-				Asymmetrical shapes require smaller Damping. A Strength of 0.0 cancels the look at.</string>
-         </map>
-         <key>llLoopSound</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Sound</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Volume</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Plays attached Sound, looping indefinitely, at Volume (0.0 - 1.0).\nSimilar to llPlaySound, this function plays a sound attached to an object, but will continuously repeat that sound until llStopSound or llPlaySound is called.\n
-			Only one sound may be attached to an object at a time. A second call to llLoopSound with the same key will not restart the sound, but the new volume will be used. This allows control over the volume of already playing sounds.\n
-			Setting the volume to 0 is not the same as calling llStopSound; a sound with 0 volume will continue to loop.\n
-			To restart the sound from the beginning, call llStopSound before calling llLoopSound again.</string>
-         </map>
-         <key>llLoopSoundMaster</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Sound</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Volume</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Plays attached Sound, looping at volume (0.0 - 1.0), and declares it a sync master.\nBehaviour is identical to llLoopSound, with the addition of marking the source as a "Sync Master", causing "Slave" sounds to sync to it. If there are multiple masters within a viewers interest area, the most audible one (a function of both distance and volume) will win out as the master.\n
-				The use of multiple masters within a small area is unlikely to produce the desired effect.</string>
-         </map>
-         <key>llLoopSoundSlave</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Sound</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Volume</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Plays attached sound looping at volume (0.0 - 1.0), synced to most audible sync master.\nBehaviour is identical to llLoopSound, unless there is a "Sync Master" present.\n
-				If a Sync Master is already playing the Slave sound will begin playing from the same point the master is in its loop synchronizing the loop points of both sounds.\n
-				If a Sync Master is started when the Slave is already playing, the Slave will skip to the correct position to sync with the Master.</string>
-         </map>
-         <key>llMakeExplosion</key>
-         <map>
-            <key>deprecated</key>
-            <boolean>true</boolean>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.1</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Particles</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Scale</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Velocity</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Lifetime</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Arc</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Texture</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Offset</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Make a round explosion of particles. Deprecated: Use llParticleSystem instead.\nMake a round explosion of particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.</string>
-         </map>
-         <key>llMakeFire</key>
-         <map>
-            <key>deprecated</key>
-            <boolean>true</boolean>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.1</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Particles</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Scale</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Velocity</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Lifetime</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Arc</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Texture</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Offset</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Make fire like particles. Deprecated: Use llParticleSystem instead.\nMake fire particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.</string>
-         </map>
-         <key>llMakeFountain</key>
-         <map>
-            <key>deprecated</key>
-            <boolean>true</boolean>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.1</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Particles</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Scale</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Velocity</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Lifetime</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Arc</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Texture</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Offset</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Make a fountain of particles. Deprecated: Use llParticleSystem instead.\nMake a fountain of particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.</string>
-         </map>
-         <key>llMakeSmoke</key>
-         <map>
-            <key>deprecated</key>
-            <boolean>true</boolean>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.1</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Particles</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Scale</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Velocity</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Lifetime</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Arc</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Texture</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Offset</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Make smoke like particles. Deprecated: Use llParticleSystem instead.\nMake smoky particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.</string>
-         </map>
-         <key>llManageEstateAccess</key>
-         <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real/>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Action</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Use to add or remove agents from the estate's agent access or ban lists or groups from the estate's group access list.\nUse to add or remove agents from the estate's agent access or ban lists or groups from the estate's group access list.\n
-			Returns an integer representing a boolean, TRUE if the call was successful; FALSE if throttled, invalid action, invalid or null id or object owner is not allowed to manage the estate.</string>
-         </map>
-         <key>llMapDestination</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>1.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>RegionName</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Position</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Direction</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Opens world map centred on region with Position highlighted. Only works for scripts attached to avatar, or during touch events. NOTE: Direction currently does nothing.\nShows a given location on the map, opening the map window whenever it is called.\n
-				There is no way to simply set the map position without opening the window.\n
-				Only works in attachments, or during touch events.</string>
-         </map>
-         <key>llMD5String</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Nonce</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns a string of 32 hex characters that is an RSA Data Security Inc., MD5 Message-Digest Algorithm of Text with Nonce.\nPerforms an RSA Data Security, Inc. MD5 Message-Digest Algorithm on the specified string using the nonce (also known as salt).\n
-				Returns a 32-character hex string. (128-bit in binary.)</string>
-         </map>
-         <key>llMessageLinked</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>LinkNumber</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Number</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>ID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sends Number, Text, and ID to members of the link set identified by LinkNumber (LINK_ROOT sends to root task in a linked set, LINK_SET sends to all tasks, LINK_ALL_OTHERS to all other tasks, LINK_ALL_CHILDREN to all children, LINK_THIS to the task the script it is in).\nSends the specified number, string, and key to members of the link set.\n
-				The LinkNumber parameter is either a linked number available through llGetLinkNumber or a LINK_* constant.</string>
-         </map>
-         <key>llMinEventDelay</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Delay</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Set the minimum time between events being handled.</string>
-         </map>
-         <key>llModifyLand</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Action</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Area</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Modify land with action (LAND_LEVEL, LAND_RAISE, LAND_LOWER, LAND_SMOOTH, LAND_NOISE, LAND_REVERT) on size (LAND_SMALL_BRUSH, LAND_MEDIUM_BRUSH, LAND_LARGE_BRUSH).\nModify land with action on size area. The parameters can be chosen from the land constants.</string>
-         </map>
-         <key>llModPow</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>1.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Value</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Power</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Modulus</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns a Value raised to the Power, mod Modulus. ((a**b)%c) b is capped at 0xFFFF (16 bits).\nReturns (Value ^ Power) % Modulus. (Value raised to the Power, Modulus). Value is capped at 0xFFFF (16 bits).</string>
-         </map>
-         <key>llMoveToTarget</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Target</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Tau</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Critically damp to Target in Tau seconds (if the script is physical).\nCritically damp to position target in tau-seconds if the script is physical. Good tau-values are greater than 0.2. A tau of 0.0 stops the critical damping.</string>
-         </map>
-         <key>llNavigateTo</key>
-         <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real/>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Location</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Options</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Navigate to destination.\nDirects an object to travel to a defined position in the region or adjacent regions.</string>
-         </map>
-         <key>llOffsetTexture</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.2</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>OffsetS</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>OffsetT</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Face</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the texture S and T offsets for the chosen Face.\nSets the texture s and t offsets of face.\n
-			If Face is ALL_SIDES this function sets the texture offsets for all faces.</string>
-         </map>
-         <key>llOpenRemoteDataChannel</key>
-         <map>
-            <key>deprecated</key>
-            <boolean>true</boolean>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>1.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Requests a channel to listen for XML-RPC calls. Will trigger a remote_data event with channel ID once it is available.\nRequests a channel to listen for XML-RPC calls. (Deprecated: XML-RPC should not be used. Use http-in instead.)\n
-				Will trigger a remote_data event with type = REMOTE_DATA_CHANNEL and a channel ID (key) once it is available.\n
-				This channel ID must be referenced in the XML-RPC call to the script (from the internet) -- so the key must somehow get to the scripter's XML-RPC client, most often via llEmail, llHttpRequest or llLoadUrl.</string>
-         </map>
-         <key>llOverMyLand</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>ID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns TRUE if id ID over land owned by the script owner, otherwise FALSE.\nReturns TRUE if key ID is over land owned by the object owner, FALSE otherwise.</string>
-         </map>
-         <key>llOwnerSay</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>says Text to owner only (if owner is in region).\nSays Text to the owner of the object running the script, if the owner has been within the object's simulator since logging into Second Life, regardless of where they may be in-world.</string>
-         </map>
-         <key>llParcelMediaCommandList</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>2.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>CommandList</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sends a list of commands, some with arguments, to a parcel.\nControls the playback of multimedia resources on a parcel or for an agent.</string>
-         </map>
-         <key>llParcelMediaQuery</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>2.0</real>
-            <key>return</key>
-            <string>list</string>
-            <key>arguments</key>
-            <map>
-               <key>QueryList</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns a list containing results of the sent query.\nQueries the texture and/or URL for QuickTime-playable video on the land parcel.\n
-				This function will only work if the script is contained within an object owned by the land-owner (or if the land is owned by a group, only if the object has been deeded to the group). It will not work for group land if the object owner is a member of the group. The object actually has to be owned by the group.</string>
-         </map>
-         <key>llParseString2List</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>list</string>
-            <key>arguments</key>
-            <map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Separators</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Spacers</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Breaks Text into a list, discarding Separators, keeping Spacers (Separators and Spacers must be lists of strings, maximum of 8 each).\nBreaks the Text into a list using Separators and Spacers to delimit entries. Separators are discarded, while Spacers are kept. Any empty entries are ignored.\n
-				The separators and spacers must be lists of strings with a maximum of 8 entries each. So, if you had made the call:\n
-				llParseString2List("Parsethisnow! I dare:you to.", ["this", "!", " "], [":"]);\n
-				You would get the list: ["Parse", "now", "I", "dare", ":", "you", "to"].</string>
-         </map>
-         <key>llParseStringKeepNulls</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>list</string>
-            <key>arguments</key>
-            <map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Separators</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Spacers</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Breaks Text into a list, discarding separators, keeping spacers, keeping any null values generated. (separators and spacers must be lists of strings, maximum of 8 each).\nllParseStringKeepNulls works almost exactly like llParseString2List, except that if a null is found it will add a null-string instead of discarding it like llParseString2List does.</string>
-         </map>
-         <key>llParticleSystem</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Parameters</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Creates a particle system based on Parameters.	An empty list removes particle system from object.
-				List format is [ rule-1, data-1, rule-2, data-2 . . . rule-n, data-n ].\nMakes a particle system based on the parameter list.\n
-				The parameters are specified as an ordered list of parameter and value. Valid parameters and their expected values can be found in the particle system constants.\n
-				Here is a simple example:\n
-				llParticleSystem([PSYS_PART_FLAGS, PSYS_PART_WIND_MASK, PSYS_PART_START_COLOR, &lt;1, 0, 0&gt;, PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_EXPLODE]);</string>
-         </map>
-         <key>llPassCollisions</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Pass</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>If Pass == TRUE, collisions are passed from children on to parents (default is FALSE).\nIf pass is TRUE, land and object collisions are passed from children on to parents.\n
-				The default is FALSE if there is no script to handle the collision events.</string>
-         </map>
-         <key>llPassTouches</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Pass</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>If pass == TRUE, touches are passed from children on to parents (default is FALSE).\nIf pass is TRUE, touches are passed from children on to parents.\n
-				The default is TRUE if there is no script to handle the touch events.</string>
-         </map>
-         <key>llPatrolPoints</key>
-         <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real/>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Points</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Options</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Patrol a list of points.\nSets the points for a character (llCreateCharacter) to patrol along.</string>
-         </map>
-         <key>llPlaySound</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Sound</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Volume</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Plays attached Sound once, at Volume (0.0 - 1.0).\nPlays a sound once. The sound will be attached to the object and follow object's movement. Only one sound may be attached to an object at a time, and attaching a new sound or calling llStopSound will stop the previously attached sound.\n
-				A second call to llPlaySound with the same sound will not restart the sound, but the new volume will be used, which allows control over the volume of already playing sounds.\n
-				To restart the sound from the beginning, call llStopSound before calling llPlaySound again.</string>
-         </map>
-         <key>llPlaySoundSlave</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Sound</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Volume</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Plays attached Sound once, at Volume (0.0 - 1.0), synced to next loop of most audible sync master.\nBehaviour is identical to llPlaySound, unless there is a "Sync Master" present. If a Sync Master is already playing, the Slave sound will not be played until the Master hits its loop point and returns to the beginning.\n
-				llPlaySoundSlave will play the sound exactly once; if it is desired to have the sound play every time the Master loops, either use llLoopSoundSlave with extra silence padded on the end of the sound or ensure that llPlaySoundSlave is called at least once per loop of the Master.</string>
-         </map>
-         <key>llPow</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Value</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Exponent</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the Value raised to the power Exponent, or returns 0 and triggers Math Error for imaginary results.\nReturns the Value raised to the Exponent.</string>
-         </map>
-         <key>llPreloadSound</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>1.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Sound</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Preloads a sound on viewers within range.\nCauses nearby viewers to preload the Sound from the object's inventory. This is intended to prevent delays in starting new sounds when called upon.</string>
-         </map>
-         <key>llPursue</key>
-         <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real/>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>TargetID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Options</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Chase after a target.\nCauses the character (llCharacter) to pursue the target defined by TargetID.</string>
-         </map>
-         <key>llPushObject</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>ObjectID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Impulse</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>AngularImpulse</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Local</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Applies Impulse and AngularImpulse to ObjectID.\nApplies the supplied impulse and angular impulse to the object specified.</string>
-         </map>
-         <key>llRefreshPrimURL</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>20.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Reloads the web page shown on the sides of the object.</string>
-         </map>
-         <key>llRegionSay</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Channel</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Broadcasts Text to entire region on Channel (not 0.).\nSays the Text on the specified non-zero Channel, so that it can be heard anywhere in the region by a script listening on that channel.</string>
-         </map>
-         <key>llRegionSayTo</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>TargetID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Channel</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Says Text, on Channel, to avatar or object indicated by TargetID (if within region).\nSays the Text on the supplied channel number, to the object or avatar specified.</string>
-         </map>
-         <key>llReleaseCamera</key>
-         <map>
-            <key>deprecated</key>
-            <boolean>true</boolean>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Return camera to agent.\nDeprecated: Use llClearCameraParams instead.</string>
-         </map>
-         <key>llReleaseControls</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Stop taking inputs.\nStop taking inputs from the avatar.</string>
-         </map>
-         <key>llReleaseURL</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>URL</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Releases the specified URL, it will no longer be usable.</string>
-         </map>
-         <key>llRemoteDataReply</key>
-         <map>
-            <key>deprecated</key>
-            <boolean>true</boolean>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>3.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>ChannelID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>MessageID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Data</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Data</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Send an XML-RPC reply to MessageID on ChannelID with payload of string sData and integer iData. Deprecated: Use HTTP functions/events instead.\nDeprecated: Use HTTP functions/events instead.\n
-				Send an XML-RPC reply to the request with kMessageID on kChannelID with payload of string sData and integer iData.\n
-				The size of sData is limited to 254 characters.</string>
-         </map>
-         <key>llRemoteDataSetRegion</key>
-         <map>
-            <key>deprecated</key>
-            <boolean>true</boolean>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Deprecated: Use HTTP functions/events instead.\n
-				If an object using remote data channels changes regions, you must call this function to re-register the remote data channels.
-				You do not need to make this call if you don't change regions.\nDeprecated: Use HTTP functions/events instead.\n
-				Does not work! Use llOpenRemoteDataChannel instead.</string>
-         </map>
-         <key>llRemoteLoadScriptPin</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>3.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>ObjectID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>ScriptName</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>PIN</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Running</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>StartParameter</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>If the owner of the object this script is attached to can modify ObjectID, they are in the same region, and the matching PIN is used, copy ScriptName into target, if Running == TRUE, start the script with StartParameter.\nIf the owner of the object containing this script can modify the object identified by the specified object key, and if the PIN matches the PIN previously set using llSetRemoteScriptAccessPin (on the target prim), then the script will be copied into target.</string>
-         </map>
-         <key>llRemoveFromLandBanList</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Remove avatar from the land ban list.\nRemove specified avatar from the land parcel ban list.</string>
-         </map>
-         <key>llRemoveFromLandPassList</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Remove avatar from the land pass list.\nRemove specified avatar from the land parcel pass list.</string>
-         </map>
-         <key>llRemoveInventory</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>InventoryItem</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Remove the named inventory item.\nRemove the named inventory item from the object inventory.</string>
-         </map>
-         <key>llRemoveVehicleFlags</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Vehiclelags</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Removes the enabled bits in 'flags'.\nSets the vehicle flags to FALSE. Valid parameters can be found in the vehicle flags constants section.</string>
-         </map>
-         <key>llRequestAgentData</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.1</real>
-            <key>return</key>
-            <string>key</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Data</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Requests data about AvatarID. When data is available the dataserver event will be raised.\nThis function requests data about an avatar. If and when the information is collected, the dataserver event is triggered with the key returned from this function passed in the requested parameter. See the agent data constants (DATA_*) for details about valid values of data and what each will return in the dataserver event.</string>
-         </map>
-         <key>llRequestDisplayName</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Requests name of an avatar. When data is available, the dataserver event will be raised.\nRequests the Display Name of the agent. When the Display Name is available the dataserver event will be raised.\n
-				The avatar identified does not need to be in the same region or online at the time of the request.\n
-				Returns a key that is used to identify the dataserver event when it is raised.</string>
-         </map>
-         <key>llRequestInventoryData</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>1.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>arguments</key>
-            <map>
-               <key>InventoryItem</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Requests data from object's inventory object. When data is available the dataserver event will be raised.\nRequests data for the object inventory item named.\n
-				When data is available the dataserver event will be raised with the key returned from this function in the requested parameter.\n
-				The only request currently implemented is to request data from landmarks, where the data returned is in the form "&lt;float, float, float&gt;" which can be cast to a vector. This position is in region local coordinates.</string>
-         </map>
-         <key>llRequestPermissions</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>PermmissionMask</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Ask AvatarID to allow the script to do PermmissionMask (NB: Debit, ownership, link, joint, and permission requests can only go to the task's owner).\nAsk avatar to allow the script to perform certain actions. The permission flag should be one or more PERMISSION_* constants.\n
-				Multiple permissions can be requested simultaneously by ORing the constants together. Many of the permissions requests can only go to object owner.\n
-				This call will not stop script execution. If the avatar grants the requested permissions, the run_time_permissions event will be called.\n
-				Permissions for a single avatar are granted to a script, not to an object. So multiple scripts can hold permissions for multiple avatars.</string>
-         </map>
-         <key>llRequestSecureURL</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Requests one HTTPS:// (SSL) URL for use by this object. An http_request event is triggered with the results.\nRequests one HTTPS:// (SSL) URL for use by this object. The http_request event is triggered with results.\n
-				Returns a key that is the handle used for identifying the request in the http_request event.</string>
-         </map>
-         <key>llRequestSimulatorData</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>1.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>arguments</key>
-            <map>
-               <key>RegionName</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Data</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Requests data about a simulator. When data is available the dataserver event will be raised.\nRequests data about the region named. Data should use one of the DATA_SIM_* constants.\n
-			Returns a dataserver query ID and triggers the dataserver event when data is found. The region name is usually not case-sensitive, but sometimes will return data for a similarly-named region if the supplied case doesn't match the intended region's actual name.</string>
-         </map>
-         <key>llRequestURL</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Requests one HTTP:// URL for use by this object. An http_request event is triggered with the results.\nRequests one HTTP:// URL for use by this script. The http_request event is triggered with the result of the request.\n
-				Returns a key that is the handle used for identifying the result in the http_request event.</string>
-         </map>
-         <key>llRequestUsername</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Requests single-word user-name of an avatar. When data is available the dataserver event will be raised.\nRequests the user-name of the identified agent. When the user-name is available the dataserver event is raised.\nThe agent identified does not need to be in the same region or online at the time of the request.\nReturns a key that is used to identify the dataserver event when it is raised.</string>
-         </map>
-         <key>llResetAnimationOverride</key>
-         <map>
-            <key>energy</key>
-            <real>0</real>
-            <key>sleep</key>
-            <real>0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>AnimationState</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Resets the animation of the specified animation state to the default value.\nIf animation state equals "ALL", then all animation states are reset.</string>
-         </map>
-         <key>llResetLandBanList</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Removes all residents from the land ban list.</string>
-         </map>
-         <key>llResetLandPassList</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Removes all residents from the land access/pass list.</string>
-         </map>
-         <key>llResetOtherScript</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>ScriptName</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Resets the named script.</string>
-         </map>
-         <key>llResetScript</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Resets the script.</string>
-         </map>
-         <key>llResetTime</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Sets the time to zero.\nSets the internal timer to zero.</string>
-         </map>
-         <key>llReturnObjectsByID</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>lObjectIDs</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Return objects using their UUIDs</string>
-         </map>
-         <key>llReturnObjectsByOwner</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>kID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>iScope</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Return objects based upon their owner and a scope of parcel, parcel owner, or region.</string>
-         </map>
-         <key>llRezAtRoot</key>
-         <map>
-            <key>energy</key>
-            <real>200.0</real>
-            <key>sleep</key>
-            <real>0.1</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>InventoryItem</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Position</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Velocity</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Rotation</key>
-               <map>
-                  <key>type</key>
-                  <string>rotation</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>StartParameter</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Instantiate owner's InventoryItem at Position with Velocity, Rotation and with StartParameter. The last selected root object's location will be set to Position.\nCreates object's inventory item at the given Position, with Velocity, Rotation, and StartParameter.</string>
-         </map>
-         <key>llRezObject</key>
-         <map>
-            <key>energy</key>
-            <real>200</real>
-            <key>sleep</key>
-            <real>0.1</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>InventoryItem</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Position</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Velocity</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Rotation</key>
-               <map>
-                  <key>type</key>
-                  <string>rotation</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>StartParameter</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Instantiate owners InventoryItem at Position with Velocity, Rotation and with start StartParameter.\nCreates object's inventory item at Position with Velocity and Rotation supplied. The StartParameter value will be available to the newly created object in the on_rez event or through the llGetStartParameter function.\nThe Velocity parameter is ignored if the rezzed object is not physical.</string>
-         </map>
-         <key>llRot2Angle</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>Rotation</key>
-               <map>
-                  <key>type</key>
-                  <string>rotation</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the rotation angle represented by Rotation.\nReturns the angle represented by the Rotation.</string>
-         </map>
-         <key>llRot2Axis</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>Rotation</key>
-               <map>
-                  <key>type</key>
-                  <string>rotation</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the rotation axis represented by Rotation.\nReturns the axis represented by the Rotation.</string>
-         </map>
-         <key>llRot2Euler</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>Rotation</key>
-               <map>
-                  <key>type</key>
-                  <string>rotation</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the Euler representation (roll, pitch, yaw) of Rotation.\nReturns the Euler Angle representation of the Rotation.</string>
-         </map>
-         <key>llRot2Fwd</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>Rotation</key>
-               <map>
-                  <key>type</key>
-                  <string>rotation</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the forward vector defined by Rotation.\nReturns the forward axis represented by the Rotation.</string>
-         </map>
-         <key>llRot2Left</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>Rotation</key>
-               <map>
-                  <key>type</key>
-                  <string>rotation</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the left vector defined by Rotation.\nReturns the left axis represented by the Rotation.</string>
-         </map>
-         <key>llRot2Up</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>Rotation</key>
-               <map>
-                  <key>type</key>
-                  <string>rotation</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the up vector defined by Rotation.\nReturns the up axis represented by the Rotation.</string>
-         </map>
-         <key>llRotateTexture</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.2</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Radians</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Face</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the texture rotation for the chosen face.\nSets the rotation of the texture on the given side.\n
-				If face is ALL_SIDES, rotates the texture of all sides.</string>
-         </map>
-         <key>llRotBetween</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>rotation</string>
-            <key>arguments</key>
-            <map>
-               <key>Vector1</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Vector2</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the rotation to rotate Vector1 to Vector2.\nReturns the rotation needed to rotate Vector1 to Vector2.</string>
-         </map>
-         <key>llRotLookAt</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Rotation</key>
-               <map>
-                  <key>type</key>
-                  <string>rotation</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Strength</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Damping</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Cause object to point it's forward axis towards Rotation.\nCause object to rotate to Rotation. Good strength values are around half the mass of the object and good damping values are less than 1/10th of the strength.\n
-				Asymmetrical shapes require smaller damping.\n
-				A strength of 0.0 cancels the look at.</string>
-         </map>
-         <key>llRotTarget</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Rotation</key>
-               <map>
-                  <key>type</key>
-                  <string>rotation</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>LeeWay</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Set rotations with error of LeeWay as a rotational target and return an ID for the rotational target.\nSet object rotation within the given lee way of rotation as a rotational target and return an integer number for the target.\n
-				The returned number is a handle that can be used in llRotTargetRemove.</string>
-         </map>
-         <key>llRotTargetRemove</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Handle</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Removes rotational target number.\nRemove rotational target indicated by the handle.</string>
-         </map>
-         <key>llRound</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Value</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns Value rounded to the nearest integer.\nReturns the Value rounded to the nearest integer.</string>
-         </map>
-         <key>llSameGroup</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>ID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns TRUE if avatar ID is in the same region and has the same active group, otherwise FALSE.\nReturns TRUE if the object or agent identified is in the same simulator and has the same active group as this object. Otherwise, returns FALSE.</string>
-         </map>
-         <key>llSay</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Channel</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Says Text on Channel.\nSay Text on channel.\n
-			Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 to 2,147,483,648 are private channels that are not sent to avatars but other scripts can listen for through the llListen/listen event system.</string>
-         </map>
-         <key>llScaleTexture</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.2</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Horizontal</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Vertical</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Face</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the texture's S and T scales for the chosen Face.\nSets the Horizontal and Vertical repeats per Face on Face.\n
-				If Face == ALL_SIDES, all sides are set in one call.\n
-				Negative values for horizontal and vertical will flip the texture.</string>
-         </map>
-         <key>llScriptDanger</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Position</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns TRUE if Position is over public land, sandbox land, land that doesn't allow everyone to edit and build, or land that doesn't allow outside scripts.\nReturns true if the position is over public land, land that doesn't allow everyone to edit and build, or land that doesn't allow outside scripts.</string>
-         </map>
-         <key>llScriptProfiler</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>State</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Enables or disables script profiling options. Currently only supports PROFILE_SCRIPT_MEMORY (Mono only) and PROFILE_NONE.\n
-				MAY SIGNIFICANTLY REDUCE SCRIPT PERFORMANCE!.\nEnables or disables the scripts profiling state.. Currently only supports PROFILE_SCRIPT_MEMORY (Mono only) and PROFILE_NONE.\n
-				MAY SIGNIFICANTLY REDUCE SCRIPT PERFORMANCE!.</string>
-         </map>
-         <key>llSendRemoteData</key>
-         <map>
-            <key>deprecated</key>
-            <boolean>true</boolean>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>3.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>arguments</key>
-            <map>
-               <key>ChannelID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Destination</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Value</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Deprecated: use HTTP instead.\n
-				Sends an XML-RPC request to Destination through ChannelID with payload of ChannelID (in a string), integer Value and string Text.
-				Returns a key that is the message_id for the resulting remote_data events.\nSend an XML-RPC request to the Destination (probably an URL) through the ChannelID, with a payload of ChannelID (in a string), integer Value and string Text.</string>
-         </map>
-         <key>llSensor</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Name</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>ID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Type</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Range</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Arc</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Performs a single scan for Name and ID with Type (AGENT, ACTIVE, PASSIVE, and/or SCRIPTED) within Range meters and Arc radians of forward vector (Name, ID, and/or Type can be empty or 0).\nPerforms a single scan for Name and ID with Type within Range meters and Arc radians of the forward vector.\n
-				Specifying a blank Name or NULL_KEY ID will prevent filtering results for a particular Name or ID. A range of 0.0 does not perform a scan. The Type parameter should be an object type constant value.</string>
-         </map>
-         <key>llSensorRemove</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>removes sensor.\nRemoves the sensor set by llSensorRepeat.</string>
-         </map>
-         <key>llSensorRepeat</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Name</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>ID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Type</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Range</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Arc</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Rate</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets a callback for Name and ID with Type (AGENT, ACTIVE, PASSIVE, and/or SCRIPTED) within Range meters and Arc radians of forward vector (Name, ID, and/or Type can be empty or 0) and repeats every Rate seconds.\nPerforms a repeating sensor scan for Name and ID with Type within Range meters and Arc radians of the forward vector (Name and/or ID can be empty or NULL_KEY).\n
-				A range of 0.0m does not perform a scan. The parameters have the same function as llSensor, except Rate, which defines the number of seconds between repeated scans and subsequent sensor or no_sensor events.</string>
-         </map>
-         <key>llSetAlpha</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Opacity</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Face</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the alpha (opacity) of Face.\nSets the alpha (opacity) value for Face. If Face is ALL_SIDES, sets the alpha for all faces. The alpha value is interpreted as an opacity percentage (1.0 is fully opaque, and 0.2 is mostly transparent). This function will clamp alpha values less than 0.1 to 0.1 and greater than 1.0 to 1.</string>
-         </map>
-         <key>llSetAngularVelocity</key>
-         <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Force</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Local</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets an object's angular velocity, in local coordinates if local == TRUE (if the script is physical).\nApplies angular (rotational) velocity to a physical object. Has no effect on non-physical objects.</string>
-         </map>
-         <key>llSetAnimationOverride</key>
-         <map>
-            <key>energy</key>
-            <real>0</real>
-            <key>sleep</key>
-            <real>0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>AnimationState</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>AnimationName</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the animation (in object inventory) that will play for the given animation state.\nTo use this function the script must obtain the PERMISSION_OVERRIDE_ANIMATIONS permission.</string>
-         </map>
-         <key>llSetBuoyancy</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Buoyancy</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Set the tasks buoyancy (0 is none, &lt; 1.0 sinks, 1.0 floats, &gt; 1.0 rises).\nSet the object buoyancy. A value of 0 is none, less than 1.0 sinks, 1.0 floats, and greater than 1.0 rises.</string>
-         </map>
-         <key>llSetCameraAtOffset</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Offset</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the camera used in this object, at offset, if an avatar sits on it.\nSets the offset that an avatar's camera will be moved to if the avatar sits on the object.</string>
-         </map>
-         <key>llSetCameraEyeOffset</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Offset</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the camera eye offset used in this object if an avatar sits on it.</string>
-         </map>
-         <key>llSetCameraParams</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Parameters</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets multiple camera parameters at once. List format is [ rule-1, data-1, rule-2, data-2 . . . rule-n, data-n ].\nSets multiple camera parameters at once.\n
-				List format is [rule-1, value-1, rule-2, value-2 ... rule-N, value-N]</string>
-         </map>
-         <key>llSetClickAction</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Action</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the action performed when a prim is clicked upon.</string>
-         </map>
-         <key>llSetColor</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Colour</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Face</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the color, for the face.\nSets the colour of the side specified. If Face is ALL_SIDES, sets the colour on all faces.</string>
-         </map>
-         <key>llSetContentType</key>
-         <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real/>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>HTTPRequestID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>ContentType</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Set the media type of an LSL HTTP server response.</string>
-         </map>
-         <key>llSetDamage</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Damage</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the amount of damage that will be done to an avatar that this task hits.	Task will be killed.\nSets the amount of damage that will be done to an avatar that this object hits. This object will be destroyed on damaging an avatar, and no collision event is triggered.</string>
-         </map>
-         <key>llSetForce</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Force</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Local</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets Force on object, in local coordinates if Local == TRUE (if the script is physical).\nIf the object is physical, this function sets the force.\n
-				The vector is in local coordinates if local is TRUE, global if FALSE.</string>
-         </map>
-         <key>llSetForceAndTorque</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Force</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Torque</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Local</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the Force and Torque of object, in local coordinates if Local == TRUE (if the script is physical).\nIf the object is physical, this function sets the Force and Torque. The vectors are in local coordinates if Local is TRUE, global if FALSE.</string>
-         </map>
-         <key>llSetHoverHeight</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Height</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Water</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Tau</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Critically damps to a Height (either above ground level or above the higher of land and water if water == TRUE).\nCritically damps to a Height. The height is above ground and water (which ever is greater) if water is TRUE. Only works with physics-enabled objects.\n
-				Do not use with vehicles. Use llStopHover to stop hovering.</string>
-         </map>
-         <key>llSetInventoryPermMask</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>InventoryItem</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>PermissionFlag</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>PermissionMask</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the given permission mask to the new value on the inventory item.</string>
-         </map>
-         <key>llSetKeyframedMotion</key>
-         <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real/>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Keyframes</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Options</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Requests that a non-physical object be key-framed according to key-frame list.\nSpecify a list of times, positions, and orientations to be followed by an object. The object will be smoothly moved between key-frames by the simulator. Collisions with other non-physical or key-framed objects will be ignored (no script events will fire and collision processing will not occur). Collisions with physical objects will be computed and reported, but the key-framed object will be unaffected by those collisions.</string>
-         </map>
-         <key>llSetLinkAlpha</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>LinkNumber</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Opacity</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Face</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>If a prim exists in the link chain at LinkNumber, set Face to Opacity.\nSets the Face, on the linked prim specified, to the Opacity.</string>
-         </map>
-         <key>llSetLinkCamera</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>LinkNumber</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>EyeOffset</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>LookOffset</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the camera eye offset, and the offset that camera is looking at, for avatars that sit on the linked prim.</string>
-         </map>
-         <key>llSetLinkColor</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>LinkNumber</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Colour</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Face</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>If a task exists in the link chain at LinkNumber, set the Face to color.\nSets the colour of the linked child's side, specified by LinkNumber.</string>
-         </map>
-         <key>llSetLinkMedia</key>
-         <map>
-            <key>energy</key>
-            <real>0.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Link</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Face</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Parameters</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Set the media parameters for a particular face on linked prim.	Parameters is a list of name/value pairs (in no particular order). If media is not already on this object, add it. Parameters not specified are unchanged, or if new media is added set to the default specified.\nSet the media parameters for a particular face on the linked prim(s) without a delay.\n
-				Returns an integer that is a STATUS_* flag which details the success/failure of the operation(s).</string>
-         </map>
-         <key>llSetLinkPrimitiveParams</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.2</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>LinkNumber</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Parameters</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Set primitive parameters for LinkNumber based on Parameters.\nSets the parameters (or properties) of any linked prim in one step.</string>
-         </map>
-         <key>llSetLinkPrimitiveParamsFast</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>LinkNumber</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Parameters</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Set primitive parameters for LinkNumber based on Parameters, without a delay.\nSet parameters for link number, from the list of Parameters, with no built-in script sleep. This function is identical to llSetLinkPrimitiveParams, except without the delay.</string>
-         </map>
-         <key>llSetLinkTexture</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.2</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>LinkNumber</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Texture</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Face</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the Texture of Face for LinkNumber.\nSets the Texture of linked prims.</string>
-         </map>
-         <key>llSetLinkTextureAnim</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>LinkNumber</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Mode</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Face</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>SizeX</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>SizeY</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Start</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Length</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Rate</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Animate the texture on the specified prim's face/faces.\nAnimate the texture on the specified face/faces of the specified prim/prims by setting the texture scale and offset.\n
-				Identical to llSetTextureAnim except able to modify any prim in the link set.</string>
-         </map>
-         <key>llSetLocalRot</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.2</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Rotation</key>
-               <map>
-                  <key>type</key>
-                  <string>rotation</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the rotation of a child prim relative to the root prim.</string>
-         </map>
-         <key>llSetMemoryLimit</key>
-         <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Limit</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Request Limit bytes to be reserved for this script. This function has no effect if the script is running in the LSO VM.\nRequest Limit bytes to be reserved for this script. This function has no effect if the script is running in the LSO VM.\n
-				Return TRUE or FALSE indicating whether the limit was set successfully.</string>
-         </map>
-         <key>llSetObjectDesc</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Description</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the object's description.\nSets the description of the scripted prim. You can get the description using llGetObjectDesc.\n
-				The description is limited to 127 characters.</string>
-         </map>
-         <key>llSetObjectName</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Name</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the object's name.</string>
-         </map>
-         <key>llSetObjectPermMask</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>PermissionFlag</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>PermissionMask</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the given permission mask to the new value on the root object the task is attached to.</string>
-         </map>
-         <key>llSetParcelMusicURL</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>2.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>URL</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the streaming audio URL for the parcel object is on.\nSets the streaming audio URL for the parcel the scripted object is on (the object must be owned by the owner of the parcel, if the parcel is group owned the object must be owned by that group).</string>
-         </map>
-         <key>llSetPayPrice</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Price</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>QuickButtons</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the default amount when someone chooses to pay this object.\nSets the values of the buttons and the text box default for the Pay dialogue, when a user right-clicks on the object and selects "Pay".\n
-				llSetPayPrice will affect what buttons exist, what their values are, and whether or not there is a manual payment text entry box.</string>
-         </map>
-         <key>llSetPhysicsMaterial</key>
-         <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real/>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>MaterialBits</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>GravityMultiplier</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Restitution</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Friction</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Density</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the requested attributes of the root object's physics material.</string>
-         </map>
-         <key>llSetPos</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.2</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Position</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the position (if the script isn't physical).\nIf the object is not physical, this function sets the position in region coordinates. If the object is a child prim, the position is treated as root relative and the link-set is adjusted.</string>
-         </map>
-         <key>llSetPrimitiveParams</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.2</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Parameters</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Set primitive parameters.\nThis function changes the many properties (or "parameters") of a prim in one operation. The Parameters are a list of changes.</string>
-         </map>
-         <key>llSetPrimMediaParams</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.1</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Face</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>MediaParameters</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the MediaParameters for a particular Face on an object. If media is not already on this object, add it.
-				MediaParameters is a set of name/value pairs in no particular order. Parameters not specified are unchanged, or if new media is added then set to the default specified.\nSet the MediaParameters for a particular face.\n
-				Returns an integer that is a STATUS_* flag which details the success/failure of the operation(s).</string>
-         </map>
-         <key>llSetPrimURL</key>
-         <map>
-            <key>deprecated</key>
-            <boolean>true</boolean>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>20.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>URL</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Deprecated: Use llSetPrimMediaParams instead.\nDeprecated: Use llSetPrimMediaParams instead. Updates the URL for the web page shown on the sides of the object.</string>
-         </map>
-         <key>llSetRegionPos</key>
-         <map>
-            <key>energy</key>
-            <real>0.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Position</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the Position anywhere within the region (if the object isn't physical).\nTries to moves the entire object so that the root prim is within 0.1m of Position.\n
-				Returns an integer boolean, TRUE if the object is successfully placed within 0.1 m of Position, FALSE otherwise.\n
-				The object with the script will move the root prim position to the given location. The position is any position within the region. If the position is below ground, it will be set to the ground level at that x,y location. The function has no delay or throttle.</string>
-         </map>
-         <key>llSetRemoteScriptAccessPin</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.2</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>PIN</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>If PIN is set to a non-zero number, the task will accept remote script loads via llRemoteLoadScriptPin if it passes in the correct PIN. Othersise, llRemoteLoadScriptPin is ignored.\nIf PIN is set to a non-zero number, the task will accept remote script loads via llRemoteLoadScriptPin if passed the matching PIN. Otherwise llRemoteLoadScriptPin is ignored</string>
-         </map>
-         <key>llSetRot</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.2</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Rotation</key>
-               <map>
-                  <key>type</key>
-                  <string>rotation</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the rotation (if the script isn't physical).\nIf the object is not physical, this function sets the rotation.\n
-				If the script is in a child prim, the position is treated as root relative and the linked set is adjusted.</string>
-         </map>
-         <key>llSetScale</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Scale</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the scale.\nSets the prim's scale (size).</string>
-         </map>
-         <key>llSetScriptState</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>ScriptName</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Running</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Control the state of a named script.\nControl the state of a script in the prim.</string>
-         </map>
-         <key>llSetSitText</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Displays Text rather than "Sit" in context menu.\nDisplays Text rather than 'Sit' in the viewer's menu.</string>
-         </map>
-         <key>llSetSoundQueueing</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>QueueEnable</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Determines whether attached sound calls wait for the current sound to finish (0 = no [default], non-zero = yes).\nSets whether successive calls to llPlaySound, llLoopSound, etc., (attached sounds) interrupt the playing sound.\n
-				The default for objects is FALSE. Setting this value to TRUE will make the sound wait until the current playing sound reaches its end. The queue is one level deep.</string>
-         </map>
-         <key>llSetSoundRadius</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Radius</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Establishes a hard cut-off radius for audibility of scripted sounds (both attached and triggered).</string>
-         </map>
-         <key>llSetStatus</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Status</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Value</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets status (STATUS_PHYSICS, STATUS_PHANTOM, STATUS_BLOCK_GRAB, STATUS_ROTATE_X, STATUS_ROTATE_Y, and/or STATUS_ROTATE_Z) to value.\nSets the Status to Value. Use STATUS_* constants for the values of status.</string>
-         </map>
-         <key>llSetText</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Colour</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Opacity</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Set text floating over object.\nSets the text that floats above the object, using the specified colour and opacity level.</string>
-         </map>
-         <key>llSetTexture</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.2</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Texture</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Face</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the Texture of Face.\nSets the Texture of Face. If Face is ALL_SIDES, set the texture on all faces.</string>
-         </map>
-         <key>llSetTextureAnim</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Mode</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Face</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>SizeX</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>SizeY</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Start</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Length</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Rate</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Animate the texture on the specified face/faces.\nAnimates a texture by setting the texture scale and offset.</string>
-         </map>
-         <key>llSetTimerEvent</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Rate</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Cause the timer event to be triggered every Rate seconds.\nSets the timer event to be triggered at the specified Rate, in seconds.\n
-				Passing in 0.0 stops further timer events.</string>
-         </map>
-         <key>llSetTorque</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Torque</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Local</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the Torque of object, in local coordinates if Local == TRUE (if the script is physical).\nIf the object is physical, this function sets the torque.\n
-			The vector is in local coordinates if Local is TRUE, global if FALSE.</string>
-         </map>
-         <key>llSetTouchText</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Displays Text in the menu that acts on a touch.\nDisplays Text in the viewer context menu that acts on a touch.</string>
-         </map>
-         <key>llSetVehicleFlags</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Flags</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the enabled bits in 'flags'.\nSets the vehicle flags to TRUE.\nValid parameters can be found in the vehicle flags constants section.</string>
-         </map>
-         <key>llSetVehicleFloatParam</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>ParameterName</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>ParameterValue</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the specified vehicle float parameter.\nSets the vehicle floating point parameter.\n
-				Valid parameters and their expected values can be found in the vehicle parameter constants section.</string>
-         </map>
-         <key>llSetVehicleRotationParam</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>ParameterName</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>ParameterValue</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the specified vehicle rotation parameter.\nSets the vehicle rotation parameter.\n
-				Valid parameters can be found in the vehicle parameter constants section.</string>
-         </map>
-         <key>llSetVehicleType</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Type</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets vehicle to one of the default types.\nActivates the vehicle action and choose vehicle Type.\n
-				Valid Types and an explanation of their characteristics can be found in the vehicle type constants section.</string>
-         </map>
-         <key>llSetVehicleVectorParam</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>ParameterName</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>ParameterValue</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the specified vehicle vector parameter.\nSets the vehicle vector parameter.\nValid parameters can be found in the vehicle parameter constants section.</string>
-         </map>
-         <key>llSetVelocity</key>
-         <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Force</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Local</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets an objects velocity, in local coordinates if Local == TRUE (if the script is physical).\nApplies Force to a physical object.</string>
-         </map>
-         <key>llSHA1String</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns a string of 40 hex characters that is the SHA1 security Hash of Text.\nReturns a string of 40 hex characters that is the SHA1 security hash of the supplied string.</string>
-         </map>
-         <key>llShout</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Channel</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>shouts Text on Channel.\nShout Text on Channel. Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 to 2,147,483,648 are private channels that are not sent to avatars but other scripts can listen for through the llListen function.</string>
-         </map>
-         <key>llSin</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>Theta</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the sine of Theta (Theta in radians).\nReturns the sine of Theta in radians.</string>
-         </map>
-         <key>llSitTarget</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Offset</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Rotation</key>
-               <map>
-                  <key>type</key>
-                  <string>rotation</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Set the sit location for this object (if offset == &lt;0,0,0&gt; clear it).\nSet the sit location for this object. If offset == ZERO_VECTOR, clears the sit target.</string>
-         </map>
-         <key>llSleep</key>
-         <map>
-            <key>energy</key>
-            <real>0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Time</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Put script to sleep for Time seconds.\nPuts the script to sleep for time specified, in seconds.</string>
-         </map>
-         <key>llSound</key>
-         <map>
-            <key>deprecated</key>
-            <boolean>true</boolean>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Sound</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Volume</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Queue</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Loop</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Deprecated: Use llPlaySound instead.\nDeprecated: Use llPlaySound instead.\nPlays Sound at Volume and specifies whether it should loop or not.</string>
-         </map>
-         <key>llSoundPreload</key>
-         <map>
-            <key>deprecated</key>
-            <boolean>true</boolean>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Sound</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Deprecated: Use llPreloadSound instead.\nDeprecated: Use llPreloadSound instead.\nPreloads a sound on viewers within range.</string>
-         </map>
-         <key>llSqrt</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>Value</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the square root of Value, or returns 0 and triggers a Math Error for imaginary results.\nReturns the square root of the value. If the value is less than 0.0, this function returns 0.0 and raises a maths runtime error.</string>
-         </map>
-         <key>llStartAnimation</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Animation</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Start Animation for agent that owns object.\nThis function starts the animation for the last avatar that granted the object PERMISSION_TRIGGER_ANIMATION permission.</string>
-         </map>
-         <key>llStopAnimation</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Animation</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Stop Animation for agent that owns object.\nThis function stops the animation for the last avatar that granted the object PERMISSION_TRIGGER_ANIMATION permission.</string>
-         </map>
-         <key>llStopHover</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Stop hovering to a height.\nStop hovering at a height.</string>
-         </map>
-         <key>llStopLookAt</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Stop causing object to point at a target.\nStop causing object to look at target.</string>
-         </map>
-         <key>llStopMoveToTarget</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Stops critically damped motion.</string>
-         </map>
-         <key>llStopSound</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Stops currently attached sound.\nStops the currently playing attached sound started with llPlaySound or llLoopSound. Has no effect on sounds started with llTriggerSound.</string>
-         </map>
-         <key>llStringLength</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the length of string.\nReturns the number of characters in the specified text.</string>
-         </map>
-         <key>llStringToBase64</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Converts a string to the Base64 representation of the string.\nConverts a string to the Base 64 representation of the string.</string>
-         </map>
-         <key>llStringTrim</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>TrimType</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Trims the leading and/or trailing white spaces from a string.\n
-				TrimType can be STRING_TRIM, STRING_TRIM_HEAD or STRING_TRIM_TAIL.\nOutputs a string, eliminating white-space from the start and/or end of the specified string.\n
-				Constants for trim_type:\n
-				STRING_TRIM_HEAD: trim all leading spaces in text\n
-				STRING_TRIM_TAIL: trim all trailing spaces in text\n
-				STRING_TRIM: trim all leading and trailing spaces in text</string>
-         </map>
-         <key>llSubStringIndex</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Sequence</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns an integer that is the index in source where pattern first appears. Returns -1 if not found.\nReturns an index of the text where the sequence of characters first appears.\n
-				Returns -1 if no match is found.</string>
-         </map>
-         <key>llTakeCamera</key>
-         <map>
-            <key>deprecated</key>
-            <boolean>true</boolean>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Deprecated: Use llSetCameraParams instead.\nDeprecated: Use llSetCameraParams instead. Move avatar's viewpoint to task.</string>
-         </map>
-         <key>llTakeControls</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Controls</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Accept</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>PassOn</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Take controls from agent task has permissions for.	If (Accept == (controls &amp; input)), send input to task.	If PassOn send to agent also.\nRequires the PERMISSION_TAKE_CONTROLS permission to run.</string>
-         </map>
-         <key>llTan</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>Theta</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the tangent of Theta (Theta in radians).\nReturns the tangent of Theta radians.</string>
-         </map>
-         <key>llTarget</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Position</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Range</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets positions within range of position as a target and return an ID for the target.\nSet object position, within range of position, as a target and returns an integer ID for the target.</string>
-         </map>
-         <key>llTargetOmega</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Axis</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>SpinRate</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Gain</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Attempt to spin at SpinRate with strength Gain.\nAttempt to spin at SpinRate with strength Gain on axis.\n
-			A spin-rate of 0.0 cancels the spin. This function always works in object local coordinates.</string>
-         </map>
-         <key>llTargetRemove</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Target</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Removes target number.\nRemove target number.</string>
-         </map>
-         <key>llTeleportAgent</key>
-         <map>
-            <key>energy</key>
-            <real>0</real>
-            <key>sleep</key>
-            <real>0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>LandmarkName</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Position</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>LookAtPoint</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Requests a teleport of avatar to a landmark stored in the object's inventory. If no landmark is provided (an empty string), the avatar is teleported to the location position in the current region. In either case, the avatar is turned to face the position given by look_at in local coordinates.
-				Requires the PERMISSION_TELEPORT permission. This function can only teleport the owner of the object.</string>
-         </map>
-         <key>llTeleportAgentGlobalCoords</key>
-         <map>
-            <key>energy</key>
-            <real>0</real>
-            <key>sleep</key>
-            <real>0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>GlobalPosition</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>RegionPosition</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>LookAtPoint</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Teleports an agent to set of a region_coordinates within a region at the specified global_coordinates. The agent lands facing the position defined by look_at local coordinates.</string>
-         </map>
-         <key>llTeleportAgentHome</key>
-         <map>
-            <key>energy</key>
-            <real>100.0</real>
-            <key>sleep</key>
-            <real>5.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Teleports agent on owner's land to agent's home location.\nTeleport agent over the owner's land to agent's home location.</string>
-         </map>
-         <key>llTextBox</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>1.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Channel</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Shows a dialog box on the avatar's screen with the message. A text box asks for input, and if entered the Text is chatted on Channel.\nShows a dialogue box on avatar's screen with the text message.\n
-				It contains a text box for input. Any text that is entered is said on the specified channel (as if by the avatar) when the "OK" button is clicked.</string>
-         </map>
-         <key>llToLower</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns a string that is Text with all lower-case characters.\nReturns Text in all lower case.</string>
-         </map>
-         <key>llToUpper</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns a string that is Text with all upper-case characters.\nReturns Text in all upper case.</string>
-         </map>
-         <key>llTransferLindenDollars</key>
-         <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Amount</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Transfer Amount of linden dollars (L$) from script owner to AvatarID. Returns a key to a corresponding transaction_result event for the success of the transfer.\nAttempts to send the amount of money to the specified avatar, and trigger a transaction_result event identified by the returned key.</string>
-         </map>
-         <key>llTriggerSound</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Sound</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Volume</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Plays Sound at Volume (0.0 - 1.0), centered at but not attached to object.\nPlays a transient sound NOT attached to an object.\n
-				The sound plays from a stationary position located at the centre of the object at the time of the triggering.\n
-				There is no limit to the number of triggered sounds which can be generated by an object, and calling llTriggerSound does not affect the attached sounds created by llPlaySound and llLoopSound. This is very useful for things like collision noises, explosions, etc. There is no way to stop or alter the volume of a sound triggered by this function.</string>
-         </map>
-         <key>llTriggerSoundLimited</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Sound</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Volume</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>TNE</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>BSW</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Plays Sound at Volume (0.0 - 1.0), centered at but not attached to object, limited to axis-aligned bounding box defined by vectors top-north-east (TNE) and bottom-south-west (BSW).\nPlays a transient sound NOT attached to an object, with its audible range limited by the axis-aligned bounding box define by TNE (top-north-east) and BSW (bottom-south-west).\n
-				The sound plays from a stationary position located at the centre of the object at the time of the triggering.\n
-				There is no limit to the number of triggered sounds which can be generated by an object, and calling llTriggerSound does not affect the attached sounds created by llPlaySound and llLoopSound. This is very useful for things like collision noises, explosions, etc. There is no way to stop or alter the volume of a sound triggered by this function.</string>
-         </map>
-         <key>llUnescapeURL</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>URL</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns an unescaped/ unencoded version of URL, replacing %20 with spaces etc.\nReturns the string that is the URL unescaped, replacing "%20" with spaces, etc., version of URL.\n
-				The function can output raw UTF-8 strings.</string>
-         </map>
-         <key>llUnSit</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>If agent identified by AvatarID is sitting on the object the script is attached to or is over land owned by the objects owner, the agent is forced to stand up.\nIf the agent identified is sitting on the object the script is attached to or is over land owned by the objects owner, the agent is forced to stand up.</string>
-         </map>
-         <key>llUpdateCharacter</key>
-         <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real/>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Options</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Change the character's settings.\nUpdates settings for a character.</string>
-         </map>
-         <key>llVecDist</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>Location1</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Location2</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the 3D distance between Location1 and Location2.\nReturns the distance from location 1 to location 2.</string>
-         </map>
-         <key>llVecMag</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>Vector</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the magnitude of Vector.\nReturns the magnitude of the vector.</string>
-         </map>
-         <key>llVecNorm</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>Vector</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the v normalized.\nReturns normalized vector.</string>
-         </map>
-         <key>llVolumeDetect</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>DetectEnabled</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>If DetectEnabled = TRUE, object becomes phantom but triggers collision_start and collision_end events when other objects start and stop interpenetrating. Must be applied to the root object.\nWhen detect = TRUE, this makes the entire link set the script is attached to phantom. If another object (including avatars) interpenetrates it, it will get a collision_start event.\n
-				When an object stops interpenetrating, a collision_end event is generated. While the other is inter-penetrating, collision events are NOT generated. The script must be applied to the root object of the link set to get the collision events.\n
-				Collision filters work normally.</string>
-         </map>
-         <key>llWanderWithin</key>
-         <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real/>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Origin</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Area</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Options</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Wander within a specified volume.\nSets a character to wander about a central spot within a specified area.</string>
-         </map>
-         <key>llWater</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>Offset</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the water height below the object position + offset.\nReturns the water height at the object's position + offset.</string>
-         </map>
-         <key>llWhisper</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Channel</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Whispers Text on Channel.\nWhisper Text on Channel. Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 to 2,147,483,648 are private channels that are not sent to avatars but other scripts can listen for through the llListen function.</string>
-         </map>
-         <key>llWind</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>Offset</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the wind velocity at the object position + offset.\nReturns the wind velocity at the object's position + offset.</string>
-         </map>
-         <key>llXorBase64Strings</key>
-         <map>
-            <key>deprecated</key>
-            <boolean>true</boolean>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.3</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>Text1</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Text2</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Deprecated: Please use llXorBase64StringsCorrect instead.\n
-				Incorrectly performs an exclusive OR on two Base64 strings and returns a Base64 string.	Text2 repeats if it is shorter than Text1.	Retained for backwards compatibility.\nDeprecated: Use llXorBase64StringsCorrect instead.\nIncorrectly performs an exclusive OR on two Base64 strings and returns a Base64 string.</string>
-         </map>
-         <key>llXorBase64StringsCorrect</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>Text1</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Text2</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Correctly performs an exclusive OR on two Base64 strings and returns a Base64 string.\n
-				Text2 repeats if it is shorter than Text1.\nPerforms an exclusive-OR on two Base64 strings and returns a Base64 string. text-2 repeats if it is shorter than text-1.\n
-				This function is for encrypting data. Put your data in text-1 and your key in text-2 to encrypt or put the encrypted data into text-1 with the same key in text-2 to decrypt again.</string>
-         </map>
-      </map>
-   </map>
-</llsd>
\ No newline at end of file
-- 
cgit v1.2.3


From ee238ce3f1f100942032a290a5c9b7429d14938f Mon Sep 17 00:00:00 2001
From: Drake Arconis <lightdrake@gmail.com>
Date: Fri, 11 Oct 2013 18:12:42 -0400
Subject: STORM-1972 Restore missing particle info display menu item

---
 indra/newview/skins/default/xui/en/menu_viewer.xml | 10 ++++++++++
 1 file changed, 10 insertions(+)

(limited to 'indra')

diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml
index 2d65052def..2ccefc8724 100755
--- a/indra/newview/skins/default/xui/en/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/en/menu_viewer.xml
@@ -2553,6 +2553,16 @@
            function="Advanced.ToggleInfoDisplay"
            parameter="lights" />
         </menu_item_check>
+        <menu_item_check
+         label="Particles"
+         name="Particles">
+          <menu_item_check.on_check
+           function="Advanced.CheckInfoDisplay"
+           parameter="particles" />
+          <menu_item_check.on_click
+           function="Advanced.ToggleInfoDisplay"
+           parameter="particles" />
+        </menu_item_check>
         <menu_item_check
          label="Collision Skeleton"
          name="Collision Skeleton">
-- 
cgit v1.2.3


From 015597bb5878fe3c2932fe96fdf2e6dbeee5519d Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Sat, 12 Oct 2013 03:07:22 +0100
Subject: STORM-1831 Importing Oz's updates for libxml2

---
 indra/cmake/GStreamer010Plugin.cmake |  2 +-
 indra/cmake/LLPrimitive.cmake        | 11 ++++++++++-
 2 files changed, 11 insertions(+), 2 deletions(-)

(limited to 'indra')

diff --git a/indra/cmake/GStreamer010Plugin.cmake b/indra/cmake/GStreamer010Plugin.cmake
index d2d0699bcd..8918ee0c90 100755
--- a/indra/cmake/GStreamer010Plugin.cmake
+++ b/indra/cmake/GStreamer010Plugin.cmake
@@ -9,7 +9,7 @@ if (STANDALONE)
 elseif (LINUX)
   use_prebuilt_binary(gstreamer)
   # possible libxml should have its own .cmake file instead
-  use_prebuilt_binary(libxml)
+  use_prebuilt_binary(libxml2)
   set(GSTREAMER010_FOUND ON FORCE BOOL)
   set(GSTREAMER010_PLUGINS_BASE_FOUND ON FORCE BOOL)
   set(GSTREAMER010_INCLUDE_DIRS
diff --git a/indra/cmake/LLPrimitive.cmake b/indra/cmake/LLPrimitive.cmake
index 0d87ff579a..a9a8257f80 100755
--- a/indra/cmake/LLPrimitive.cmake
+++ b/indra/cmake/LLPrimitive.cmake
@@ -6,7 +6,6 @@ include(Boost)
 
 use_prebuilt_binary(colladadom)
 use_prebuilt_binary(pcre)
-use_prebuilt_binary(libxml)
 
 set(LLPRIMITIVE_INCLUDE_DIRS
     ${LIBS_OPEN_DIR}/llprimitive
@@ -19,6 +18,16 @@ if (WINDOWS)
         optimized libcollada14dom22
         ${BOOST_SYSTEM_LIBRARIES}
         )
+elseif (LINUX)
+    use_prebuilt_binary(libxml2)
+    set(LLPRIMITIVE_LIBRARIES
+        llprimitive
+        collada14dom
+        minizip
+        xml2
+        pcrecpp
+        pcre
+        )
 else (WINDOWS)
     set(LLPRIMITIVE_LIBRARIES 
         llprimitive
-- 
cgit v1.2.3


From 0ffaf25e7599391841508fbac769bc3b544930a5 Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Tue, 15 Oct 2013 21:46:24 +0100
Subject: STORM-1831 Removing unnecessary semi-colon

---
 indra/llui/llkeywords.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'indra')

diff --git a/indra/llui/llkeywords.h b/indra/llui/llkeywords.h
index 6889b95339..77a12bc1e5 100755
--- a/indra/llui/llkeywords.h
+++ b/indra/llui/llkeywords.h
@@ -193,7 +193,7 @@ protected:
 	std::string	getArguments(LLSD& args);
 
 private:
-	BOOL		ready() { return mReady; };
+	BOOL		ready() { return mReady; }
 	BOOL		mReady;
 	std::string	mFilenameSyntax;
 };
-- 
cgit v1.2.3


From bccbcced5426d95353f07ec2e8bb12c0b1ec03bf Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Tue, 15 Oct 2013 21:56:20 +0100
Subject: Renaming file to better reflect it's actual usage for the future.

---
 indra/llui/llkeywords.cpp                          |     3 +-
 indra/newview/CMakeLists.txt                       |     2 +-
 .../newview/app_settings/keywords_lsl_default.xml  | 16865 +++++++++++++++++++
 indra/newview/app_settings/keywords_lsl_tokens.xml | 16865 -------------------
 4 files changed, 16867 insertions(+), 16868 deletions(-)
 create mode 100644 indra/newview/app_settings/keywords_lsl_default.xml
 delete mode 100644 indra/newview/app_settings/keywords_lsl_tokens.xml

(limited to 'indra')

diff --git a/indra/llui/llkeywords.cpp b/indra/llui/llkeywords.cpp
index 93e8c084e9..33a8cc947d 100755
--- a/indra/llui/llkeywords.cpp
+++ b/indra/llui/llkeywords.cpp
@@ -35,7 +35,6 @@
 #include "lltexteditor.h"
 #include "llstl.h"
 
-
 inline BOOL LLKeywordToken::isHead(const llwchar* s) const
 {
 	// strncmp is much faster than string compare
@@ -71,7 +70,7 @@ inline BOOL LLKeywordToken::isTail(const llwchar* s) const
 
 LLKeywords::LLKeywords() : mLoaded(FALSE)
 {
-	setFilenameSyntax( gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS,"keywords_lsl_tokens.xml") );
+	setFilenameSyntax( gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS,"keywords_lsl_default.xml") );
 }
 
 LLKeywords::~LLKeywords()
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index b6618f2935..97243bc8b1 100755
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -1524,7 +1524,7 @@ set(viewer_APPSETTINGS_FILES
     app_settings/high_graphics.xml
     app_settings/ignorable_dialogs.xml
     app_settings/keys.xml
-    app_settings/keywords_lsl_tokens.xml
+    app_settings/keywords_lsl_default.xml
     app_settings/logcontrol.xml
     app_settings/low_graphics.xml
     app_settings/mid_graphics.xml
diff --git a/indra/newview/app_settings/keywords_lsl_default.xml b/indra/newview/app_settings/keywords_lsl_default.xml
new file mode 100644
index 0000000000..6806f80169
--- /dev/null
+++ b/indra/newview/app_settings/keywords_lsl_default.xml
@@ -0,0 +1,16865 @@
+<?xml version="1.0" encoding="utf-8"?><?xml-model href="llsd-lsl-syntax.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
+<llsd>
+   <map>
+      <key>controls</key>
+      <map>
+         <key>default</key>
+         <map>
+            <key>tooltip</key>
+            <string>All scripts must have a default state, which is the first state entered when the script starts.\nIf another state is defined before the default state, the compiler will report a syntax error.</string>
+         </map>
+         <key>do</key>
+         <map>
+            <key>tooltip</key>
+            <string>do / while loop\ndo {\n...\n} while (&lt;condition&gt;);</string>
+         </map>
+         <key>else</key>
+         <map>
+            <key>tooltip</key>
+            <string>if / else block\nif (&lt;condition&gt;) {\n...\n[} else [if (&lt;condition&gt;) {\n...]]\n}</string>
+         </map>
+         <key>for</key>
+         <map>
+            <key>tooltip</key>
+            <string>for loop\nfor (&lt;initialiser&gt;; &lt;condition&gt;; &lt;post-iteration-statement&gt;)\n{ ...\n}</string>
+         </map>
+         <key>if</key>
+         <map>
+            <key>tooltip</key>
+            <string>if / else block\nif (&lt;condition&gt;) {\n...\n[} else [if (&lt;condition&gt;) {\n...]]\n}</string>
+         </map>
+         <key>jump</key>
+         <map>
+            <key>tooltip</key>
+            <string>jump statement\njump &lt;label&gt;</string>
+         </map>
+         <key>return</key>
+         <map>
+            <key>tooltip</key>
+            <string>Leave current event or function.\nreturn [&lt;variable&gt;];\nOptionally pass back a variable's value, from a function.</string>
+         </map>
+         <key>state</key>
+         <map>
+            <key>tooltip</key>
+            <string>state &lt;target&gt;\nIf the target state is not the same as the current one, change to the target state.</string>
+         </map>
+         <key>while</key>
+         <map>
+            <key>tooltip</key>
+            <string>while loop\nwhile (&lt;condition&gt;) {\n,,,\n}</string>
+         </map>
+      </map>
+      <key>types</key>
+      <map>
+         <key>float</key>
+         <map>
+            <key>tooltip</key>
+            <string>32 bit floating point value.\nThe range is 1.175494351E-38 to 3.402823466E+38.</string>
+         </map>
+         <key>integer</key>
+         <map>
+            <key>tooltip</key>
+            <string>32 bit integer value.\n−2,147,483,648 and +2,147,483,647 (that is 0x80000000 to 0x7FFFFFFF in hex).</string>
+         </map>
+         <key>key</key>
+         <map>
+            <key>tooltip</key>
+            <string>A 128 bit unique identifier (UUID).\nThe key is represented as hexidecimal characters (A-F and 0-9), grouped into sections (8,4,4,4,12 characters) and separated by hyphens (for a total of 36 characters). e.g. "A822FF2B-FF02-461D-B45D-DCD10A2DE0C2".</string>
+         </map>
+         <key>list</key>
+         <map>
+            <key>tooltip</key>
+            <string>A collection of other data types.\nLists are signified by square brackets surrounding their elements; the elements inside are separated by commas. e.g. [0, 1, 2, 3, 4] or ["Yes", "No", "Perhaps"].</string>
+         </map>
+         <key>quaternion</key>
+         <map>
+            <key>tooltip</key>
+            <string>The quaternion type is a left over from way back when LSL was created. It was later renamed to &lt;rotation&gt; to make it more user friendly, but it appears someone forgot to remove it ;-)</string>
+         </map>
+         <key>rotation</key>
+         <map>
+            <key>tooltip</key>
+            <string>The rotation type is one of several ways to represent an orientation in 3D.\nIt is a mathematical object called a quaternion. You can think of a quaternion as four numbers (x, y, z, w), three of which represent the direction an object is facing and a fourth that represents the object's banking left or right around that direction.</string>
+         </map>
+         <key>string</key>
+         <map>
+            <key>tooltip</key>
+            <string>Text data.\nThe editor accepts UTF-8 encoded text.</string>
+         </map>
+         <key>vector</key>
+         <map>
+            <key>tooltip</key>
+            <string>A vector is a data type that contains a set of three float values.\nVectors are used to represent colours (RGB), positions, and directions/velocities.</string>
+         </map>
+      </map>
+      <key>constants</key>
+      <map>
+         <key>ACTIVE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x2</integer>
+            <key>tooltip</key>
+            <string>Objects in world that are running a script or currently physically moving.</string>
+         </map>
+         <key>AGENT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x1</integer>
+            <key>tooltip</key>
+            <string>Objects in world that are agents.</string>
+         </map>
+         <key>AGENT_ALWAYS_RUN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x1000</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>AGENT_ATTACHMENTS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x2</integer>
+            <key>tooltip</key>
+            <string>The agent has attachments.</string>
+         </map>
+         <key>AGENT_AUTOPILOT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x2000</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>AGENT_AWAY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x40</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>AGENT_BUSY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x800</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>AGENT_BY_LEGACY_NAME</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>AGENT_BY_USERNAME</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x10</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>AGENT_CROUCHING</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x400</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>AGENT_FLYING</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x1</integer>
+            <key>tooltip</key>
+            <string>The agent is flying.</string>
+         </map>
+         <key>AGENT_IN_AIR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x100</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>AGENT_LIST_PARCEL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>Agents on the same parcel where the script is running.</string>
+         </map>
+         <key>AGENT_LIST_PARCEL_OWNER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>Agents on any parcel in the region where the parcel owner is the same as the owner of the parcel under the scripted object.</string>
+         </map>
+         <key>AGENT_LIST_REGION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string>All agents in the region.</string>
+         </map>
+         <key>AGENT_MOUSELOOK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x8</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>AGENT_ON_OBJECT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x20</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>AGENT_SCRIPTED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x4</integer>
+            <key>tooltip</key>
+            <string>The agent has scripted attachments.</string>
+         </map>
+         <key>AGENT_SITTING</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x10</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>AGENT_TYPING</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x200</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>AGENT_WALKING</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x80</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>ALL_SIDES</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>ANIM_ON</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x1</integer>
+            <key>tooltip</key>
+            <string>Texture animation is on.</string>
+         </map>
+         <key>ATTACH_AVATAR_CENTER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>40</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's geometric centre.</string>
+         </map>
+         <key>ATTACH_BACK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>9</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's back.</string>
+         </map>
+         <key>ATTACH_BELLY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>28</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's belly.</string>
+         </map>
+         <key>ATTACH_CHEST</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's chest.</string>
+         </map>
+         <key>ATTACH_CHIN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>12</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's chin.</string>
+         </map>
+         <key>ATTACH_HEAD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's head.</string>
+         </map>
+         <key>ATTACH_HUD_BOTTOM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>37</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>ATTACH_HUD_BOTTOM_LEFT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>36</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>ATTACH_HUD_BOTTOM_RIGHT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>38</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>ATTACH_HUD_CENTER_1</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>35</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>ATTACH_HUD_CENTER_2</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>31</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>ATTACH_HUD_TOP_CENTER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>33</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>ATTACH_HUD_TOP_LEFT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>34</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>ATTACH_HUD_TOP_RIGHT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>32</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>ATTACH_LEAR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>13</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's left ear.</string>
+         </map>
+         <key>ATTACH_LEFT_PEC</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>29</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's left pectoral.</string>
+         </map>
+         <key>ATTACH_LEYE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>15</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's left eye.</string>
+         </map>
+         <key>ATTACH_LFOOT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>7</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's left foot.</string>
+         </map>
+         <key>ATTACH_LHAND</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's left hand.</string>
+         </map>
+         <key>ATTACH_LHIP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>25</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's left hip.</string>
+         </map>
+         <key>ATTACH_LLARM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>21</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's left lower arm.</string>
+         </map>
+         <key>ATTACH_LLLEG</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>27</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's lower left leg.</string>
+         </map>
+         <key>ATTACH_LPEC</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>30</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's right pectoral. (Deprecated, use ATTACH_RIGHT_PEC)</string>
+         </map>
+         <key>ATTACH_LSHOULDER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's left shoulder.</string>
+         </map>
+         <key>ATTACH_LUARM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>20</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's left upper arm.</string>
+         </map>
+         <key>ATTACH_LULEG</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>27</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's lower upper leg.</string>
+         </map>
+         <key>ATTACH_MOUTH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>11</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's mouth.</string>
+         </map>
+         <key>ATTACH_NECK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>39</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's neck.</string>
+         </map>
+         <key>ATTACH_NOSE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>17</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's nose.</string>
+         </map>
+         <key>ATTACH_PELVIS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>10</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's pelvis.</string>
+         </map>
+         <key>ATTACH_REAR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>14</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's right ear.</string>
+         </map>
+         <key>ATTACH_REYE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>16</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's right eye.</string>
+         </map>
+         <key>ATTACH_RFOOT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>8</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's right foot.</string>
+         </map>
+         <key>ATTACH_RHAND</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's right hand.</string>
+         </map>
+         <key>ATTACH_RHIP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>22</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's right hip.</string>
+         </map>
+         <key>ATTACH_RIGHT_PEC</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>30</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's right pectoral.</string>
+         </map>
+         <key>ATTACH_RLARM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>19</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's right lower arm.</string>
+         </map>
+         <key>ATTACH_RLLEG</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>24</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's right lower leg.</string>
+         </map>
+         <key>ATTACH_RPEC</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>29</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's left pectoral. (deprecated, use ATTACH_LEFT_PEC)</string>
+         </map>
+         <key>ATTACH_RSHOULDER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's right shoulder.</string>
+         </map>
+         <key>ATTACH_RUARM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>18</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's right upper arm.</string>
+         </map>
+         <key>ATTACH_RULEG</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>23</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's right upper leg.</string>
+         </map>
+         <key>AVOID_CHARACTERS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>AVOID_DYNAMIC_OBSTACLES</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CAMERA_ACTIVE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>12</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CAMERA_BEHINDNESS_ANGLE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>8</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CAMERA_BEHINDNESS_LAG</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>9</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CAMERA_DISTANCE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>7</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CAMERA_FOCUS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>17</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CAMERA_FOCUS_LAG</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CAMERA_FOCUS_LOCKED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>22</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CAMERA_FOCUS_OFFSET</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CAMERA_FOCUS_THRESHOLD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>11</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CAMERA_PITCH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CAMERA_POSITION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>13</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CAMERA_POSITION_LAG</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CAMERA_POSITION_LOCKED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>22</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CAMERA_POSITION_THRESHOLD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>10</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CHANGED_ALLOWED_DROP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x40</integer>
+            <key>tooltip</key>
+            <string>The object inventory has changed because an item was added through the llAllowInventoryDrop interface.</string>
+         </map>
+         <key>CHANGED_COLOR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x2</integer>
+            <key>tooltip</key>
+            <string>The object colour has changed.</string>
+         </map>
+         <key>CHANGED_INVENTORY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x1</integer>
+            <key>tooltip</key>
+            <string>The object inventory has changed.</string>
+         </map>
+         <key>CHANGED_LINK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x20</integer>
+            <key>tooltip</key>
+            <string>The object has linked or its links were broken.</string>
+         </map>
+         <key>CHANGED_MEDIA</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2048</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CHANGED_OWNER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x80</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CHANGED_REGION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x100</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CHANGED_REGION_START</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x400</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CHANGED_SCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x8</integer>
+            <key>tooltip</key>
+            <string>The object scale (size) has changed.</string>
+         </map>
+         <key>CHANGED_SHAPE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x4</integer>
+            <key>tooltip</key>
+            <string>The object base shape has changed, e.g., a box to a cylinder.</string>
+         </map>
+         <key>CHANGED_TELEPORT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x200</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CHANGED_TEXTURE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x10</integer>
+            <key>tooltip</key>
+            <string>The texture offset, scale rotation, or simply the object texture has changed.</string>
+         </map>
+         <key>CHARACTER_ACCOUNT_FOR_SKIPPED_FRAMES</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>14</integer>
+            <key>tooltip</key>
+            <string>If set to false, character will not attempt to catch up on lost time when pathfinding performance is low, potentially providing more reliable movement (albeit while potentially appearing to be more stuttery). Default is true to match pre-existing behavior.</string>
+         </map>
+         <key>CHARACTER_AVOIDANCE_MODE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string>Allows you to specify that a character should not try to avoid other characters, should not try to avoid dynamic obstacles (relatively fast moving objects and avatars), or both.</string>
+         </map>
+         <key>CHARACTER_CMD_JUMP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x01</integer>
+            <key>tooltip</key>
+            <string>Makes the character jump. Requires an additional parameter, the height to jump, between 0.1m and 2.0m. This must be provided as the first element of the llExecCharacterCmd option list.</string>
+         </map>
+         <key>CHARACTER_CMD_SMOOTH_STOP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CHARACTER_CMD_STOP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x00</integer>
+            <key>tooltip</key>
+            <string>Stops any current pathfinding operation.</string>
+         </map>
+         <key>CHARACTER_DESIRED_SPEED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>Speed of pursuit in meters per second.</string>
+         </map>
+         <key>CHARACTER_DESIRED_TURN_SPEED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>12</integer>
+            <key>tooltip</key>
+            <string>The character's maximum speed while turning about the Z axis. - Note that this is only loosely enforced.</string>
+         </map>
+         <key>CHARACTER_LENGTH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string>Set collision capsule length - cannot be less than two times the radius.</string>
+         </map>
+         <key>CHARACTER_MAX_ACCEL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>8</integer>
+            <key>tooltip</key>
+            <string>The character's maximum acceleration rate.</string>
+         </map>
+         <key>CHARACTER_MAX_DECEL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>9</integer>
+            <key>tooltip</key>
+            <string>The character's maximum deceleration rate.</string>
+         </map>
+         <key>CHARACTER_MAX_SPEED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>13</integer>
+            <key>tooltip</key>
+            <string>The character's maximum speed.</string>
+         </map>
+         <key>CHARACTER_MAX_TURN_RADIUS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>10</integer>
+            <key>tooltip</key>
+            <string>The character's turn radius when travelling at CHARACTER_MAX_TURN_SPEED.</string>
+         </map>
+         <key>CHARACTER_ORIENTATION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string>Valid options are: VERTICAL, HORIZONTAL.</string>
+         </map>
+         <key>CHARACTER_RADIUS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>Set collision capsule radius.</string>
+         </map>
+         <key>CHARACTER_TYPE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string>Specifies which walk-ability coefficient will be used by this character.</string>
+         </map>
+         <key>CHARACTER_TYPE_A</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CHARACTER_TYPE_B</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CHARACTER_TYPE_C</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CHARACTER_TYPE_D</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CHARACTER_TYPE_NONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CLICK_ACTION_BUY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>When the prim is clicked, the buy dialog is opened.</string>
+         </map>
+         <key>CLICK_ACTION_NONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string>Performs the default action: when the prim is clicked, touch events are triggered".</string>
+         </map>
+         <key>CLICK_ACTION_OPEN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string>When the prim is clicked, the object inventory dialog is opened.</string>
+         </map>
+         <key>CLICK_ACTION_OPEN_MEDIA</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string>When the prim is touched, the web media dialog is opened".</string>
+         </map>
+         <key>CLICK_ACTION_PAY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string>When the prim is clicked, the pay dialog is opened.</string>
+         </map>
+         <key>CLICK_ACTION_PLAY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string>When the prim is clicked, html-on-a-prim is enabled?</string>
+         </map>
+         <key>CLICK_ACTION_SIT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>When the prim is clicked, the avatar sits upon it.</string>
+         </map>
+         <key>CLICK_ACTION_TOUCH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string>When the prim is clicked, touch events are triggered".</string>
+         </map>
+         <key>CONTENT_TYPE_ATOM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string>"application/atom+xml"</string>
+         </map>
+         <key>CONTENT_TYPE_FORM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>7</integer>
+            <key>tooltip</key>
+            <string>"application/x-www-form-urlencoded"</string>
+         </map>
+         <key>CONTENT_TYPE_HTML</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>"text/html", only valid for embedded browsers on content owned by the person viewing. Falls back to "text/plain" otherwise.</string>
+         </map>
+         <key>CONTENT_TYPE_JSON</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string>"application/json"</string>
+         </map>
+         <key>CONTENT_TYPE_LLSD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string>"application/llsd+xml"</string>
+         </map>
+         <key>CONTENT_TYPE_RSS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>8</integer>
+            <key>tooltip</key>
+            <string>"application/rss+xml"</string>
+         </map>
+         <key>CONTENT_TYPE_TEXT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string>"text/plain"</string>
+         </map>
+         <key>CONTENT_TYPE_XHTML</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string>"application/xhtml+xml"</string>
+         </map>
+         <key>CONTENT_TYPE_XML</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>"application/xml"</string>
+         </map>
+         <key>CONTROL_BACK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x2</integer>
+            <key>tooltip</key>
+            <string>Test for the avatar move back control.</string>
+         </map>
+         <key>CONTROL_DOWN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x20</integer>
+            <key>tooltip</key>
+            <string>Test for the avatar move down control.</string>
+         </map>
+         <key>CONTROL_FWD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x1</integer>
+            <key>tooltip</key>
+            <string>Test for the avatar move forward control.</string>
+         </map>
+         <key>CONTROL_LBUTTON</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x10000000</integer>
+            <key>tooltip</key>
+            <string>Test for the avatar left button control.</string>
+         </map>
+         <key>CONTROL_LEFT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x4</integer>
+            <key>tooltip</key>
+            <string>Test for the avatar move left control.</string>
+         </map>
+         <key>CONTROL_ML_LBUTTON</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x40000000</integer>
+            <key>tooltip</key>
+            <string>Test for the avatar left button control while in mouse look.</string>
+         </map>
+         <key>CONTROL_RIGHT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x8</integer>
+            <key>tooltip</key>
+            <string>Test for the avatar move right control.</string>
+         </map>
+         <key>CONTROL_ROT_LEFT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x100</integer>
+            <key>tooltip</key>
+            <string>Test for the avatar rotate left control.</string>
+         </map>
+         <key>CONTROL_ROT_RIGHT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x200</integer>
+            <key>tooltip</key>
+            <string>Test for the avatar rotate right control.</string>
+         </map>
+         <key>CONTROL_UP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x10</integer>
+            <key>tooltip</key>
+            <string>Test for the avatar move up control.</string>
+         </map>
+         <key>DATA_BORN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string>The date the agent was born, returned in ISO 8601 format of YYYY-MM-DD.</string>
+         </map>
+         <key>DATA_NAME</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>The name of the agent.</string>
+         </map>
+         <key>DATA_ONLINE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>TRUE for online, FALSE for offline.</string>
+         </map>
+         <key>DATA_PAYINFO</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>8</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>DATA_RATING</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string>Returns the agent ratings as a comma separated string of six integers. They are:
+			1) Positive rated behaviour
+			2) Negative rated behaviour
+			3) Positive rated appearance
+			4) Negative rated appearance
+			5) Positive rated building
+			6) Negative rated building</string>
+         </map>
+         <key>DATA_SIM_POS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>DATA_SIM_RATING</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>7</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>DATA_SIM_STATUS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>DEBUG_CHANNEL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2147483647</integer>
+            <key>tooltip</key>
+            <string>DEBUG_CHANNEL is an integer constant that, when passed to llSay, llWhisper, or llShout as a channel parameter, will print text to the Script Warning/Error Window.</string>
+         </map>
+         <key>DEG_TO_RAD</key>
+         <map>
+            <key>type</key>
+            <string>float</string>
+            <key>value</key>
+            <real>0.01745329</real>
+            <key>tooltip</key>
+            <string>0.01745329 - Number of radians per degree.
+			You can use this to convert degrees to radians by multiplying the degrees by this number.</string>
+         </map>
+         <key>DENSITY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>Used with llSetPhysicsMaterial to enable the density value. Must be between 1.0 and 22587.0 (in Kg/m^3 -- see if you can figure out what 22587 represents)</string>
+         </map>
+         <key>EOF</key>
+         <map>
+            <key>type</key>
+            <string>string</string>
+            <key>value</key>
+            <string>\n\n\n</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>ERR_GENERIC</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>ERR_MALFORMED_PARAMS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-3</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>ERR_PARCEL_PERMISSIONS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>ERR_RUNTIME_PERMISSIONS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-4</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>ERR_THROTTLED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-5</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>ESTATE_ACCESS_ALLOWED_AGENT_ADD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string>Add the agent to this estate's Allowed Residents list.</string>
+         </map>
+         <key>ESTATE_ACCESS_ALLOWED_AGENT_REMOVE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>8</integer>
+            <key>tooltip</key>
+            <string>Remove the agent from this estate's Allowed Residents list.</string>
+         </map>
+         <key>ESTATE_ACCESS_ALLOWED_GROUP_ADD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>16</integer>
+            <key>tooltip</key>
+            <string>Add the group to this estate's Allowed groups list.</string>
+         </map>
+         <key>ESTATE_ACCESS_ALLOWED_GROUP_REMOVE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>32</integer>
+            <key>tooltip</key>
+            <string>Remove the group from this estate's Allowed groups list.</string>
+         </map>
+         <key>ESTATE_ACCESS_BANNED_AGENT_ADD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>64</integer>
+            <key>tooltip</key>
+            <string>Add the agent to this estate's Banned residents list.</string>
+         </map>
+         <key>ESTATE_ACCESS_BANNED_AGENT_REMOVE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>128</integer>
+            <key>tooltip</key>
+            <string>Remove the agent from this estate's Banned residents list.</string>
+         </map>
+         <key>FALSE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string>An integer constant for boolean comparisons. Has the value '0'.</string>
+         </map>
+         <key>FORCE_DIRECT_PATH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>Makes character navigate in a straight line toward position. May be set to TRUE or FALSE.</string>
+         </map>
+         <key>FRICTION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>Used with llSetPhysicsMaterial to enable the friction value. Must be between 0.0 and 255.0</string>
+         </map>
+         <key>GRAVITY_MULTIPLIER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>8</integer>
+            <key>tooltip</key>
+            <string>Used with llSetPhysicsMaterial to enable the gravity multiplier value. Must be between -1.0 and +28.0</string>
+         </map>
+         <key>HORIZONTAL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>HTTP_BODY_MAXLENGTH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>HTTP_BODY_TRUNCATED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>HTTP_CUSTOM_HEADER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string>Add an extra custom HTTP header to the request. The first string is the name of the parameter to change, e.g. "Pragma", and the second string is the value, e.g. "no-cache". Up to 8 custom headers may be configured per request. Note that certain headers, such as the default headers, are blocked for security reasons.</string>
+         </map>
+         <key>HTTP_METHOD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>HTTP_MIMETYPE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>HTTP_PRAGMA_NO_CACHE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string>Allows enabling/disbling of the "Pragma: no-cache" header.\nUsage: [HTTP_PRAGMA_NO_CACHE, integer SendHeader]. When SendHeader is TRUE, the "Pragma: no-cache" header is sent by the script. This matches the default behavior. When SendHeader is FALSE, no "Pragma" header is sent by the script.</string>
+         </map>
+         <key>HTTP_VERBOSE_THROTTLE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>HTTP_VERIFY_CERT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>INVENTORY_ALL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>INVENTORY_ANIMATION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>20</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>INVENTORY_BODYPART</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>13</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>INVENTORY_CLOTHING</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>INVENTORY_GESTURE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>21</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>INVENTORY_LANDMARK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>INVENTORY_NONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>INVENTORY_NOTECARD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>7</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>INVENTORY_OBJECT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>INVENTORY_SCRIPT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>10</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>INVENTORY_SOUND</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>INVENTORY_TEXTURE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>JSON_ARRAY</key>
+         <map>
+            <key>type</key>
+            <string>string</string>
+            <key>value</key>
+            <string>U+FDD2</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>JSON_FALSE</key>
+         <map>
+            <key>type</key>
+            <string>string</string>
+            <key>value</key>
+            <string>U+FDD7</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>JSON_INVALID</key>
+         <map>
+            <key>type</key>
+            <string>string</string>
+            <key>value</key>
+            <string>U+FDD0</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>JSON_NULL</key>
+         <map>
+            <key>type</key>
+            <string>string</string>
+            <key>value</key>
+            <string>U+FDD5</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>JSON_NUMBER</key>
+         <map>
+            <key>type</key>
+            <string>string</string>
+            <key>value</key>
+            <string>U+FDD3</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>JSON_OBJECT</key>
+         <map>
+            <key>type</key>
+            <string>string</string>
+            <key>value</key>
+            <string>U+FDD1</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>JSON_STRING</key>
+         <map>
+            <key>type</key>
+            <string>string</string>
+            <key>value</key>
+            <string>U+FDD4</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>JSON_TRUE</key>
+         <map>
+            <key>type</key>
+            <string>string</string>
+            <key>value</key>
+            <string>U+FDD6</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>KFM_CMD_PAUSE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>For use with KFM_COMMAND.</string>
+         </map>
+         <key>KFM_CMD_PLAY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string>For use with KFM_COMMAND.</string>
+         </map>
+         <key>KFM_CMD_STOP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>For use with KFM_COMMAND.</string>
+         </map>
+         <key>KFM_COMMAND</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>KFM_DATA</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>KFM_FORWARD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string>For use with KFM_MODE.</string>
+         </map>
+         <key>KFM_LOOP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>For use with KFM_MODE.</string>
+         </map>
+         <key>KFM_MODE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>KFM_PING_PONG</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>For use with KFM_MODE.</string>
+         </map>
+         <key>KFM_REVERSE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>For use with KFM_MODE.</string>
+         </map>
+         <key>KFM_ROTATION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>For use with KFM_DATA.</string>
+         </map>
+         <key>KFM_TRANSLATION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>For use with KFM_DATA.</string>
+         </map>
+         <key>LAND_LARGE_BRUSH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string>Use a large brush size.</string>
+         </map>
+         <key>LAND_LEVEL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string>Action to level the land.</string>
+         </map>
+         <key>LAND_LOWER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>Action to lower the land.</string>
+         </map>
+         <key>LAND_MEDIUM_BRUSH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>Use a medium brush size.</string>
+         </map>
+         <key>LAND_NOISE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>LAND_RAISE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>Action to raise the land.</string>
+         </map>
+         <key>LAND_REVERT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>LAND_SMALL_BRUSH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>Use a small brush size.</string>
+         </map>
+         <key>LAND_SMOOTH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>LINK_ALL_CHILDREN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-3</integer>
+            <key>tooltip</key>
+            <string>This targets every object except the root in the linked set.</string>
+         </map>
+         <key>LINK_ALL_OTHERS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-2</integer>
+            <key>tooltip</key>
+            <string>This targets every object in the linked set except the object with the script.</string>
+         </map>
+         <key>LINK_ROOT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string>This targets the root of the linked set.</string>
+         </map>
+         <key>LINK_SET</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-1</integer>
+            <key>tooltip</key>
+            <string>This targets every object in the linked set.</string>
+         </map>
+         <key>LINK_THIS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-4</integer>
+            <key>tooltip</key>
+            <string>The link number of the prim containing the script.</string>
+         </map>
+         <key>LIST_STAT_GEOMETRIC_MEAN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>9</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>LIST_STAT_MAX</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>LIST_STAT_MEAN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>LIST_STAT_MEDIAN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>LIST_STAT_MIN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>LIST_STAT_NUM_COUNT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>8</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>LIST_STAT_RANGE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>LIST_STAT_STD_DEV</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>LIST_STAT_SUM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>LIST_STAT_SUM_SQUARES</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>7</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>LOOP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x2</integer>
+            <key>tooltip</key>
+            <string>Loop the texture animation.</string>
+         </map>
+         <key>MASK_BASE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>MASK_EVERYONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>MASK_GROUP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>MASK_NEXT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>MASK_OWNER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>NULL_KEY</key>
+         <map>
+            <key>type</key>
+            <string>key</string>
+            <key>value</key>
+            <uuid>00000000-0000-0000-0000-000000000000</uuid>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>OBJECT_ATTACHED_POINT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>19</integer>
+            <key>tooltip</key>
+            <string>Gets the attachment point to which the object is attached.\nReturns 0 if the object is not an attachment (or is an avatar, etc).</string>
+         </map>
+         <key>OBJECT_CHARACTER_TIME</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>17</integer>
+            <key>tooltip</key>
+            <string>Units in seconds</string>
+         </map>
+         <key>OBJECT_CREATOR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>8</integer>
+            <key>tooltip</key>
+            <string>Gets the object's creator key. If id is an avatar, a NULL_KEY is returned.</string>
+         </map>
+         <key>OBJECT_DESC</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>Gets the object's description. If id is an avatar, an empty string is returned.</string>
+         </map>
+         <key>OBJECT_GROUP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>7</integer>
+            <key>tooltip</key>
+            <string>Gets the prims's group key. If id is an avatar, a NULL_KEY is returned.</string>
+         </map>
+         <key>OBJECT_NAME</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>Gets the object's name.</string>
+         </map>
+         <key>OBJECT_OWNER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string>Gets an object's owner's key. If id is group owned, a NULL_KEY is returned.</string>
+         </map>
+         <key>OBJECT_PATHFINDING_TYPE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>20</integer>
+            <key>tooltip</key>
+            <string>Returns the pathfinding setting of any object in the region. It returns an integer matching one of the OPT_* constants.</string>
+         </map>
+         <key>OBJECT_PHANTOM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>22</integer>
+            <key>tooltip</key>
+            <string>Returns boolean, detailing if phantom is enabled or disabled on the object.\nIf id is an avatar or attachment, 0 is returned.</string>
+         </map>
+         <key>OBJECT_PHYSICS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>21</integer>
+            <key>tooltip</key>
+            <string>Returns boolean, detailing if physics is enabled or disabled on the object.\nIf id is an avatar or attachment, 0 is returned.</string>
+         </map>
+         <key>OBJECT_PHYSICS_COST</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>16</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>OBJECT_POS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string>Gets the object's position in region coordinates.</string>
+         </map>
+         <key>OBJECT_PRIM_EQUIVALENCE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>13</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>OBJECT_ROOT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>18</integer>
+            <key>tooltip</key>
+            <string>Gets the id of the root prim of the object requested.\nIf id is an avatar, return the id of the root prim of the linkset the avatar is sitting on (or the avatar's own id if the avatar is not sitting on an object within the region).</string>
+         </map>
+         <key>OBJECT_ROT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string>Gets the object's rotation.</string>
+         </map>
+         <key>OBJECT_RUNNING_SCRIPT_COUNT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>9</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>OBJECT_SCRIPT_MEMORY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>11</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>OBJECT_SCRIPT_TIME</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>12</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>OBJECT_SERVER_COST</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>14</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>OBJECT_STREAMING_COST</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>15</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>OBJECT_TEMP_ON_REZ</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>23</integer>
+            <key>tooltip</key>
+            <string>Returns boolean, detailing if temporary is enabled or disabled on the object.</string>
+         </map>
+         <key>OBJECT_TOTAL_SCRIPT_COUNT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>10</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>OBJECT_UNKNOWN_DETAIL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>OBJECT_VELOCITY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string>Gets the object's velocity.</string>
+         </map>
+         <key>OPT_AVATAR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>Returned for avatars.</string>
+         </map>
+         <key>OPT_CHARACTER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>Returned for pathfinding characters.</string>
+         </map>
+         <key>OPT_EXCLUSION_VOLUME</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string>Returned for exclusion volumes.</string>
+         </map>
+         <key>OPT_LEGACY_LINKSET</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string>Returned for movable obstacles, movable phantoms, physical, and volumedetect objects.</string>
+         </map>
+         <key>OPT_MATERIAL_VOLUME</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string>Returned for material volumes.</string>
+         </map>
+         <key>OPT_OTHER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-1</integer>
+            <key>tooltip</key>
+            <string>Returned for attachments, Linden trees, and grass.</string>
+         </map>
+         <key>OPT_STATIC_OBSTACLE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string>Returned for static obstacles.</string>
+         </map>
+         <key>OPT_WALKABLE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string>Returned for walkable objects.</string>
+         </map>
+         <key>PARCEL_COUNT_GROUP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_COUNT_OTHER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_COUNT_OWNER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_COUNT_SELECTED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_COUNT_TEMP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_COUNT_TOTAL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_DETAILS_AREA</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string>The parcel's area, in square meters. (5 chars.).</string>
+         </map>
+         <key>PARCEL_DETAILS_DESC</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>The description of the parcel. (127 chars).</string>
+         </map>
+         <key>PARCEL_DETAILS_GROUP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string>The parcel group's key. (36 chars.).</string>
+         </map>
+         <key>PARCEL_DETAILS_ID</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string>The parcel's key. (36 chars.).</string>
+         </map>
+         <key>PARCEL_DETAILS_NAME</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string>The name of the parcel. (63 chars.).</string>
+         </map>
+         <key>PARCEL_DETAILS_OWNER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>The parcel owner's key. (36 chars.).</string>
+         </map>
+         <key>PARCEL_DETAILS_SEE_AVATARS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string>The parcel's avatar visibility setting. (1 char.).</string>
+         </map>
+         <key>PARCEL_FLAG_ALLOW_ALL_OBJECT_ENTRY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x08000000</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_FLAG_ALLOW_CREATE_GROUP_OBJECTS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x4000000</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_FLAG_ALLOW_CREATE_OBJECTS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x40</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_FLAG_ALLOW_DAMAGE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x20</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_FLAG_ALLOW_FLY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_FLAG_ALLOW_GROUP_OBJECT_ENTRY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x10000000</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_FLAG_ALLOW_GROUP_SCRIPTS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x2000000</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_FLAG_ALLOW_LANDMARK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x8</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_FLAG_ALLOW_SCRIPTS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_FLAG_ALLOW_TERRAFORM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x10</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_FLAG_LOCAL_SOUND_ONLY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x8000</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_FLAG_RESTRICT_PUSHOBJECT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x200000</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_FLAG_USE_ACCESS_GROUP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x100</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_FLAG_USE_ACCESS_LIST</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x200</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_FLAG_USE_BAN_LIST</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x400</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_FLAG_USE_LAND_PASS_LIST</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x800</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_MEDIA_COMMAND_AGENT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>7</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_MEDIA_COMMAND_AUTO_ALIGN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>9</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_MEDIA_COMMAND_DESC</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>12</integer>
+            <key>tooltip</key>
+            <string>Use this to get or set the parcel media description.</string>
+         </map>
+         <key>PARCEL_MEDIA_COMMAND_LOOP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_MEDIA_COMMAND_LOOP_SET</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>13</integer>
+            <key>tooltip</key>
+            <string>Used to get or set the parcel's media looping variable.</string>
+         </map>
+         <key>PARCEL_MEDIA_COMMAND_PAUSE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_MEDIA_COMMAND_PLAY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_MEDIA_COMMAND_SIZE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>11</integer>
+            <key>tooltip</key>
+            <string>Use this to get or set the parcel media pixel resolution.</string>
+         </map>
+         <key>PARCEL_MEDIA_COMMAND_STOP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_MEDIA_COMMAND_TEXTURE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_MEDIA_COMMAND_TIME</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_MEDIA_COMMAND_TYPE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>10</integer>
+            <key>tooltip</key>
+            <string>Use this to get or set the parcel media MIME type (e.g. "text/html").</string>
+         </map>
+         <key>PARCEL_MEDIA_COMMAND_UNLOAD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>8</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_MEDIA_COMMAND_URL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PASSIVE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x4</integer>
+            <key>tooltip</key>
+            <string>Static in-world objects.</string>
+         </map>
+         <key>PATROL_PAUSE_AT_WAYPOINTS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PAY_DEFAULT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PAY_HIDE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PAYMENT_INFO_ON_FILE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PAYMENT_INFO_USED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PERM_ALL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x7FFFFFFF</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PERM_COPY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x8000</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PERM_MODIFY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x4000</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PERM_MOVE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x80000</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PERM_TRANSFER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x2000</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PERMISSION_ATTACH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x20</integer>
+            <key>tooltip</key>
+            <string>If this permission is enabled, the object can successfully call llAttachToAvatar to attach to the given avatar.</string>
+         </map>
+         <key>PERMISSION_CHANGE_JOINTS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x100</integer>
+            <key>tooltip</key>
+            <string>(not yet implemented)</string>
+         </map>
+         <key>PERMISSION_CHANGE_LINKS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x80</integer>
+            <key>tooltip</key>
+            <string>If this permission is enabled, the object can successfully call llCreateLink, llBreakLink, and llBreakAllLinks to change links to other objects.</string>
+         </map>
+         <key>PERMISSION_CHANGE_PERMISSIONS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x200</integer>
+            <key>tooltip</key>
+            <string>(not yet implemented)</string>
+         </map>
+         <key>PERMISSION_CONTROL_CAMERA</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x800</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PERMISSION_DEBIT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x2</integer>
+            <key>tooltip</key>
+            <string>If this permission is enabled, the object can successfully call llGiveMoney or llTransferLindenDollars to debit the owners account.</string>
+         </map>
+         <key>PERMISSION_OVERRIDE_ANIMATIONS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x8000</integer>
+            <key>tooltip</key>
+            <string>Permission to override default animations.</string>
+         </map>
+         <key>PERMISSION_RELEASE_OWNERSHIP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x40</integer>
+            <key>tooltip</key>
+            <string>(not yet implemented)</string>
+         </map>
+         <key>PERMISSION_REMAP_CONTROLS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x8</integer>
+            <key>tooltip</key>
+            <string>(not yet implemented)</string>
+         </map>
+         <key>PERMISSION_TAKE_CONTROLS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x4</integer>
+            <key>tooltip</key>
+            <string>If this permission enabled, the object can successfully call the llTakeControls libray call.</string>
+         </map>
+         <key>PERMISSION_TELEPORT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x1000</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PERMISSION_TRACK_CAMERA</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x400</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PERMISSION_TRIGGER_ANIMATION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x10</integer>
+            <key>tooltip</key>
+            <string>If this permission is enabled, the object can successfully call llStartAnimation for the avatar that owns this.</string>
+         </map>
+         <key>PI</key>
+         <map>
+            <key>type</key>
+            <string>float</string>
+            <key>value</key>
+            <real>3.14159265</real>
+            <key>tooltip</key>
+            <string>3.14159265 - The number of radians in a semi-circle.</string>
+         </map>
+         <key>PI_BY_TWO</key>
+         <map>
+            <key>type</key>
+            <string>float</string>
+            <key>value</key>
+            <real>1.57079633</real>
+            <key>tooltip</key>
+            <string>1.57079633 - The number of radians in a quarter circle.</string>
+         </map>
+         <key>PING_PONG</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x8</integer>
+            <key>tooltip</key>
+            <string>Play animation going forwards, then backwards.</string>
+         </map>
+         <key>PRIM_BUMP_BARK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_BLOBS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>12</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_BRICKS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_BRIGHT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_CHECKER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_CONCRETE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>7</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_DARK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_DISKS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>10</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_GRAVEL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>11</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_LARGETILE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>14</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_NONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_SHINY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>19</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_SIDING</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>13</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_STONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>9</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_STUCCO</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>15</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_SUCTION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>16</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_TILE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>8</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_WEAVE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>17</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_WOOD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_CAST_SHADOWS</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>24</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_COLOR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>18</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_DESC</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>28</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_FLEXIBLE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>21</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_FULLBRIGHT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>20</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_GLOW</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>25</integer>
+            <key>tooltip</key>
+            <string>PRIM_GLOW is used to get or set the glow status of the face.</string>
+         </map>
+         <key>PRIM_HOLE_CIRCLE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x10</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_HOLE_DEFAULT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x00</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_HOLE_SQUARE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x20</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_HOLE_TRIANGLE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x30</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_LINK_TARGET</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>34</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_MATERIAL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_MATERIAL_FLESH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_MATERIAL_GLASS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_MATERIAL_LIGHT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>7</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_MATERIAL_METAL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_MATERIAL_PLASTIC</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_MATERIAL_RUBBER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_MATERIAL_STONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_MATERIAL_WOOD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_MEDIA_ALT_IMAGE_ENABLE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string>Boolean. Gets/Sets the default image state (the image that the user sees before a piece of media is active) for the chosen face. The default image is specified by Second Life's server for that media type.</string>
+         </map>
+         <key>PRIM_MEDIA_AUTO_LOOP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string>Boolean. Gets/Sets whether auto-looping is enabled.</string>
+         </map>
+         <key>PRIM_MEDIA_AUTO_PLAY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string>Boolean. Gets/Sets whether the media auto-plays when a Resident can view it.</string>
+         </map>
+         <key>PRIM_MEDIA_AUTO_SCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string>Boolean. Gets/Sets whether auto-scaling is enabled. Auto-scaling forces the media to the full size of the texture.</string>
+         </map>
+         <key>PRIM_MEDIA_AUTO_ZOOM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>7</integer>
+            <key>tooltip</key>
+            <string>Boolean. Gets/Sets whether clicking the media triggers auto-zoom and auto-focus on the media.</string>
+         </map>
+         <key>PRIM_MEDIA_CONTROLS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>Integer. Gets/Sets the style of controls. Can be either PRIM_MEDIA_CONTROLS_STANDARD or PRIM_MEDIA_CONTROLS_MINI.</string>
+         </map>
+         <key>PRIM_MEDIA_CONTROLS_MINI</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>Mini web navigation controls; does not include an address bar.</string>
+         </map>
+         <key>PRIM_MEDIA_CONTROLS_STANDARD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string>Standard web navigation controls.</string>
+         </map>
+         <key>PRIM_MEDIA_CURRENT_URL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>String. Gets/Sets the current url displayed on the chosen face. Changing this URL causes navigation. 1024 characters Maximum.</string>
+         </map>
+         <key>PRIM_MEDIA_FIRST_CLICK_INTERACT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>8</integer>
+            <key>tooltip</key>
+            <string>Boolean. Gets/Sets whether the first click interaction is enabled.</string>
+         </map>
+         <key>PRIM_MEDIA_HEIGHT_PIXELS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>10</integer>
+            <key>tooltip</key>
+            <string>Integer. Gets/Sets the height of the media in pixels.</string>
+         </map>
+         <key>PRIM_MEDIA_HOME_URL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string>String. Gets/Sets the home URL for the chosen face. 1024 characters maximum.</string>
+         </map>
+         <key>PRIM_MEDIA_PERM_ANYONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_MEDIA_PERM_GROUP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_MEDIA_PERM_NONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_MEDIA_PERM_OWNER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_MEDIA_PERMS_CONTROL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>14</integer>
+            <key>tooltip</key>
+            <string>Integer. Gets/Sets the permissions mask that control who can see the media control bar above the object:: PRIM_MEDIA_PERM_ANYONE, PRIM_MEDIA_PERM_GROUP, PRIM_MEDIA_PERM_NONE, PRIM_MEDIA_PERM_OWNER</string>
+         </map>
+         <key>PRIM_MEDIA_PERMS_INTERACT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>13</integer>
+            <key>tooltip</key>
+            <string>Integer. Gets/Sets the permissions mask that control who can interact with the object: PRIM_MEDIA_PERM_ANYONE, PRIM_MEDIA_PERM_GROUP, PRIM_MEDIA_PERM_NONE, PRIM_MEDIA_PERM_OWNER</string>
+         </map>
+         <key>PRIM_MEDIA_WHITELIST</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>12</integer>
+            <key>tooltip</key>
+            <string>String. Gets/Sets the white-list as a string of escaped, comma-separated URLs. This string can hold up to 64 URLs or 1024 characters, whichever comes first.</string>
+         </map>
+         <key>PRIM_MEDIA_WHITELIST_ENABLE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>11</integer>
+            <key>tooltip</key>
+            <string>Boolean. Gets/Sets whether navigation is restricted to URLs in PRIM_MEDIA_WHITELIST.</string>
+         </map>
+         <key>PRIM_MEDIA_WIDTH_PIXELS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>9</integer>
+            <key>tooltip</key>
+            <string>Integer. Gets/Sets the width of the media in pixels.</string>
+         </map>
+         <key>PRIM_NAME</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>27</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_OMEGA</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>32</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_PHANTOM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_PHYSICS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_PHYSICS_SHAPE_CONVEX</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>Use the convex hull of the prim shape for physics (this is the default for mesh objects).</string>
+         </map>
+         <key>PRIM_PHYSICS_SHAPE_NONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>Ignore this prim in the physics shape. NB: This cannot be applied to the root prim.</string>
+         </map>
+         <key>PRIM_PHYSICS_SHAPE_PRIM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string>Use the normal prim shape for physics (this is the default for all non-mesh objects).</string>
+         </map>
+         <key>PRIM_PHYSICS_SHAPE_TYPE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>30</integer>
+            <key>tooltip</key>
+            <string>Allows you to set the physics shape type of a prim via lsl. Permitted values are:
+			PRIM_PHYSICS_SHAPE_NONE, PRIM_PHYSICS_SHAPE_PRIM, PRIM_PHYSICS_SHAPE_CONVEX</string>
+         </map>
+         <key>PRIM_POINT_LIGHT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>23</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_POS_LOCAL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>33</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_POSITION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_ROT_LOCAL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>29</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_ROTATION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>8</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_SCULPT_FLAG_INVERT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>64</integer>
+            <key>tooltip</key>
+            <string>Render inside out (inverts the normals).</string>
+         </map>
+         <key>PRIM_SCULPT_FLAG_MIRROR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>128</integer>
+            <key>tooltip</key>
+            <string>Render an X axis mirror of the sculpty.</string>
+         </map>
+         <key>PRIM_SCULPT_TYPE_CYLINDER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_SCULPT_TYPE_MASK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>7</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_SCULPT_TYPE_PLANE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_SCULPT_TYPE_SPHERE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_SCULPT_TYPE_TORUS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_SHINY_HIGH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_SHINY_LOW</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_SHINY_MEDIUM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_SHINY_NONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_SIZE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>7</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_SLICE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>35</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_TEMP_ON_REZ</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_TEXGEN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>22</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_TEXGEN_DEFAULT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_TEXGEN_PLANAR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_TEXT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>26</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_TEXTURE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>17</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_TYPE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>9</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_TYPE_BOX</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_TYPE_CYLINDER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_TYPE_PRISM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_TYPE_RING</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_TYPE_SCULPT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>7</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_TYPE_SPHERE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_TYPE_TORUS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_TYPE_TUBE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PROFILE_NONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string>Disables profiling</string>
+         </map>
+         <key>PROFILE_SCRIPT_MEMORY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>Enables memory profiling</string>
+         </map>
+         <key>PSYS_PART_BOUNCE_MASK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x4</integer>
+            <key>tooltip</key>
+            <string>Particles bounce off of a plane at the objects Z height.</string>
+         </map>
+         <key>PSYS_PART_EMISSIVE_MASK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x100</integer>
+            <key>tooltip</key>
+            <string>The particle glows.</string>
+         </map>
+         <key>PSYS_PART_END_ALPHA</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string>A float which determines the ending alpha of the object.</string>
+         </map>
+         <key>PSYS_PART_END_COLOR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string>A vector &lt;r, g, b&gt; which determines the ending colour of the object.</string>
+         </map>
+         <key>PSYS_PART_END_SCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string>A vector &lt;sx, sy, z&gt;, which is the ending size of the particle billboard in meters (z is ignored).</string>
+         </map>
+         <key>PSYS_PART_FLAGS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string>Each particle that is emitted by the particle system is simulated based on the following flags. To use multiple flags, bitwise or (|) them together.</string>
+         </map>
+         <key>PSYS_PART_FOLLOW_SRC_MASK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x10</integer>
+            <key>tooltip</key>
+            <string>The particle position is relative to the source objects position.</string>
+         </map>
+         <key>PSYS_PART_FOLLOW_VELOCITY_MASK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x20</integer>
+            <key>tooltip</key>
+            <string>The particle orientation is rotated so the vertical axis faces towards the particle velocity.</string>
+         </map>
+         <key>PSYS_PART_INTERP_COLOR_MASK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x1</integer>
+            <key>tooltip</key>
+            <string>Interpolate both the colour and alpha from the start value to the end value.</string>
+         </map>
+         <key>PSYS_PART_INTERP_SCALE_MASK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x2</integer>
+            <key>tooltip</key>
+            <string>Interpolate the particle scale from the start value to the end value.</string>
+         </map>
+         <key>PSYS_PART_MAX_AGE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>19</integer>
+            <key>tooltip</key>
+            <string>Age in seconds of a particle at which it dies.</string>
+         </map>
+         <key>PSYS_PART_START_ALPHA</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>A float which determines the starting alpha of the object.</string>
+         </map>
+         <key>PSYS_PART_START_COLOR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>A vector &lt;r.r, g.g, b.b&gt; which determines the starting colour of the object.</string>
+         </map>
+         <key>PSYS_PART_START_SCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string>A vector &lt;sx, sy, z&gt;, which is the starting size of the particle billboard in meters (z is ignored).</string>
+         </map>
+         <key>PSYS_PART_TARGET_LINEAR_MASK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x80</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PSYS_PART_TARGET_POS_MASK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x40</integer>
+            <key>tooltip</key>
+            <string>The particle heads towards the location of the target object as defined by PSYS_SRC_TARGET_KEY.</string>
+         </map>
+         <key>PSYS_PART_WIND_MASK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x8</integer>
+            <key>tooltip</key>
+            <string>Particles have their velocity damped towards the wind velocity.</string>
+         </map>
+         <key>PSYS_SRC_ACCEL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>8</integer>
+            <key>tooltip</key>
+            <string>A vector &lt;x, y, z&gt; which is the acceleration to apply on particles.</string>
+         </map>
+         <key>PSYS_SRC_ANGLE_BEGIN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>22</integer>
+            <key>tooltip</key>
+            <string>Area in radians specifying where particles will NOT be created (for ANGLE patterns)</string>
+         </map>
+         <key>PSYS_SRC_ANGLE_END</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>23</integer>
+            <key>tooltip</key>
+            <string>Area in radians filled with particles (for ANGLE patterns) (if lower than PSYS_SRC_ANGLE_BEGIN, acts as PSYS_SRC_ANGLE_BEGIN itself, and PSYS_SRC_ANGLE_BEGIN acts as PSYS_SRC_ANGLE_END).</string>
+         </map>
+         <key>PSYS_SRC_BURST_PART_COUNT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>15</integer>
+            <key>tooltip</key>
+            <string>How many particles to release in a burst.</string>
+         </map>
+         <key>PSYS_SRC_BURST_RADIUS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>16</integer>
+            <key>tooltip</key>
+            <string>What distance from the center of the object to create the particles.</string>
+         </map>
+         <key>PSYS_SRC_BURST_RATE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>13</integer>
+            <key>tooltip</key>
+            <string>How often to release a particle burst (float seconds).</string>
+         </map>
+         <key>PSYS_SRC_BURST_SPEED_MAX</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>18</integer>
+            <key>tooltip</key>
+            <string>Maximum speed that a particle should be moving.</string>
+         </map>
+         <key>PSYS_SRC_BURST_SPEED_MIN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>17</integer>
+            <key>tooltip</key>
+            <string>Minimum speed that a particle should be moving.</string>
+         </map>
+         <key>PSYS_SRC_INNERANGLE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>10</integer>
+            <key>tooltip</key>
+            <string>Specifies the inner angle of the arc created by the PSYS_SRC_PATTERN_ANGLE or PSYS_SRC_PATTERN_ANGLE_CONE source pattern.
+			The area specified will NOT have particles in it.</string>
+         </map>
+         <key>PSYS_SRC_MAX_AGE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>19</integer>
+            <key>tooltip</key>
+            <string>How long this particle system should last, 0.0 means forever.</string>
+         </map>
+         <key>PSYS_SRC_OMEGA</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>21</integer>
+            <key>tooltip</key>
+            <string>Sets the angular velocity to rotate the axis that SRC_PATTERN_ANGLE and SRC_PATTERN_ANGLE_CONE use.</string>
+         </map>
+         <key>PSYS_SRC_OUTERANGLE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>11</integer>
+            <key>tooltip</key>
+            <string>Specifies the outer angle of the arc created by the PSYS_SRC_PATTERN_ANGLE or PSYS_SRC_PATTERN_ANGLE_CONE source pattern.
+			The area between the outer and inner angle will be filled with particles.</string>
+         </map>
+         <key>PSYS_SRC_PATTERN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>9</integer>
+            <key>tooltip</key>
+            <string>The pattern which is used to generate particles.
+			Use one of the following values: PSYS_SRC_PATTERN Values.</string>
+         </map>
+         <key>PSYS_SRC_PATTERN_ANGLE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x04</integer>
+            <key>tooltip</key>
+            <string>Shoot particles across a 2 dimensional area defined by the arc created from PSYS_SRC_OUTERANGLE. There will be an open area defined by PSYS_SRC_INNERANGLE within the larger arc.</string>
+         </map>
+         <key>PSYS_SRC_PATTERN_ANGLE_CONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x08</integer>
+            <key>tooltip</key>
+            <string>Shoot particles out in a 3 dimensional cone with an outer arc of PSYS_SRC_OUTERANGLE and an inner open area defined by PSYS_SRC_INNERANGLE.</string>
+         </map>
+         <key>PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x10</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PSYS_SRC_PATTERN_DROP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x01</integer>
+            <key>tooltip</key>
+            <string>Drop particles at the source position.</string>
+         </map>
+         <key>PSYS_SRC_PATTERN_EXPLODE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x02</integer>
+            <key>tooltip</key>
+            <string>Shoot particles out in all directions, using the burst parameters.</string>
+         </map>
+         <key>PSYS_SRC_TARGET_KEY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>20</integer>
+            <key>tooltip</key>
+            <string>The key of a target object to move towards if PSYS_PART_TARGET_POS_MASK is enabled.</string>
+         </map>
+         <key>PSYS_SRC_TEXTURE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>12</integer>
+            <key>tooltip</key>
+            <string>An asset name for the texture to use for the particles.</string>
+         </map>
+         <key>PU_EVADE_HIDDEN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x07</integer>
+            <key>tooltip</key>
+            <string>Triggered when an llEvade character thinks it has hidden from its pursuer.</string>
+         </map>
+         <key>PU_EVADE_SPOTTED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x08</integer>
+            <key>tooltip</key>
+            <string>Triggered when an llEvade character switches from hiding to running</string>
+         </map>
+         <key>PU_FAILURE_INVALID_GOAL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x03</integer>
+            <key>tooltip</key>
+            <string>Goal is not on the navigation-mesh and cannot be reached.</string>
+         </map>
+         <key>PU_FAILURE_INVALID_START</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x02</integer>
+            <key>tooltip</key>
+            <string>Character cannot navigate from the current location - e.g., the character is off the navmesh or too high above it.</string>
+         </map>
+         <key>PU_FAILURE_NO_NAVMESH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x09</integer>
+            <key>tooltip</key>
+            <string>This is a fatal error reported to a character when there is no navmesh for the region. This usually indicates a server failure and users should file a bug report and include the time and region in which they received this message.</string>
+         </map>
+         <key>PU_FAILURE_NO_VALID_DESTINATION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x06</integer>
+            <key>tooltip</key>
+            <string>There is no good place for the character to go - e.g., it is patrolling and all the patrol points are now unreachable.</string>
+         </map>
+         <key>PU_FAILURE_OTHER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1000000</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PU_FAILURE_TARGET_GONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x05</integer>
+            <key>tooltip</key>
+            <string>Target (for llPursue or llEvade) can no longer be tracked - e.g., it left the region or is an avatar that is now more than about 30m outside the region.</string>
+         </map>
+         <key>PU_FAILURE_UNREACHABLE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x04</integer>
+            <key>tooltip</key>
+            <string>Goal is no longer reachable for some reason - e.g., an obstacle blocks the path.</string>
+         </map>
+         <key>PU_GOAL_REACHED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x01</integer>
+            <key>tooltip</key>
+            <string>Character has reached the goal and will stop or choose a new goal (if wandering).</string>
+         </map>
+         <key>PU_SLOWDOWN_DISTANCE_REACHED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x00</integer>
+            <key>tooltip</key>
+            <string>Character is near current goal.</string>
+         </map>
+         <key>PUBLIC_CHANNEL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string>PUBLIC_CHANNEL is an integer constant that, when passed to llSay, llWhisper, or llShout as a channel parameter, will print text to the publicly heard chat channel.</string>
+         </map>
+         <key>PURSUIT_FUZZ_FACTOR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string>Selects a random destination near the offset.</string>
+         </map>
+         <key>PURSUIT_GOAL_TOLERANCE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PURSUIT_INTERCEPT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string>Define whether the character attempts to predict the target's location.</string>
+         </map>
+         <key>PURSUIT_OFFSET</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>Go to a position offset from the target.</string>
+         </map>
+         <key>RAD_TO_DEG</key>
+         <map>
+            <key>type</key>
+            <string>float</string>
+            <key>value</key>
+            <real>57.2957795</real>
+            <key>tooltip</key>
+            <string>57.2957795 - Number of degrees per radian. You can use this number to convert radians to degrees by multiplying the radians by this number.</string>
+         </map>
+         <key>RC_DATA_FLAGS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>RC_DETECT_PHANTOM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>RC_GET_LINK_NUM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>RC_GET_NORMAL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>RC_GET_ROOT_KEY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>RC_MAX_HITS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>RC_REJECT_AGENTS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>RC_REJECT_LAND</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>8</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>RC_REJECT_NONPHYSICAL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>RC_REJECT_PHYSICAL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>RC_REJECT_TYPES</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>RCERR_CAST_TIME_EXCEEDED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-3</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>RCERR_SIM_PERF_LOW</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>RCERR_UNKNOWN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>REGION_FLAG_ALLOW_DAMAGE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>REGION_FLAG_ALLOW_DIRECT_TELEPORT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x100000</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>REGION_FLAG_BLOCK_FLY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x80000</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>REGION_FLAG_BLOCK_TERRAFORM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x40</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>REGION_FLAG_DISABLE_COLLISIONS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x1000</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>REGION_FLAG_DISABLE_PHYSICS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x4000</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>REGION_FLAG_FIXED_SUN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x10</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>REGION_FLAG_RESTRICT_PUSHOBJECT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x400000</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>REGION_FLAG_SANDBOX</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x100</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>REMOTE_DATA_CHANNEL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>REMOTE_DATA_REPLY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>REMOTE_DATA_REQUEST</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>REQUIRE_LINE_OF_SIGHT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>Define whether the character needs a line-of-sight to give chase.</string>
+         </map>
+         <key>RESTITUTION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string>Used with llSetPhysicsMaterial to enable the density value. Must be between 0.0 and 1.0</string>
+         </map>
+         <key>REVERSE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x4</integer>
+            <key>tooltip</key>
+            <string>Play animation in reverse direction.</string>
+         </map>
+         <key>ROTATE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x20</integer>
+            <key>tooltip</key>
+            <string>Animate texture rotation.</string>
+         </map>
+         <key>SCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x40</integer>
+            <key>tooltip</key>
+            <string>Animate the texture scale.</string>
+         </map>
+         <key>SCRIPTED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x8</integer>
+            <key>tooltip</key>
+            <string>Scripted in-world objects.</string>
+         </map>
+         <key>SIM_STAT_PCT_CHARS_STEPPED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string>Returns the % of pathfinding characters skipped each frame, averaged over the last minute.\nThe returned value corresponds to the "Characters Updated" stat in the viewer's Statistics Bar.</string>
+         </map>
+         <key>SMOOTH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x10</integer>
+            <key>tooltip</key>
+            <string>Slide in the X direction, instead of playing separate frames.</string>
+         </map>
+         <key>SQRT2</key>
+         <map>
+            <key>type</key>
+            <string>float</string>
+            <key>value</key>
+            <real>1.41421356</real>
+            <key>tooltip</key>
+            <string>1.41421356 - The square root of 2.</string>
+         </map>
+         <key>STATUS_BLOCK_GRAB</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>64</integer>
+            <key>tooltip</key>
+            <string>Controls whether the object can be grabbed.\nA grab is the default action when in third person, and is available as the hand tool in build mode. This is useful for physical objects that you don't want other people to be able to trivially disturb. The default is FALSE</string>
+         </map>
+         <key>STATUS_BLOCK_GRAB_OBJECT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1024</integer>
+            <key>tooltip</key>
+            <string>Prevent click-and-drag movement on all prims in the object.</string>
+         </map>
+         <key>STATUS_BOUNDS_ERROR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1002</integer>
+            <key>tooltip</key>
+            <string>Argument(s) passed to function had a bounds error.</string>
+         </map>
+         <key>STATUS_CAST_SHADOWS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x200</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>STATUS_DIE_AT_EDGE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x80</integer>
+            <key>tooltip</key>
+            <string>Controls whether the object is returned to the owners inventory if it wanders off the edge of the world.\nIt is useful to set this status TRUE for things like bullets or rockets. The default is TRUE</string>
+         </map>
+         <key>STATUS_INTERNAL_ERROR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1999</integer>
+            <key>tooltip</key>
+            <string>An internal error occurred.</string>
+         </map>
+         <key>STATUS_MALFORMED_PARAMS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1000</integer>
+            <key>tooltip</key>
+            <string>Function was called with malformed parameters.</string>
+         </map>
+         <key>STATUS_NOT_FOUND</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1003</integer>
+            <key>tooltip</key>
+            <string>Object or other item was not found.</string>
+         </map>
+         <key>STATUS_NOT_SUPPORTED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1004</integer>
+            <key>tooltip</key>
+            <string>Feature not supported.</string>
+         </map>
+         <key>STATUS_OK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string>Result of function call was a success.</string>
+         </map>
+         <key>STATUS_PHANTOM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x10</integer>
+            <key>tooltip</key>
+            <string>Controls/indicates whether the object collides or not.\nSetting the value to TRUE makes the object non-colliding with all objects. It is a good idea to use this for most objects that move or rotate, but are non-physical. It is also useful for simulating volumetric lighting. The default is FALSE.</string>
+         </map>
+         <key>STATUS_PHYSICS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x1</integer>
+            <key>tooltip</key>
+            <string>Controls/indicates whether the object moves physically.\nThis controls the same flag that the UI check-box for Physical controls. The default is FALSE.</string>
+         </map>
+         <key>STATUS_RETURN_AT_EDGE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x100</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>STATUS_ROTATE_X</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>STATUS_ROTATE_Y</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x4</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>STATUS_ROTATE_Z</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x8</integer>
+            <key>tooltip</key>
+            <string>Controls/indicates whether the object can physically rotate around
+			the specific axis or not. This flag has no meaning
+			for non-physical objects. Set the value to FALSE
+			if you want to disable rotation around that axis. The
+			default is TRUE for a physical object.
+			A useful example to think about when visualizing
+			the effect is a sit-and-spin device. They spin around the
+			Z axis (up) but not around the X or Y axis.</string>
+         </map>
+         <key>STATUS_SANDBOX</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x20</integer>
+            <key>tooltip</key>
+            <string>Controls/indicates whether the object can cross region boundaries
+			and move more than 20 meters from its creation
+			point. The default if FALSE.</string>
+         </map>
+         <key>STATUS_TYPE_MISMATCH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1001</integer>
+            <key>tooltip</key>
+            <string>Argument(s) passed to function had a type mismatch.</string>
+         </map>
+         <key>STATUS_WHITELIST_FAILED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2001</integer>
+            <key>tooltip</key>
+            <string>Whitelist Failed.</string>
+         </map>
+         <key>STRING_TRIM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x03</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>STRING_TRIM_HEAD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x01</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>STRING_TRIM_TAIL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x02</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>TEXTURE_BLANK</key>
+         <map>
+            <key>type</key>
+            <string>key</string>
+            <key>value</key>
+            <uuid>5748decc-f629-461c-9a36-a35a221fe21f</uuid>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>TEXTURE_DEFAULT</key>
+         <map>
+            <key>type</key>
+            <string>key</string>
+            <key>value</key>
+            <uuid>89556747-24cb-43ed-920b-47caed15465f</uuid>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>TEXTURE_MEDIA</key>
+         <map>
+            <key>type</key>
+            <string>key</string>
+            <key>value</key>
+            <uuid>8b5fec65-8d8d-9dc5-cda8-8fdf2716e361</uuid>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>TEXTURE_PLYWOOD</key>
+         <map>
+            <key>type</key>
+            <string>key</string>
+            <key>value</key>
+            <uuid>89556747-24cb-43ed-920b-47caed15465f</uuid>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>TEXTURE_TRANSPARENT</key>
+         <map>
+            <key>type</key>
+            <string>key</string>
+            <key>value</key>
+            <uuid>8dcd4a48-2d37-4909-9f78-f7a9eb4ef903</uuid>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>TOUCH_INVALID_FACE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0xFFFFFFFF</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>TOUCH_INVALID_TEXCOORD</key>
+         <map>
+            <key>type</key>
+            <string>vector</string>
+            <key>value</key>
+            <map>
+               <key>x</key>
+               <real>-1.0</real>
+               <key>y</key>
+               <real>-1.0</real>
+               <key>z</key>
+               <real>0.0</real>
+            </map>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>TOUCH_INVALID_VECTOR</key>
+         <map>
+            <key>type</key>
+            <string>vector</string>
+            <key>value</key>
+            <map>
+               <key>x</key>
+               <real>0.0</real>
+               <key>y</key>
+               <real>0.0</real>
+               <key>z</key>
+               <real>0.0</real>
+            </map>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>TRAVERSAL_TYPE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>7</integer>
+            <key>tooltip</key>
+            <string>One of TRAVERSAL_TYPE_FAST, TRAVERSAL_TYPE_SLOW, and TRAVERSAL_TYPE_NONE.</string>
+         </map>
+         <key>TRAVERSAL_TYPE_FAST</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>TRAVERSAL_TYPE_NONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>TRAVERSAL_TYPE_SLOW</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>TRUE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>An integer constant for boolean comparisons. Has the value '1'.</string>
+         </map>
+         <key>TWO_PI</key>
+         <map>
+            <key>type</key>
+            <string>float</string>
+            <key>value</key>
+            <real>6.28318530</real>
+            <key>tooltip</key>
+            <string>6.28318530 - The radians of a circle.</string>
+         </map>
+         <key>TYPE_FLOAT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>The list entry is a float.</string>
+         </map>
+         <key>TYPE_INTEGER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>The list entry is an integer.</string>
+         </map>
+         <key>TYPE_INVALID</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string>The list entry is invalid.</string>
+         </map>
+         <key>TYPE_KEY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string>The list entry is a key.</string>
+         </map>
+         <key>TYPE_ROTATION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string>The list entry is a rotation.</string>
+         </map>
+         <key>TYPE_STRING</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string>The list entry is a string.</string>
+         </map>
+         <key>TYPE_VECTOR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string>The list entry is a vector.</string>
+         </map>
+         <key>URL_REQUEST_DENIED</key>
+         <map>
+            <key>type</key>
+            <string>string</string>
+            <key>value</key>
+            <string>URL_REQUEST_DENIED</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>URL_REQUEST_GRANTED</key>
+         <map>
+            <key>type</key>
+            <string>string</string>
+            <key>value</key>
+            <string>URL_REQUEST_GRANTED</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>32</integer>
+            <key>tooltip</key>
+            <string>A slider between minimum (0.0) and maximum (1.0) deflection of angular orientation. That is, its a simple scalar for modulating the strength of angular deflection such that the vehicles preferred axis of motion points toward its real velocity.</string>
+         </map>
+         <key>VEHICLE_ANGULAR_DEFLECTION_TIMESCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>33</integer>
+            <key>tooltip</key>
+            <string>The time-scale for exponential success of linear deflection deflection. Its another way to specify the strength of the vehicles tendency to reorient itself so that its preferred axis of motion agrees with its true velocity.</string>
+         </map>
+         <key>VEHICLE_ANGULAR_FRICTION_TIMESCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>17</integer>
+            <key>tooltip</key>
+            <string>A vector of timescales for exponential decay of the vehicles angular velocity about its preferred axes of motion (at, left, up).
+			Range = [0.07, inf) seconds for each element of the vector.</string>
+         </map>
+         <key>VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>35</integer>
+            <key>tooltip</key>
+            <string>The timescale for exponential decay of the angular motors magnitude.</string>
+         </map>
+         <key>VEHICLE_ANGULAR_MOTOR_DIRECTION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>19</integer>
+            <key>tooltip</key>
+            <string>The direction and magnitude (in preferred frame) of the vehicles angular motor.The vehicle will accelerate (or decelerate if necessary) to match its velocity to its motor.</string>
+         </map>
+         <key>VEHICLE_ANGULAR_MOTOR_TIMESCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>34</integer>
+            <key>tooltip</key>
+            <string>The timescale for exponential approach to full angular motor velocity.</string>
+         </map>
+         <key>VEHICLE_BANKING_EFFICIENCY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>38</integer>
+            <key>tooltip</key>
+            <string>A slider between anti (-1.0), none (0.0), and maxmum (1.0) banking strength.</string>
+         </map>
+         <key>VEHICLE_BANKING_MIX</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>39</integer>
+            <key>tooltip</key>
+            <string>A slider between static (0.0) and dynamic (1.0) banking. "Static" means the banking scales only with the angle of roll, whereas "dynamic" is a term that also scales with the vehicles linear speed.</string>
+         </map>
+         <key>VEHICLE_BANKING_TIMESCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>40</integer>
+            <key>tooltip</key>
+            <string>The timescale for banking to exponentially approach its maximum effect. This is another way to scale the strength of the banking effect, however it affects the term that is proportional to the difference between what the banking behavior is trying to do, and what the vehicle is actually doing.</string>
+         </map>
+         <key>VEHICLE_BUOYANCY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>27</integer>
+            <key>tooltip</key>
+            <string>A slider between minimum (0.0) and maximum anti-gravity (1.0).</string>
+         </map>
+         <key>VEHICLE_FLAG_CAMERA_DECOUPLED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x200</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x10</integer>
+            <key>tooltip</key>
+            <string>Hover at global height.</string>
+         </map>
+         <key>VEHICLE_FLAG_HOVER_TERRAIN_ONLY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x8</integer>
+            <key>tooltip</key>
+            <string>Ignore water height when hovering.</string>
+         </map>
+         <key>VEHICLE_FLAG_HOVER_UP_ONLY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x20</integer>
+            <key>tooltip</key>
+            <string>Hover does not push down. Use this flag for hovering vehicles that should be able to jump above their hover height.</string>
+         </map>
+         <key>VEHICLE_FLAG_HOVER_WATER_ONLY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x4</integer>
+            <key>tooltip</key>
+            <string>Ignore terrain height when hovering.</string>
+         </map>
+         <key>VEHICLE_FLAG_LIMIT_MOTOR_UP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x40</integer>
+            <key>tooltip</key>
+            <string>Prevents ground vehicles from motoring into the sky.</string>
+         </map>
+         <key>VEHICLE_FLAG_LIMIT_ROLL_ONLY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x2</integer>
+            <key>tooltip</key>
+            <string>For vehicles with vertical attractor that want to be able to climb/dive, for instance, aeroplanes that want to use the banking feature.</string>
+         </map>
+         <key>VEHICLE_FLAG_MOUSELOOK_BANK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x100</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>VEHICLE_FLAG_MOUSELOOK_STEER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x80</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>VEHICLE_FLAG_NO_DEFLECTION_UP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x1</integer>
+            <key>tooltip</key>
+            <string>This flag prevents linear deflection parallel to world z-axis. This is useful for preventing ground vehicles with large linear deflection, like bumper cars, from climbing their linear deflection into the sky.</string>
+         </map>
+         <key>VEHICLE_FLAG_NO_FLY_UP</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0x1</integer>
+            <key>tooltip</key>
+            <string>Old, changed to VEHICLE_FLAG_NO_DEFLECTION_UP</string>
+         </map>
+         <key>VEHICLE_HOVER_EFFICIENCY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>25</integer>
+            <key>tooltip</key>
+            <string>A slider between minimum (0.0 = bouncy) and maximum (1.0 = fast as possible) damped motion of the hover behavior. </string>
+         </map>
+         <key>VEHICLE_HOVER_HEIGHT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>24</integer>
+            <key>tooltip</key>
+            <string>The height (above the terrain or water, or global) at which the vehicle will try to hover.</string>
+         </map>
+         <key>VEHICLE_HOVER_TIMESCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>26</integer>
+            <key>tooltip</key>
+            <string>Period of time (in seconds) for the vehicle to achieve its hover height.</string>
+         </map>
+         <key>VEHICLE_LINEAR_DEFLECTION_EFFICIENCY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>28</integer>
+            <key>tooltip</key>
+            <string>A slider between minimum (0.0) and maximum (1.0) deflection of linear velocity. That is, its a simple scalar for modulating the strength of linear deflection.</string>
+         </map>
+         <key>VEHICLE_LINEAR_DEFLECTION_TIMESCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>29</integer>
+            <key>tooltip</key>
+            <string>The timescale for exponential success of linear deflection deflection. It is another way to specify how much time it takes for the vehicles linear velocity to be redirected to its preferred axis of motion.</string>
+         </map>
+         <key>VEHICLE_LINEAR_FRICTION_TIMESCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>16</integer>
+            <key>tooltip</key>
+            <string>A vector of timescales for exponential decay of the vehicles linear velocity along its preferred axes of motion (at, left, up).
+			Range = [0.07, inf) seconds for each element of the vector.</string>
+         </map>
+         <key>VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>35</integer>
+            <key>tooltip</key>
+            <string>The timescale for exponential decay of the linear motors magnitude.</string>
+         </map>
+         <key>VEHICLE_LINEAR_MOTOR_DIRECTION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>18</integer>
+            <key>tooltip</key>
+            <string>The direction and magnitude (in preferred frame) of the vehicles linear motor. The vehicle will accelerate (or decelerate if necessary) to match its velocity to its motor.
+			Range of magnitude = [0, 30] meters/second.</string>
+         </map>
+         <key>VEHICLE_LINEAR_MOTOR_OFFSET</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>20</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>VEHICLE_LINEAR_MOTOR_TIMESCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>30</integer>
+            <key>tooltip</key>
+            <string>The timescale for exponential approach to full linear motor velocity.</string>
+         </map>
+         <key>VEHICLE_REFERENCE_FRAME</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>44</integer>
+            <key>tooltip</key>
+            <string>A rotation of the vehicles preferred axes of motion and orientation (at, left, up) with respect to the vehicles local frame (x, y, z).</string>
+         </map>
+         <key>VEHICLE_TYPE_AIRPLANE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string>Uses linear deflection for lift, no hover, and banking to turn.
+			// very little friction along forward-back axis
+			llSetVehicleVectorParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, &lt;200, 10, 5&gt; );
+			// uniform angular friction
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_FRICTION_TIMESCALE, 20 );
+			// linear motor
+			llSetVehicleVectorParam( VEHICLE_LINEAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
+			llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_TIMESCALE, 2 );
+			llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 60 );
+			// angular motor
+			llSetVehicleVectorParam( VEHICLE_ANGULAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_TIMESCALE, 4 );
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 8 );
+			// no hover
+			llSetVehicleFloatParam( VEHICLE_HOVER_HEIGHT, 0 );
+			llSetVehicleFloatParam( VEHICLE_HOVER_EFFICIENCY, 0.5 );
+			llSetVehicleFloatParam( VEHICLE_HOVER_TIMESCALE, 1000 );
+			llSetVehicleFloatParam( VEHICLE_BUOYANCY, 0 );
+			// linear deflection
+			llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 0.5 );
+			llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 0.5 );
+			// angular deflection
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 1.0 );
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 2.0 );
+			// vertical attractor
+			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 0.9 );
+			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 2 );
+			// banking
+			llSetVehicleFloatParam( VEHICLE_BANKING_EFFICIENCY, 1 );
+			llSetVehicleFloatParam( VEHICLE_BANKING_MIX, 0.7 );
+			llSetVehicleFloatParam( VEHICLE_BANKING_TIMESCALE, 2 );
+			// default rotation of local frame
+			llSetVehicleRotationParam( VEHICLE_REFERENCE_FRAME, &lt;0, 0, 0, 1&gt; );
+			// remove these flags
+			llRemoveVehicleFlags( VEHICLE_FLAG_NO_DEFLECTION_UP
+			| VEHICLE_FLAG_HOVER_WATER_ONLY
+			| VEHICLE_FLAG_HOVER_TERRAIN_ONLY
+			| VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT
+			| VEHICLE_FLAG_HOVER_UP_ONLY
+			| VEHICLE_FLAG_LIMIT_MOTOR_UP );
+			// set these flags
+			llSetVehicleFlags( VEHICLE_FLAG_LIMIT_ROLL_ONLY );</string>
+         </map>
+         <key>VEHICLE_TYPE_BALLOON</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string>Hover, and friction, but no deflection.
+			// uniform linear friction
+			llSetVehicleFloatParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, 5 );
+			// uniform angular friction
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_FRICTION_TIMESCALE, 10 );
+			// linear motor
+			llSetVehicleVectorParam( VEHICLE_LINEAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
+			llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_TIMESCALE, 5 );
+			llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 60 );
+			// angular motor
+			llSetVehicleVectorParam( VEHICLE_ANGULAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_TIMESCALE, 6 );
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 10 );
+			// hover
+			llSetVehicleFloatParam( VEHICLE_HOVER_HEIGHT, 5 );
+			llSetVehicleFloatParam( VEHICLE_HOVER_EFFICIENCY, 0.8 );
+			llSetVehicleFloatParam( VEHICLE_HOVER_TIMESCALE, 10 );
+			llSetVehicleFloatParam( VEHICLE_BUOYANCY, 1 );
+			// no linear deflection
+			llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 0 );
+			llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 5 );
+			// no angular deflection
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 0 );
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 5 );
+			// no vertical attractor
+			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 1 );
+			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 1000 );
+			// no banking
+			llSetVehicleFloatParam( VEHICLE_BANKING_EFFICIENCY, 0 );
+			llSetVehicleFloatParam( VEHICLE_BANKING_MIX, 0.7 );
+			llSetVehicleFloatParam( VEHICLE_BANKING_TIMESCALE, 5 );
+			// default rotation of local frame
+			llSetVehicleRotationParam( VEHICLE_REFERENCE_FRAME, &lt;0, 0, 0, 1&gt; );
+			// remove all flags
+			llRemoveVehicleFlags( VEHICLE_FLAG_NO_DEFLECTION_UP
+			| VEHICLE_FLAG_HOVER_WATER_ONLY
+			| VEHICLE_FLAG_LIMIT_ROLL_ONLY
+			| VEHICLE_FLAG_HOVER_TERRAIN_ONLY
+			| VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT
+			| VEHICLE_FLAG_HOVER_UP_ONLY
+			| VEHICLE_FLAG_LIMIT_MOTOR_UP );</string>
+         </map>
+         <key>VEHICLE_TYPE_BOAT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string>Hovers over water with lots of friction and some anglar deflection.
+			// least for forward-back, most friction for up-down
+			llSetVehicleVectorParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, &lt;10, 3, 2&gt; );
+			// uniform angular friction (setting it as a scalar rather than a vector)
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_FRICTION_TIMESCALE, 10 );
+			// linear motor wins after about five seconds, decays after about a minute
+			llSetVehicleVectorParam( VEHICLE_LINEAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
+			llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_TIMESCALE, 5 );
+			llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 60 );
+			// angular motor wins after four seconds, decays in same amount of time
+			llSetVehicleVectorParam( VEHICLE_ANGULAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_TIMESCALE, 4 );
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 4 );
+			// hover
+			llSetVehicleFloatParam( VEHICLE_HOVER_HEIGHT, 0 );
+			llSetVehicleFloatParam( VEHICLE_HOVER_EFFICIENCY, 0.5 );
+			llSetVehicleFloatParam( VEHICLE_HOVER_TIMESCALE, 2.0 );
+			llSetVehicleFloatParam( VEHICLE_BUOYANCY, 1 );
+			// halfway linear deflection with timescale of 3 seconds
+			llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 0.5 );
+			llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 3 );
+			// angular deflection
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 0.5 );
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 5 );
+			// somewhat bounscy vertical attractor
+			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 0.5 );
+			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 5 );
+			// weak negative damped banking
+			llSetVehicleFloatParam( VEHICLE_BANKING_EFFICIENCY, -0.3 );
+			llSetVehicleFloatParam( VEHICLE_BANKING_MIX, 0.8 );
+			llSetVehicleFloatParam( VEHICLE_BANKING_TIMESCALE, 1 );
+			// default rotation of local frame
+			llSetVehicleRotationParam( VEHICLE_REFERENCE_FRAME, &lt;0, 0, 0, 1&gt; );
+			// remove these flags
+			llRemoveVehicleFlags( VEHICLE_FLAG_HOVER_TERRAIN_ONLY
+			| VEHICLE_FLAG_LIMIT_ROLL_ONLY
+			| VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT);
+			// set these flags
+			llSetVehicleFlags( VEHICLE_FLAG_NO_DEFLECTION_UP
+			| VEHICLE_FLAG_HOVER_WATER_ONLY
+			| VEHICLE_FLAG_HOVER_UP_ONLY
+			| VEHICLE_FLAG_LIMIT_MOTOR_UP );</string>
+         </map>
+         <key>VEHICLE_TYPE_CAR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>Another vehicle that bounces along the ground but needs
+			the motors to be driven from external controls or
+			timer events.
+			// most friction for left-right, least for up-down
+			llSetVehicleVectorParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, &lt;100, 2, 1000&gt; );
+			// no angular friction
+			llSetVehicleVectorParam( VEHICLE_ANGULAR_FRICTION_TIMESCALE, &lt;1000, 1000, 1000&gt; );
+			// linear motor wins after about a second, decays after about a minute
+			llSetVehicleVectorParam( VEHICLE_LINEAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
+			llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_TIMESCALE, 1 );
+			llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 60 );
+			// angular motor wins after a second, decays in less time than that
+			llSetVehicleVectorParam( VEHICLE_ANGULAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_TIMESCALE, 1 );
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 0.8 );
+			// no hover
+			llSetVehicleFloatParam( VEHICLE_HOVER_HEIGHT, 0 );
+			llSetVehicleFloatParam( VEHICLE_HOVER_EFFICIENCY, 0 );
+			llSetVehicleFloatParam( VEHICLE_HOVER_TIMESCALE, 1000 );
+			llSetVehicleFloatParam( VEHICLE_BUOYANCY, 0 );
+			// maximum linear deflection with timescale of 2 seconds
+			llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 1 );
+			llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 2 );
+			// no angular deflection
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 0 );
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 10 );
+			// critically damped vertical attractor
+			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 1 );
+			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 10 );
+			// weak negative critically damped banking
+			llSetVehicleFloatParam( VEHICLE_BANKING_EFFICIENCY, -0.2 );
+			llSetVehicleFloatParam( VEHICLE_BANKING_MIX, 1 );
+			llSetVehicleFloatParam( VEHICLE_BANKING_TIMESCALE, 1 );
+			// default rotation of local frame
+			llSetVehicleRotationParam( VEHICLE_REFERENCE_FRAME, &lt;0, 0, 0, 1&gt; );
+			// remove these flags
+			llRemoveVehicleFlags( VEHICLE_FLAG_HOVER_WATER_ONLY
+			| VEHICLE_FLAG_HOVER_TERRAIN_ONLY
+			| VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT);
+			// set these flags
+			llSetVehicleFlags( VEHICLE_FLAG_NO_DEFLECTION_UP
+			| VEHICLE_FLAG_LIMIT_ROLL_ONLY
+			| VEHICLE_FLAG_HOVER_UP_ONLY
+			| VEHICLE_FLAG_LIMIT_MOTOR_UP );</string>
+         </map>
+         <key>VEHICLE_TYPE_NONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>VEHICLE_TYPE_SLED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>Simple vehicle that bumps along the ground,
+			and likes to move along its local x-axis.
+			// most friction for left-right, least for up-down
+			llSetVehicleVectorParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, &lt;30, 1, 1000&gt; );
+			// no angular friction
+			llSetVehicleVectorParam( VEHICLE_ANGULAR_FRICTION_TIMESCALE, &lt;1000, 1000, 1000&gt; );
+			// no linear motor
+			llSetVehicleVectorParam( VEHICLE_LINEAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
+			llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_TIMESCALE, 1000 );
+			llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 120 );
+			// no angular motor
+			llSetVehicleVectorParam( VEHICLE_ANGULAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_TIMESCALE, 1000 );
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 120 );
+			// no hover (but with timescale of 10 sec if enabled)
+			llSetVehicleFloatParam( VEHICLE_HOVER_HEIGHT, 0 );
+			llSetVehicleFloatParam( VEHICLE_HOVER_EFFICIENCY, 10 );
+			llSetVehicleFloatParam( VEHICLE_HOVER_TIMESCALE, 10 );
+			llSetVehicleFloatParam( VEHICLE_BUOYANCY, 0 );
+			// maximum linear deflection with timescale of 1 second
+			llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 1 );
+			llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 1 );
+			// no angular deflection
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 0 );
+			llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 10 );
+			// no vertical attractor (doesnt mind flipping over)
+			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 1 );
+			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 1000 );
+			// no banking
+			llSetVehicleFloatParam( VEHICLE_BANKING_EFFICIENCY, 0 );
+			llSetVehicleFloatParam( VEHICLE_BANKING_MIX, 1 );
+			llSetVehicleFloatParam( VEHICLE_BANKING_TIMESCALE, 10 );
+			// default rotation of local frame
+			llSetVehicleRotationParam( VEHICLE_REFERENCE_FRAME, &lt;0, 0, 0, 1&gt; );
+			// remove these flags
+			llRemoveVehicleFlags( VEHICLE_FLAG_HOVER_WATER_ONLY
+			| VEHICLE_FLAG_HOVER_TERRAIN_ONLY
+			| VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT
+			| VEHICLE_FLAG_HOVER_UP_ONLY );
+			// set these flags (the limit_roll flag will have no effect
+			// until banking is enabled, if ever)
+			llSetVehicleFlags( VEHICLE_FLAG_NO_DEFLECTION_UP
+			| VEHICLE_FLAG_LIMIT_ROLL_ONLY
+			| VEHICLE_FLAG_LIMIT_MOTOR_UP );</string>
+         </map>
+         <key>VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>36</integer>
+            <key>tooltip</key>
+            <string>A slider between minimum (0.0 = wobbly) and maximum (1.0 = firm as possible) stability of the vehicle to keep itself upright.</string>
+         </map>
+         <key>VEHICLE_VERTICAL_ATTRACTION_TIMESCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>37</integer>
+            <key>tooltip</key>
+            <string>The period of wobble, or timescale for exponential approach, of the vehicle to rotate such that its preferred "up" axis is oriented along the worlds "up" axis.</string>
+         </map>
+         <key>VERTICAL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>WANDER_PAUSE_AT_WAYPOINTS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>ZERO_ROTATION</key>
+         <map>
+            <key>type</key>
+            <string>rotation</string>
+            <key>value</key>
+            <map>
+               <key>x</key>
+               <real>0.0</real>
+               <key>y</key>
+               <real>0.0</real>
+               <key>z</key>
+               <real>0.0</real>
+               <key>w</key>
+               <real>1.0</real>
+            </map>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>ZERO_VECTOR</key>
+         <map>
+            <key>type</key>
+            <string>vector</string>
+            <key>value</key>
+            <map>
+               <key>x</key>
+               <real>0.0</real>
+               <key>y</key>
+               <real>0.0</real>
+               <key>z</key>
+               <real>0.0</real>
+            </map>
+            <key>tooltip</key>
+            <string/>
+         </map>
+      </map>
+      <key>events</key>
+      <map>
+         <key>at_rot_target</key>
+         <map>
+            <key>arguments</key>
+            <map>
+               <key>TargetNumber</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>TargetRotation</key>
+               <map>
+                  <key>type</key>
+                  <string>rotation</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>CurrentRotation</key>
+               <map>
+                  <key>type</key>
+                  <string>rotation</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>This event is triggered when a script comes within a defined angle of a target rotation. The range and rotation, are set by a call to llRotTarget.</string>
+         </map>
+         <key>at_target</key>
+         <map>
+            <key>arguments</key>
+            <map>
+               <key>TargetNumber</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>TargetPosition</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>CurrentPosition</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>This event is triggered when the scripted object comes within a defined range of the target position, defined by the llTarget function call.</string>
+         </map>
+         <key>attach</key>
+         <map>
+            <key>arguments</key>
+            <map>
+               <key>AvatarID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>This event is triggered whenever an object is attached or detached from an avatar. If it is attached, the key of the avatar it is attached to is passed in, otherwise NULL_KEY is.</string>
+         </map>
+         <key>changed</key>
+         <map>
+            <key>arguments</key>
+            <map>
+               <key>Changed</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Triggered when various events change the object. The change argument will be a bit-field of CHANGED_* constants.</string>
+         </map>
+         <key>collision</key>
+         <map>
+            <key>arguments</key>
+            <map>
+               <key>NumberOfCollisions</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>This event is raised while another object, or avatar, is colliding with the object the script is attached to.
+			The number of detected objects is passed to the script. Information on those objects may be gathered via the llDetected* functions.</string>
+         </map>
+         <key>collision_end</key>
+         <map>
+            <key>arguments</key>
+            <map>
+               <key>NumberOfCollisions</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>This event is raised when another object, or avatar, stops colliding with the object the script is attached to.
+			The number of detected objects is passed to the script. Information on those objects may be gathered via the llDetected* library functions.</string>
+         </map>
+         <key>collision_start</key>
+         <map>
+            <key>arguments</key>
+            <map>
+               <key>NumberOfCollisions</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>This event is raised when another object, or avatar, starts colliding with the object the script is attached to.
+			The number of detected objects is passed to the script. Information on those objects may be gathered via the llDetected* library functions.</string>
+         </map>
+         <key>control</key>
+         <map>
+            <key>arguments</key>
+            <map>
+               <key>AvatarID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Levels</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Edges</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Once a script has the ability to grab control inputs from the avatar, this event will be used to pass the commands into the script.
+			The levels and edges are bit-fields of control constants.</string>
+         </map>
+         <key>dataserver</key>
+         <map>
+            <key>arguments</key>
+            <map>
+               <key>RequestID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Data</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>This event is triggered when the requested data is returned to the script.
+			Data may be requested by the llRequestAgentData, llRequestInventoryData, and llGetNotecardLine function calls, for example.</string>
+         </map>
+         <key>email</key>
+         <map>
+            <key>arguments</key>
+            <map>
+               <key>Time</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Address</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Subject</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Body</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>NumberRemaining</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>This event is triggered when an email sent to this script arrives.
+			The number remaining tells how many more emails are known to be still pending.</string>
+         </map>
+         <key>http_request</key>
+         <map>
+            <key>arguments</key>
+            <map>
+               <key>HTTPRequestID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>HTTPMethod</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Body</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Triggered when task receives an HTTP request.</string>
+         </map>
+         <key>http_response</key>
+         <map>
+            <key>arguments</key>
+            <map>
+               <key>HTTPRequestID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Status</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Metadata</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Body</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>This event handler is invoked when an HTTP response is received for a pending llHTTPRequest request or if a pending request fails or times out.</string>
+         </map>
+         <key>land_collision</key>
+         <map>
+            <key>arguments</key>
+            <map>
+               <key>Position</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>This event is raised when the object the script is attached to is colliding with the ground.</string>
+         </map>
+         <key>land_collision_end</key>
+         <map>
+            <key>arguments</key>
+            <map>
+               <key>Position</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>This event is raised when the object the script is attached to stops colliding with the ground.</string>
+         </map>
+         <key>land_collision_start</key>
+         <map>
+            <key>arguments</key>
+            <map>
+               <key>Position</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>This event is raised when the object the script is attached to begins to collide with the ground.</string>
+         </map>
+         <key>link_message</key>
+         <map>
+            <key>arguments</key>
+            <map>
+               <key>SendersLink</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Value</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>ID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Triggered when object receives a link message via llMessageLinked function call.</string>
+         </map>
+         <key>listen</key>
+         <map>
+            <key>arguments</key>
+            <map>
+               <key>Channel</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Name</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>ID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>This event is raised whenever a chat message matching the constraints set in the llListen command is received. The name and ID of the speaker, as well as the message, are passed in as parameters.
+			Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 through 2,147,483,648 are private channels that are not sent to avatars but other scripts can listen on those channels.</string>
+         </map>
+         <key>money</key>
+         <map>
+            <key>arguments</key>
+            <map>
+               <key>Payer</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Amount</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>This event is triggered when a resident has given an amount of Linden dollars to the object.</string>
+         </map>
+         <key>moving_end</key>
+         <map>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Triggered whenever an object with this script stops moving.</string>
+         </map>
+         <key>moving_start</key>
+         <map>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Triggered whenever an object with this script starts moving.</string>
+         </map>
+         <key>no_sensor</key>
+         <map>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>This event is raised when sensors are active, via the llSensor function call, but are not sensing anything.</string>
+         </map>
+         <key>not_at_rot_target</key>
+         <map>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>When a target is set via the llRotTarget function call, but the script is outside the specified angle this event is raised.</string>
+         </map>
+         <key>not_at_target</key>
+         <map>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>When a target is set via the llTarget library call, but the script is outside the specified range this event is raised.</string>
+         </map>
+         <key>object_rez</key>
+         <map>
+            <key>arguments</key>
+            <map>
+               <key>RezzedObjectsID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Triggered when an object rezzes another object from its inventory via the llRezObject, or similar, functions. The id is the globally unique key for the object rezzed.</string>
+         </map>
+         <key>on_rez</key>
+         <map>
+            <key>arguments</key>
+            <map>
+               <key>StartParameter</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Triggered whenever an object is rezzed from inventory or by another object. The start parameter is passed in from the llRezObject call, or zero if from inventory.</string>
+         </map>
+         <key>path_update</key>
+         <map>
+            <key>arguments</key>
+            <map>
+               <key>Type</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Reserved</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>This event is called to inform the script of changes within the object's path-finding status.</string>
+         </map>
+         <key>remote_data</key>
+         <map>
+            <key>arguments</key>
+            <map>
+               <key>EventType</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>ChannelID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>MessageID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Sender</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Data</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Data</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Triggered by various XML-RPC calls with event_type specifying the type of data.</string>
+         </map>
+         <key>run_time_permissions</key>
+         <map>
+            <key>arguments</key>
+            <map>
+               <key>PermissionFlags</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Scripts need permission from either the owner or the avatar they wish to act on before they may perform certain functions, such as debiting money from their owners account, triggering an animation on an avatar, or capturing control inputs. The llRequestPermissions library function is used to request these permissions and the various permissions integer constants can be supplied.
+			The integer returned to this event handler contains the current set of permissions flags, so if permissions equal 0 then no permissions are set.</string>
+         </map>
+         <key>sensor</key>
+         <map>
+            <key>arguments</key>
+            <map>
+               <key>NumberDetected</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>This event is raised whenever objects matching the constraints of the llSensor command are detected.
+			The number of detected objects is passed to the script in the parameter. Information on those objects may be gathered via the llDetected* functions.</string>
+         </map>
+         <key>state_entry</key>
+         <map>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>The state_entry event occurs whenever a new state is entered, including at program start, and is always the first event handled.</string>
+         </map>
+         <key>state_exit</key>
+         <map>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>The state_exit event occurs whenever the state command is used to transition to another state. It is handled before the new states state_entry event.</string>
+         </map>
+         <key>timer</key>
+         <map>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>This event is raised at regular intervals set by the llSetTimerEvent library function.</string>
+         </map>
+         <key>touch</key>
+         <map>
+            <key>arguments</key>
+            <map>
+               <key>NumberOfTouches</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>This event is raised while a user is touching the object the script is attached to.
+			The number of touching objects is passed to the script in the parameter.
+			Information on those objects may be gathered via the llDetected* library functions.</string>
+         </map>
+         <key>touch_end</key>
+         <map>
+            <key>arguments</key>
+            <map>
+               <key>NumberOfTouches</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>This event is raised when a user stops touching the object the script is attached to. The number of touches is passed to the script in the parameter.
+			Information on those objects may be gathered via the llDetected* library functions.</string>
+         </map>
+         <key>touch_start</key>
+         <map>
+            <key>arguments</key>
+            <map>
+               <key>NumberOfTouches</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>This event is raised when a user first touches the object the script is attached to. The number of touches is passed to the script in the parameter.
+			Information on those objects may be gathered via the llDetected() library functions.</string>
+         </map>
+         <key>transaction_result</key>
+         <map>
+            <key>arguments</key>
+            <map>
+               <key>RequestID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Success</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Message</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Triggered by llTransferMoney() function.</string>
+         </map>
+      </map>
+      <key>functions</key>
+      <map>
+         <key>llAbs</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>Value</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the absolute (positive) version of Value.</string>
+         </map>
+         <key>llAcos</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <map>
+               <key>Value</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the arc-cosine of Value, in radians.</string>
+         </map>
+         <key>llAddToLandBanList</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>ID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Hours</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Add avatar ID to the parcel ban list for the specified number of Hours.\nA value of 0 for Hours will add the agent indefinitely.\nThe smallest value that Hours will accept is 0.01; anything smaller will be seen as 0.\nWhen values that small are used, it seems the function bans in approximately 30 second increments (Probably 36 second increments, as 0.01 of an hour is 36 seconds).\nResidents teleporting to a parcel where they are banned will be redirected to a neighbouring parcel.</string>
+         </map>
+         <key>llAddToLandPassList</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.1</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>ID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Hours</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Add avatar ID to the land pass list, for a duration of Hours.</string>
+         </map>
+         <key>llAdjustSoundVolume</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.1</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Volume</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Adjusts the volume (0.0 - 1.0) of the currently playing attached sound started with llPlaySound or llLoopSound.\nAdjusts the volume of the currently playing attached sound started with llPlaySound or llLoopSound.\nThis function has no effect on sounds started with llTriggerSound.</string>
+         </map>
+         <key>llAllowInventoryDrop</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Flag</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>If Flag == TRUE, users without object modify permissions can still drop inventory items into the object.</string>
+         </map>
+         <key>llAngleBetween</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <map>
+               <key>Rot1</key>
+               <map>
+                  <key>type</key>
+                  <string>rotation</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Rot2</key>
+               <map>
+                  <key>type</key>
+                  <string>rotation</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the angle, in radians, between rotations Rot1 and Rot2.</string>
+         </map>
+         <key>llApplyImpulse</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Force</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Local</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Applies impulse to the object.\nApplies the Force in local coordinates if Local == TRUE. Otherwise the Force is applied in global coordinates.\nThis function only works on physical objects.</string>
+         </map>
+         <key>llApplyRotationalImpulse</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Force</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Local</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Applies rotational impulse to the object,\nThe force is in local coordinates, if Local == TRUE, otherwise the impulse is applied in global coordinates.\nThis function only works on physical objects.</string>
+         </map>
+         <key>llAsin</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <map>
+               <key>Value</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the arc-sine, in radians, of Value.</string>
+         </map>
+         <key>llAtan2</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <map>
+               <key>y</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>x</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the arc-tangent2 of y, x.</string>
+         </map>
+         <key>llAttachToAvatar</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>AttachmentPoint</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Attach to avatar at point AttachmentPoint, if task has permissions to do so.\nAttach to avatar at point iAttachmentPoint.\nRequires the PERMISSION_ATTACH runtime permission.</string>
+         </map>
+         <key>llAttachToAvatarTemp</key>
+         <map>
+            <key>energy</key>
+            <real>0</real>
+            <key>sleep</key>
+            <real>0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>AttachPoint</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Follows the same convention as llAttachToAvatar, with the exception that the object will not create new inventory for the user, and will disappear on detach or disconnect.</string>
+         </map>
+         <key>llAvatarOnLinkSitTarget</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <map>
+               <key>LinkNumber</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>If an avatar is sitting on the link's sit target, return the avatar's key, NULL_KEY otherwise.\nReturns a key that is the UUID of the user seated on the specified link's prim.</string>
+         </map>
+         <key>llAvatarOnSitTarget</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>If an avatar is seated on the sit target, returns the avatar's key, otherwise NULL_KEY.\nThis only will detect avatars sitting on sit targets defined with llSitTarget.</string>
+         </map>
+         <key>llAxes2Rot</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>rotation</string>
+            <key>arguments</key>
+            <map>
+               <key>Forward</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Left</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Up</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the rotation represented by coordinate axes Forward, Left, and Up.</string>
+         </map>
+         <key>llAxisAngle2Rot</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>rotation</string>
+            <key>arguments</key>
+            <map>
+               <key>Axis</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Angle</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the rotation that is a generated Angle about Axis.</string>
+         </map>
+         <key>llBase64ToInteger</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns an integer that is the Text, Base64 decoded as a big endian integer.\nReturns zero if Text is longer then 8 characters. If Text contains fewer then 6 characters, the return value is unpredictable.</string>
+         </map>
+         <key>llBase64ToString</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Converts a Base64 string to a conventional string.\nIf the conversion creates any unprintable characters, they are converted to question marks.</string>
+         </map>
+         <key>llBreakAllLinks</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>De-links all prims in the link set (requires permission PERMISSION_CHANGE_LINKS be set).</string>
+         </map>
+         <key>llBreakLink</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>LinkNumber</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>De-links the prim with the given link number (requires permission PERMISSION_CHANGE_LINKS be set).</string>
+         </map>
+         <key>llCastRay</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <map>
+               <key>Start</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>End</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Options</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Casts a ray into the physics world from 'start' to 'end' and returns data according to details in Options.\nReports collision data for intersections with objects.\nReturn value: [UUID_1, {link_number_1}, hit_position_1, {hit_normal_1}, UUID_2, {link_number_2}, hit_position_2, {hit_normal_2}, ... , status_code] where {} indicates optional data.</string>
+         </map>
+         <key>llCeil</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>Value</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns smallest integer value &gt;= Value.</string>
+         </map>
+         <key>llClearCameraParams</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Resets all camera parameters to default values and turns off scripted camera control.</string>
+         </map>
+         <key>llClearLinkMedia</key>
+         <map>
+            <key>energy</key>
+            <real>0.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>Link</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Face</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Clears (deletes) the media and all parameters from the given Face on the linked prim.\nReturns an integer that is a STATUS_* flag, which details the success/failure of the operation.</string>
+         </map>
+         <key>llClearPrimMedia</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.1</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>Face</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Clears (deletes) the media and all parameters from the given Face.\nReturns an integer that is a STATUS_* flag which details the success/failure of the operation.</string>
+         </map>
+         <key>llCloseRemoteDataChannel</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>1.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>ChannelID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Closes the specified XML-RPC channel.</string>
+         </map>
+         <key>llCloud</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <map>
+               <key>Offset</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the cloud density at the object's position + Offset.</string>
+         </map>
+         <key>llCollisionFilter</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>ObjectName</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>ObjectID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Accept</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>If Accept == TRUE, only accept collisions with objects Name and ID, otherwise with objects not Name or ID.\nSpecify an empty string or NULL_KEY to not filter on the corresponding parameter.</string>
+         </map>
+         <key>llCollisionSound</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>ImpactSound</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>ImpactVolume</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Suppress default collision sounds, replace default impact sounds with ImpactSound.\nThe ImpactSound must be in the object inventory.\nSupply an empty string to suppress collision sounds.</string>
+         </map>
+         <key>llCollisionSprite</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>ImpactSprite</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Suppress default collision sprites, replace default impact sprite with ImpactSprite; found in the object inventory (empty string to just suppress).</string>
+         </map>
+         <key>llCos</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <map>
+               <key>Theta</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the cosine of Theta (Theta in radians).</string>
+         </map>
+         <key>llCreateCharacter</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Options</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Convert link-set to AI/Physics character.\nCreates a path-finding entity, known as a "character", from the object containing the script. Required to activate use of path-finding functions.\nOptions is a list of key/value pairs.</string>
+         </map>
+         <key>llCreateLink</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>1.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>TargetPrim</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Parent</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Attempt to link the object the script is in, to target (requires permission PERMISSION_CHANGE_LINKS be set).\nIf parent == TRUE, the object the script is attached to is the root.\nRequires permission PERMISSION_CHANGE_LINKS be set.</string>
+         </map>
+         <key>llCSV2List</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Create a list from a string of comma separated values specified in Text.</string>
+         </map>
+         <key>llDeleteCharacter</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Convert link-set from AI/Physics character to Physics object.\nConvert the current link-set back to a standard object, removing all path-finding properties.</string>
+         </map>
+         <key>llDeleteSubList</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <map>
+               <key>Source</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Start</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>End</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Removes the slice from start to end and returns the remainder of the list.\nRemove a slice from the list and return the remainder, start and end are inclusive.\nUsing negative numbers for start and/or end causes the index to count backwards from the length of the list, so 0, -1 would delete the entire list.\nIf Start is larger than End the list deleted is the exclusion of the entries; so 6, 4 would delete the entire list except for the 5th. list entry.</string>
+         </map>
+         <key>llDeleteSubString</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>Source</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Start</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>End</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Removes the indicated sub-string and returns the result.\nStart and End are inclusive.\nUsing negative numbers for Start and/or End causes the index to count backwards from the length of the string, so 0, -1 would delete the entire string.\nIf Start is larger than End, the sub-string is the exclusion of the entries; so 6, 4 would delete the entire string except for the 5th. character.</string>
+         </map>
+         <key>llDetachFromAvatar</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Remove the object containing the script from the avatar.</string>
+         </map>
+         <key>llDetectedGrab</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <map>
+               <key>Number</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the grab offset of a user touching the object.\nReturns &lt;0.0, 0.0, 0.0&gt; if Number is not a valid object.</string>
+         </map>
+         <key>llDetectedGroup</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>Number</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns TRUE if detected object or agent Number has the same user group active as this object.\nIt will return FALSE if the object or agent is in the group, but the group is not active.</string>
+         </map>
+         <key>llDetectedKey</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <map>
+               <key>Number</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the key of detected object or avatar number.\nReturns NULL_KEY if Number is not a valid index.</string>
+         </map>
+         <key>llDetectedLinkNumber</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>Number</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the link position of the triggered event for touches and collisions only.\n0 for a non-linked object, 1 for the root of a linked object, 2 for the first child, etc.</string>
+         </map>
+         <key>llDetectedName</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>Number</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the name of detected object or avatar number.\nReturns the name of detected object number.\nReturns empty string if Number is not a valid index.</string>
+         </map>
+         <key>llDetectedOwner</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <map>
+               <key>Number</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the key of detected object's owner.\nReturns invalid key if Number is not a valid index.</string>
+         </map>
+         <key>llDetectedPos</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <map>
+               <key>Number</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the position of detected object or avatar number.\nReturns &lt;0.0, 0.0, 0.0&gt; if Number is not a valid index.</string>
+         </map>
+         <key>llDetectedRot</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>rotation</string>
+            <key>arguments</key>
+            <map>
+               <key>Number</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the rotation of detected object or avatar number.\nReturns &lt;0.0, 0.0, 0.0, 1.0&gt; if Number is not a valid offset.</string>
+         </map>
+         <key>llDetectedTouchBinormal</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <map>
+               <key>Index</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the surface bi-normal for a triggered touch event.\nReturns a vector that is the surface bi-normal (tangent to the surface) where the touch event was triggered.</string>
+         </map>
+         <key>llDetectedTouchFace</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>Index</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the index of the face where the avatar clicked in a triggered touch event.</string>
+         </map>
+         <key>llDetectedTouchNormal</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <map>
+               <key>Index</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the surface normal for a triggered touch event.\nReturns a vector that is the surface normal (perpendicular to the surface) where the touch event was triggered.</string>
+         </map>
+         <key>llDetectedTouchPos</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <map>
+               <key>Index</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the position, in region coordinates, where the object was touched in a triggered touch event.\nUnless it is a HUD, in which case it returns the position relative to the attach point.</string>
+         </map>
+         <key>llDetectedTouchST</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <map>
+               <key>Index</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns a vector that is the surface coordinates where the prim was touched.\nThe X and Y vector positions contain the horizontal (S) and vertical (T) face coordinates respectively.\nEach component is in the interval [0.0, 1.0].\nTOUCH_INVALID_TEXCOORD is returned if the surface coordinates cannot be determined (e.g. when the viewer does not support this function).</string>
+         </map>
+         <key>llDetectedTouchUV</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <map>
+               <key>Index</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns a vector that is the texture coordinates for where the prim was touched.\nThe X and Y vector positions contain the U and V face coordinates respectively.\nTOUCH_INVALID_TEXCOORD is returned if the touch UV coordinates cannot be determined (e.g. when the viewer does not support this function).</string>
+         </map>
+         <key>llDetectedType</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>Number</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the type (AGENT, ACTIVE, PASSIVE, SCRIPTED) of detected object.\nReturns 0 if number is not a valid index.\nNote that number is a bit-field, so comparisons need to be a bitwise checked. e.g.:\ninteger iType = llDetectedType(0);\n{\n	// ...do stuff with the agent\n}</string>
+         </map>
+         <key>llDetectedVel</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <map>
+               <key>Number</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the velocity of the detected object Number.\nReturns&lt;0.0, 0.0, 0.0&gt; if Number is not a valid offset.</string>
+         </map>
+         <key>llDialog</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.1</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>AvatarID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Buttons</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Channel</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Shows a dialog box on the avatar's screen with the message.\n
+				Up to 12 strings in the list form buttons.\n
+				If a button is clicked, the name is chatted on Channel.\nOpens a "notify box" in the given avatars screen displaying the message.\n
+			Up to twelve buttons can be specified in a list of strings. When the user clicks a button, the name of the button is said on the specified channel.\n
+			Channels work just like llSay(), so channel 0 can be heard by everyone.\n
+			The chat originates at the object's position, not the avatar's position, even though it is said as the avatar (uses avatar's UUID and Name etc.).\n
+			Examples:\n
+			llDialog(who, "Are you a boy or a girl?", [ "Boy", "Girl" ], -4913);\n
+			llDialog(who, "This shows only an OK button.", [], -192);\n
+			llDialog(who, "This chats so you can 'hear' it.", ["Hooray"], 0);</string>
+         </map>
+         <key>llDie</key>
+         <map>
+            <key>energy</key>
+            <real>0.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Deletes the object.\nDelete the object which holds the script.</string>
+         </map>
+         <key>llDumpList2String</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>Source</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Separator</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the list as a single string, using Separator between the entries.\nWrite the list out as a single string, using Separator between values.</string>
+         </map>
+         <key>llEdgeOfWorld</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>Position</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Direction</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Checks to see whether the border hit by Direction from Position is the edge of the world (has no neighboring region).\nReturns TRUE if the line along Direction from Position hits the edge of the world in the current simulator, returns FALSE if that edge crosses into another simulator.</string>
+         </map>
+         <key>llEjectFromLand</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>AvatarID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Ejects AvatarID from land that you own.\nEjects AvatarID from land that the object owner (group or resident) owns.</string>
+         </map>
+         <key>llEmail</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>20.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Address</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Subject</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sends email to Address with Subject and Message.\nSends an email to Address with Subject and Message.</string>
+         </map>
+         <key>llEscapeURL</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>URL</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns an escaped/encoded version of url, replacing spaces with %20 etc.\nReturns the string that is the URL-escaped version of URL (replacing spaces with %20, etc.).\n
+			This function returns the UTF-8 encoded escape codes for selected characters.</string>
+         </map>
+         <key>llEuler2Rot</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>rotation</string>
+            <key>arguments</key>
+            <map>
+               <key>Vector</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the rotation representation of the Euler angles.\nReturns the rotation represented by the Euler Angle.</string>
+         </map>
+         <key>llEvade</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>TargetID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Options</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Evade a specified target.\nCharacters will (roughly) try to hide from their pursuers if there is a good hiding spot along their fleeing path. Hiding means no direct line of sight from the head of the character (centre of the top of its physics bounding box) to the head of its pursuer and no direct path between the two on the navigation-mesh.</string>
+         </map>
+         <key>llExecCharacterCmd</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Command</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Options</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Execute a character command.\nSend a command to the path system.\n
+			Currently only supports stopping the current path-finding operation or causing the character to jump.</string>
+         </map>
+         <key>llFabs</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <map>
+               <key>Value</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the positive version of Value.\nReturns the absolute value of Value.</string>
+         </map>
+         <key>llFleeFrom</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Source</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Distance</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Options</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Flee from a point.\nDirects a character (llCreateCharacter) to keep away from a defined position in the region or adjacent regions.</string>
+         </map>
+         <key>llFloor</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>Value</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns largest integer value &lt;= Value.</string>
+         </map>
+         <key>llForceMouselook</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Enable</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>If Enable is TRUE any avatar that sits on this object is forced into mouse-look mode.\nAfter calling this function with Enable set to TRUE, any agent sitting down on the prim will be forced into mouse-look.\n
+			Just like llSitTarget, this changes a permanent property of the prim (not the object) and needs to be reset by calling this function with Enable set to FALSE in order to disable it.</string>
+         </map>
+         <key>llFrand</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <map>
+               <key>Magnitude</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns a pseudo random number in the range [0, Magnitude] or [Magnitude, 0].\nReturns a pseudo-random number between [0, Magnitude].</string>
+         </map>
+         <key>llGenerateKey</key>
+         <map>
+            <key>energy</key>
+            <real>0</real>
+            <key>sleep</key>
+            <real>0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Generates a key (SHA-1 hash) using UUID generation to create a unique key.\nAs the UUID produced is versioned, it should never return a value of NULL_KEY.\nThe specific UUID version is an implementation detail that has changed in the past and may change again in the future. Do not depend upon the UUID that is returned to be version 5 SHA-1 hash.</string>
+         </map>
+         <key>llGetAccel</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the acceleration of the object relative to the region's axes.\nGets the acceleration of the object.</string>
+         </map>
+         <key>llGetAgentInfo</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>AvatarID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns an integer bit-field containing the agent information about id.\n
+				Returns AGENT_FLYING, AGENT_ATTACHMENTS, AGENT_SCRIPTED, AGENT_SITTING, AGENT_ON_OBJECT, AGENT_MOUSELOOK, AGENT_AWAY, AGENT_BUSY, AGENT_TYPING, AGENT_CROUCHING, AGENT_ALWAYS_RUN, AGENT_WALKING and/or AGENT_IN_AIR.\nReturns information about the given agent ID as a bit-field of agent info constants.</string>
+         </map>
+         <key>llGetAgentLanguage</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>AvatarID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the language code of the preferred interface language of the avatar.\nReturns a string that is the language code of the preferred interface language of the resident.</string>
+         </map>
+         <key>llGetAgentList</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <map>
+               <key>Scope</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Options</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Requests a list of agents currently in the region, limited by the scope parameter.\nReturns a list [key UUID-0, key UUID-1, ..., key UUID-n] or [string error_msg] - returns avatar keys for all agents in the region limited to the area(s) specified by scope</string>
+         </map>
+         <key>llGetAgentSize</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <map>
+               <key>AvatarID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>If the avatar is in the same region, returns the size of the bounding box of the requested avatar by id, otherwise returns ZERO_VECTOR.\nIf the agent is in the same region as the object, returns the size of the avatar.</string>
+         </map>
+         <key>llGetAlpha</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <map>
+               <key>Face</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the alpha value of Face.\nReturns the 'alpha' of the given face. If face is ALL_SIDES the value returned is the mean average of all faces.</string>
+         </map>
+         <key>llGetAndResetTime</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the script time in seconds and then resets the script timer to zero.\nGets the time in seconds since starting and resets the time to zero.</string>
+         </map>
+         <key>llGetAnimation</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>AvatarID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the name of the currently playing locomotion animation for the avatar id.\nReturns the currently playing animation for the specified avatar ID.</string>
+         </map>
+         <key>llGetAnimationList</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <map>
+               <key>AvatarID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns a list of keys of playing animations for an avatar.\nReturns a list of keys of all playing animations for the specified avatar ID.</string>
+         </map>
+         <key>llGetAnimationOverride</key>
+         <map>
+            <key>energy</key>
+            <real>0</real>
+            <key>sleep</key>
+            <real>0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>AnimationState</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns a string that is the name of the animation that is used for the specified animation state\nTo use this function the script must obtain either the PERMISSION_OVERRIDE_ANIMATIONS or PERMISSION_TRIGGER_ANIMATION permission (automatically granted to attached objects).</string>
+         </map>
+         <key>llGetAttached</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the object's attachment point, or 0 if not attached.\nReturns the object attachment point, or 0 if not attached.</string>
+         </map>
+         <key>llGetBoundingBox</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <map>
+               <key>ID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the bounding box around the object (including any linked prims) relative to its root prim, as a list in the format [ (vector) min_corner, (vector) max_corner ].\nReturns the bounding box around the object or avatar with the specified key (including any linked prims) relative to the\n
+			root prim, as a list: [ (vector) min_corner, (vector) max_corner ]</string>
+         </map>
+         <key>llGetCameraPos</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the current camera position for the agent the task has permissions for.\nReturns the position of the camera, of the user that granted the script PERMISSION_TRACK_CAMERA. If no user has granted the permission, it returns ZERO_VECTOR.</string>
+         </map>
+         <key>llGetCameraRot</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>rotation</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the current camera orientation for the agent the task has permissions for.\nReturns the rotation of the camera, of the user who has granted this script PERMISSION_TRACK_CAMERA. If no user has granted the permission, it returns ZERO_ROTATION.\n
+			The key of the user whose camera is being tracked, can be obtained using llGetPermissionsKey.</string>
+         </map>
+         <key>llGetCenterOfMass</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the prim's centre of mass (unless called from the root prim, where it returns the object's centre of mass).</string>
+         </map>
+         <key>llGetClosestNavPoint</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <map>
+               <key>Point</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Options</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Get the closest navigable point to the point provided.\nThe function accepts a point in region-local space (like all the other path-finding methods) and returns either an empty list or a list containing a single vector which is the closest point on the navigation-mesh to the point provided.</string>
+         </map>
+         <key>llGetColor</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <map>
+               <key>Face</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the color on Face.\nReturns the colour of Face as a vector of red, green, and blue values between 0 and 1. If face is ALL_SIDES the colour returned is the mean average of each channel.</string>
+         </map>
+         <key>llGetCreator</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns a key for the creator of the prim.\nReturns the key of the object's original creator. Similar to llGetOwner.</string>
+         </map>
+         <key>llGetDate</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the current date in the UTC time zone in the format YYYY-MM-DD.\nReturns the current UTC date as YYYY-MM-DD.</string>
+         </map>
+         <key>llGetDisplayName</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>AvatarID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the name of an avatar, if the avatar is in the current region, and the name has been cached, otherwise the same as llGetUsername.	Use llRequestDisplayName if you absolutely must have the display name.\nReturns a string that is the non-unique display name of the avatar specified by AvatarID.\n
+			AvatarID must specify a valid avatar key, present in or otherwise known to the region in which the script is running, otherwise an empty string is returned.\n
+			This function will still return a valid display name if the avatar is a child agent of the region (i.e., in an adjacent region, but presently able to see into the one the script is in), or for a short period after the avatar leaves the region (specifically, when the client completely disconnects from the region, either as a main or child agent).</string>
+         </map>
+         <key>llGetEnergy</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns how much energy is in the object as a percentage of maximum.</string>
+         </map>
+         <key>llGetEnv</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>DataRequest</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns a string with the requested data about the region.</string>
+         </map>
+         <key>llGetForce</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the force (if the script is physical).\nReturns the current force if the script is physical.</string>
+         </map>
+         <key>llGetFreeMemory</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the number of free bytes of memory the script can use.\nReturns the available free space for the current script. This is inaccurate with LSO.</string>
+         </map>
+         <key>llGetFreeURLs</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the number of available URLs for the current script.\nReturns an integer that is the number of available URLs.</string>
+         </map>
+         <key>llGetGeometricCenter</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the geometric center of the linked set the script is attached to.\nReturns the geometric centre of the linked set the script is in relative to the object's position (the position of the root prim of a linked set).\n
+			To get the object's position, use llGetPos.</string>
+         </map>
+         <key>llGetGMTclock</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the time in seconds since midnight GMT.\nGets the time in seconds since midnight in GMT/UTC.</string>
+         </map>
+         <key>llGetHTTPHeader</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>HTTPRequestID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Header</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the value for header for request_id.\nReturns a string that is the value of the Header for HTTPRequestID.</string>
+         </map>
+         <key>llGetInventoryCreator</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <map>
+               <key>InventoryItem</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns a key for the creator of the inventory item.\nThis function returns the UUID of the creator of item. If item is not found in inventory, the object says "No item named 'name' ".</string>
+         </map>
+         <key>llGetInventoryKey</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <map>
+               <key>InventoryItem</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the key that is the UUID of the inventory named.\nReturns the key of the inventory named.</string>
+         </map>
+         <key>llGetInventoryName</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>InventoryType</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Index</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the name of the inventory item number of a given type.\nGet the name of the inventory Index number of InventoryType.\n
+			Use the inventory constants INVENTORY_* to specify the type.</string>
+         </map>
+         <key>llGetInventoryNumber</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>InventoryType</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the number of items of a given type (INVENTORY_* flag) in the prim's inventory.\nGet the number of items of InventoryType in the object inventory.\n
+			Use the inventory constants INVENTORY_* to specify the type.</string>
+         </map>
+         <key>llGetInventoryPermMask</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>InventoryItem</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>BitMask</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the requested permission mask for the inventory item.\nReturns the requested permission mask for the inventory item defined by InventoryItem. If item is not in the object's inventory, llGetInventoryPermMask returns FALSE and causes the object to say "No item named '&lt;item&gt;'", where "&lt;item&gt;" is item.\n
+			If this is used to determine whether or not an inventory item exists within the object, it will have the side effect of spamming chat. So please don't ;-)</string>
+         </map>
+         <key>llGetInventoryType</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>InventoryItem</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the type of the inventory item named.\nReturns the type of the inventory item named.\n
+			Remember, like all inventory functions, llGetInventoryType is case-sensitive.</string>
+         </map>
+         <key>llGetKey</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the key of the prim the script is attached to.\nGet the key for the object which has this script.</string>
+         </map>
+         <key>llGetLandOwnerAt</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <map>
+               <key>Position</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the key of the land owner, returns NULL_KEY if public.\nReturns the key of the land owner at Position, or NULL_KEY if public.</string>
+         </map>
+         <key>llGetLinkKey</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <map>
+               <key>LinkNumber</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the key of the linked prim LinkNumber.\nReturns the key of LinkNumber in the link set.</string>
+         </map>
+         <key>llGetLinkMedia</key>
+         <map>
+            <key>energy</key>
+            <real>0.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <map>
+               <key>LinkNumber</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Face</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Parameters</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Get the media parameters for a particular face on linked prim, given the desired list of parameter names. Returns a list of values in the order requested.	Returns an empty list if no media exists on the face.\nGet the desired list of named media parameters, for a particular face, of a linked prim.\n
+				Returns a list of values in the order requested.</string>
+         </map>
+         <key>llGetLinkName</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>LinkNumber</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the name of LinkNumber in a link set.\nReturns the name of LinkNumber the link set.</string>
+         </map>
+         <key>llGetLinkNumber</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the link number of the prim containing the script (0 means not linked, 1 the prim is the root, 2 the prim is the first child, etc.).\nReturns the link number of the prim containing the script. 0 means no link, 1 the root, 2 for first child, etc.</string>
+         </map>
+         <key>llGetLinkNumberOfSides</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>LinkNumber</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the number of sides of the specified linked prim.\nReturns an integer that is the number of faces (or sides) of the prim link.</string>
+         </map>
+         <key>llGetLinkPrimitiveParams</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <map>
+               <key>LinkNumber</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Parameters</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Get primitive parameters for LinkNumber based on rules.\nIdentical to llGetPrimitiveParams except that it acts on the prim specified by the link number given.\n
+			Returns the list of primitive attributes requested in the Parameters list for link.\n
+			PRIM_* flags can be broken into three categories, face flags, prim flags, and object flags.\n
+			* Supplying a prim or object flag will return that flags attributes.\n
+			* Face flags require the user to also supply a side parameter.</string>
+         </map>
+         <key>llGetListEntryType</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>ListVariable</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Index</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the type of the index entry in the list (TYPE_INTEGER, TYPE_FLOAT, TYPE_STRING, TYPE_KEY, TYPE_VECTOR, TYPE_ROTATION, or TYPE_INVALID if index is off list).\nReturns the type of the variable at Index in ListVariable.</string>
+         </map>
+         <key>llGetListLength</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>ListVariable</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the number of elements in the list.\nReturns the number of elements in ListVariable.</string>
+         </map>
+         <key>llGetLocalPos</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the position relative to the root.\nReturns the local position of a child object relative to the root.</string>
+         </map>
+         <key>llGetLocalRot</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>rotation</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the rotation local to the root.\nReturns the local rotation of a child object relative to the root.</string>
+         </map>
+         <key>llGetMass</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the mass of object that the script is attached to.\nReturns the scripted object's mass. When called from a script in a link-set, the parent will return the sum of the link-set weights, while a child will return just its own mass. When called from a script inside an attachment, this function will return the mass of the avatar it's attached to, not its own.</string>
+         </map>
+         <key>llGetMassMKS</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Acts as llGetMass(), except that the units of the value returned are Kg.</string>
+         </map>
+         <key>llGetMemoryLimit</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Get the maximum memory a script can use, in bytes.\nGet the maximum memory a script can use.\n
+			Returns the integer amount of memory the script can use in bytes.</string>
+         </map>
+         <key>llGetNextEmail</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Address</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Subject</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Get the next waiting email with appropriate address and/or subject (if blank they are ignored).\nGet the next waiting email with appropriate address and/or subject.\n
+				If the parameters are blank, they are not used for filtering.</string>
+         </map>
+         <key>llGetNotecardLine</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.1</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <map>
+               <key>NotecardName</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>LineNumber</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns line from NotecardName via the dataserver event.\nThis function fetches LineNumber from NotecardName and returns the data through the dataserver event. The line count starts at zero.\n
+				If the requested line is passed the end of the note-card the dataserver event will return the constant EOF string.\n
+				The key returned by this function is a unique identifier which will be supplied to the dataserver event in the requested parameter.</string>
+         </map>
+         <key>llGetNumberOfNotecardLines</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.1</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <map>
+               <key>NotecardName</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns number of lines in NotecardName via the dataserver event (cast return value to integer).\nReturns the number of lines in the note-card sNotecardName via the dataserver event. (Cast the value returned by the dataserver to an integer.)\n
+			The key returned is a query ID for identifying the dataserver reply.</string>
+         </map>
+         <key>llGetNumberOfPrims</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the number of prims in a link set the script is attached to.\nReturns the number of prims in (and avatars seated on) the object the script is in.</string>
+         </map>
+         <key>llGetNumberOfSides</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the number of faces (or sides) of the prim.\nReturns the number of sides of the prim which has the script.</string>
+         </map>
+         <key>llGetObjectDesc</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the description of the prim the script is attached to.\nReturns the description of the scripted object/prim. You can set the description using llSetObjectDesc.</string>
+         </map>
+         <key>llGetObjectDetails</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <map>
+               <key>ID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Parameters</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the object details specified in Parameters for the object with key ID.\n
+				Parameters are OBJECT_NAME, _DESC, _POS, _ROT, _VELOCITY, _OWNER, _GROUP, _CREATOR.\nReturns a list of the details specified in Parameters for the object with key ID.</string>
+         </map>
+         <key>llGetObjectMass</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <map>
+               <key>ID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the mass of the avatar or object in the region.\nGets the mass of the object or avatar corresponding to ID.</string>
+         </map>
+         <key>llGetObjectName</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the name of the prim which the script is attached to.\nReturns the name of the prim (not object) which contains the script.</string>
+         </map>
+         <key>llGetObjectPermMask</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>PermissionMask</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the requested permission mask for the root object the task is attached to.</string>
+         </map>
+         <key>llGetObjectPrimCount</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>ObjectID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the total number of prims for an object in the region.\nReturns the prim count for any object id in the same region.</string>
+         </map>
+         <key>llGetOmega</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the rotation velocity in radians per second.\nReturns a vector that is the rotation velocity of the object in radians per second.</string>
+         </map>
+         <key>llGetOwner</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the object owner's UUID.\nReturns the key for the owner of the object.</string>
+         </map>
+         <key>llGetOwnerKey</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <map>
+               <key>ObjectID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the owner of ObjectID.\nReturns the key for the owner of object ObjectID.</string>
+         </map>
+         <key>llGetParcelDetails</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <map>
+               <key>Position</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>ParcelDetails</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the parcel details specified in ParcelDetails for the parcel at Position.\n
+ 				Parameters is one or more of: PARCEL_DETAILS_NAME, _DESC, _OWNER, _GROUP, _AREA, _ID, _SEE_AVATARS.\nReturns a list that is the parcel details specified in ParcelDetails (in the same order) for the parcel at Position.</string>
+         </map>
+         <key>llGetParcelFlags</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>Position</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns a mask of the parcel flags (PARCEL_FLAG_*) for the parcel that includes the point Position.\nReturns a bit-field specifying the parcel flags (PARCEL_FLAG_*) for the parcel at Position.</string>
+         </map>
+         <key>llGetParcelMaxPrims</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>Position</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>SimWide</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the maximum number of prims allowed on the parcel at Position.\nReturns an integer that is the maximum number of prims allowed on the parcel at Position.</string>
+         </map>
+         <key>llGetParcelMusicURL</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Gets the streaming audio URL for the parcel object is on.\nReturns a string containing the parcel streaming audio URL.\n
+				The object owner, avatar or group, must also be the land owner.</string>
+         </map>
+         <key>llGetParcelPrimCount</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>Position</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Category</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>SimWide</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the number of prims on the parcel at Position of the given category.
+				Categories: PARCEL_COUNT_TOTAL, _OWNER, _GROUP, _OTHER, _SELECTED, _TEMP.\nReturns the number of prims used on the parcel at Position which are in Category.\n
+				If SimWide is TRUE, it returns the number of objects for the entire region in the category specified.\n
+				If SimWide is FALSE, it returns the number of objects on this specific parcel in the category specified</string>
+         </map>
+         <key>llGetParcelPrimOwners</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>2.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <map>
+               <key>Position</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns a list of all residents who own objects on the parcel at Position, with individual prim counts.
+				Requires owner-like permissions for the parcel.\nReturns a strided list of keys and integers of up to 100 agents who own objects in the parcel at Position.\n
+				The list is formatted as [ key agentKey1, integer agentCount1, key agentKey2, integer agentCount2, ... ], sorted by agent key.\n
+				The integers are counts of the number of prims (not objects) owned by the corresponding agents.\n
+				Only works when the object owner is in the region (likely the reason it doesn't work when deeded to group).</string>
+         </map>
+         <key>llGetPermissions</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns an integer bit-field with the permissions that have been granted.\nReturns an integer bit-field with the script permissions granted. e.g.:\n
+				integer iPerms = llGetPermissions();\n
+				if (iPerms &amp; PERMISSION_DEBIT) {\n
+					llOwnerSay("Yay, I can steal your money!!");\n
+				} else {\n
+					llOwnerSay("Damn, your money is safe from me!");\n
+				}</string>
+         </map>
+         <key>llGetPermissionsKey</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the key of the avatar that last granted permissions to the script.\nReturns the key of the avatar that last granted or declined permissions to the script.\n
+				Returns NULL_KEY if permissions were never granted or declined.</string>
+         </map>
+         <key>llGetPhysicsMaterial</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns a list of the form [float gravity_multiplier, float restitution, float friction, float density].</string>
+         </map>
+         <key>llGetPos</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the position of the task in region coordinates.\nReturns the vector position of the task in region coordinates.</string>
+         </map>
+         <key>llGetPrimitiveParams</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.2</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <map>
+               <key>Parameters</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the primitive parameters specified in the parameters list.\nReturns primitive parameters specified in the Parameters list.</string>
+         </map>
+         <key>llGetPrimMediaParams</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.1</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <map>
+               <key>Face</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Parameters</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the media parameters for a particular face on an object, given the desired list of parameter names, in the order requested. Returns an empty list if no media exists on the face.\nGet the media parameters for a particular face on an object, given the desired list of Parameters.\n
+				Returns a list of values in the order requested.\n
+				Returns an empty list if no media exists on the face.</string>
+         </map>
+         <key>llGetRegionAgentCount</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the number of avatars in the region.\nReturns an integer that is the number of avatars in the region.</string>
+         </map>
+         <key>llGetRegionCorner</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns a vector, in meters, that is the global location of the south-west corner of the region which the object is in.\nReturns the Region-Corner of the simulator containing the task. The region-corner is a vector (values in meters) representing distance from the first region.</string>
+         </map>
+         <key>llGetRegionFlags</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the region flags (REGION_FLAG_*) for the region the object is in.\nReturns a bit-field specifying the region flags (REGION_FLAG_*) for the region the object is in.</string>
+         </map>
+         <key>llGetRegionFPS</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the mean region frames per second.</string>
+         </map>
+         <key>llGetRegionName</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the current region name.</string>
+         </map>
+         <key>llGetRegionTimeDilation</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the current time dilation as a float between 0.0 (full dilation) and 1.0 (no dilation).\nReturns the current time dilation as a float between 0.0 and 1.0.</string>
+         </map>
+         <key>llGetRootPosition</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the position (in region coordinates) of the root prim of the object which the script is attached to.\nGets the position (in region coordinates) of the root/parent prim of the object containing the script.\n
+			This is used to allow a child prim to determine where the root is.</string>
+         </map>
+         <key>llGetRootRotation</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>rotation</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the rotation (relative to the region) of the root prim of the object which the script is attached to.\nGets the global rotation of the root object of the object script is attached to.</string>
+         </map>
+         <key>llGetRot</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>rotation</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the rotation relative to the region's axes.\nReturns the rotation.</string>
+         </map>
+         <key>llGetScale</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the scale of the prim.\nReturns a vector that is the scale (dimensions) of the prim.</string>
+         </map>
+         <key>llGetScriptName</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the name of the script that this function is used in.\nReturns the name of this script.</string>
+         </map>
+         <key>llGetScriptState</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>ScriptName</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns TRUE if the script named is running.\nReturns TRUE if ScriptName is running.</string>
+         </map>
+         <key>llGetSimStats</key>
+         <map>
+            <key>energy</key>
+            <real>0</real>
+            <key>sleep</key>
+            <real>0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <map>
+               <key>StatType</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns a float that is the requested statistic.</string>
+         </map>
+         <key>llGetSimulatorHostname</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the host-name of the machine which the script is running on (same as string in viewer Help dialog).\nReturns the host name (server) of the region in which the scripted object is located.\n
+			For example, "sim225.agni.lindenlab.com".</string>
+         </map>
+         <key>llGetSPMaxMemory</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the maximum used memory for the current script. Only valid after using PROFILE_SCRIPT_MEMORY. Non-mono scripts always use 16k.\nReturns the integer of the most bytes used while llScriptProfiler was last active.</string>
+         </map>
+         <key>llGetStartParameter</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns an integer that is the script start parameter.\nReturns the start parameter passed to llRezObject.\n
+			If the object was created from agent inventory, this function returns 0.</string>
+         </map>
+         <key>llGetStatus</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>StatusFlag</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns value of status (STATUS_PHYSICS, STATUS_PHANTOM, STATUS_BLOCK_GRAB, STATUS_ROTATE_X, STATUS_ROTATE_Y, and/or STATUS_ROTATE_Z).\nReturns the value of specified status.</string>
+         </map>
+         <key>llGetSubString</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>String</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Start</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>End</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the indicated substring.\nReturns the indicated sub-string from String. The start and end are inclusive.\n
+				Using negative numbers for start and/or end causes the index to count backwards from the length of the string, so 0, -1 would capture the entire string.\n
+				If start is larger than end, the sub string is the exclusion of the entries, so 6, 4 would give the entire string except for the 5th. character.</string>
+         </map>
+         <key>llGetSunDirection</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns a normalized vector of the direction of the sun in the region.\nReturns the sun's direction on the simulator.</string>
+         </map>
+         <key>llGetTexture</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>Face</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns a string that is the texture on face (the inventory name if it is a texture in the prim's inventory, otherwise the key).\nReturns the texture of a face, if it is found in object inventory, its key otherwise.</string>
+         </map>
+         <key>llGetTextureOffset</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <map>
+               <key>Face</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the texture offset of face in the x and y components of a vector.</string>
+         </map>
+         <key>llGetTextureRot</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <map>
+               <key>Face</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the texture rotation of side.</string>
+         </map>
+         <key>llGetTextureScale</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <map>
+               <key>Face</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the texture scale of side in the x and y components of a vector.\nReturns the texture scale of a side in the x and y components of a vector.</string>
+         </map>
+         <key>llGetTime</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the time in seconds since the last region reset, script reset, or call to either llResetTime or llGetAndResetTime.</string>
+         </map>
+         <key>llGetTimeOfDay</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the time in seconds since [SECOND_LIFE] server midnight or since region up-time, whichever is smaller.\nGets the time in seconds since midnight in Second Life.</string>
+         </map>
+         <key>llGetTimestamp</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns a time-stamp (UTC time zone) in the format: YYYY-MM-DDThh:mm:ss.ff..fZ.\nReturns the current time-and-date (a time-stamp) in the format YYYY-MM-DDThh:mm:ss.ff..fZ, for example: 2004-08-27T00:56:21.785886Z\n
+				The letter Z is the zone designator for the zero UTC offset, and is why UTC is sometimes referred to as Zulu time (Zulu being the name of Z in the phonetic alphabet. T is just a separator between date and time.</string>
+         </map>
+         <key>llGetTorque</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the torque (if the script is physical).\nReturns a vector that is the torque (if the script is physical).</string>
+         </map>
+         <key>llGetUnixTime</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the number of seconds elapsed since 00:00 hours, Jan 1, 1970 UTC from the system clock.\nReturns the number of seconds elapsed since 00:00 hours, Jan 1, 1970 UTC from the system clock.\n
+				In UNIX terms, time_t. This is great for a monotonic source of time that ticks once a second.</string>
+         </map>
+         <key>llGetUsedMemory</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the current used memory for the current script. Non-mono scripts always use 16K.\nReturns the integer of the number of bytes of memory currently in use by the script. Non-mono scripts always use 16K.</string>
+         </map>
+         <key>llGetUsername</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>AvatarID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the single-word user-name of an avatar, if the avatar is in the current region, otherwise the empty string.\nReturns a string that is the unique user-name of the avatar specified.\n
+				AvatarID must specify a valid avatar key present in, or otherwise known to, the region in which the script is running, otherwise an empty string is returned. This function will still return a valid user-name if the avatar is a child agent of the region (i.e., in an adjacent region, but presently able to see into the one the script is in), or for a short period after the avatar leaves the region (specifically, when the client completely disconnects from the region, either as a main or child agent).</string>
+         </map>
+         <key>llGetVel</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the velocity of the object.\nReturns a vector that is the velocity of the object.</string>
+         </map>
+         <key>llGetWallclock</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the time in seconds since midnight California Pacific time (PST/PDT).\nReturns the time in seconds since simulator's time-zone midnight (Pacific Time).</string>
+         </map>
+         <key>llGiveInventory</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>TargetID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>InventoryItem</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Give InventoryItem to destination represented by TargetID.\nGive the named inventory item to the avatar or object in the same simulator as the giver.\n
+			If the recipient is an avatar, the avatar then follows the normal procedure of accepting or denying the offer. If the recipient is an object, the same permissions apply as if you were dragging inventory onto the object by hand, i.e. if llAllowInventoryDrop has been called with TRUE, any other object can pass objects to its inventory.</string>
+         </map>
+         <key>llGiveInventoryList</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>3.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>TargetID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>FolderName</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>InventoryItems</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Give InventoryItems to destination (represented by TargetID) as a new folder of items.\nGive the list of named inventory items to the keyed avatar or object in the same simulator as the giver.\n
+			If the recipient is an avatar, the avatar then follows the normal procedure of accepting or denying the offer. The offered inventory is then placed in a folder named category in the recipients inventory.\n
+			If the recipient is an object, the same permissions apply as if you were dragging inventory onto the object by hand, i.e. if llAllowInventoryDrop has been called with TRUE, any other object can pass objects to its inventory. If the recipient is an object, the sFolderName parameter is ignored.</string>
+         </map>
+         <key>llGiveMoney</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>AvatarID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Amount</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Transfers Amount of L from script owner to AvatarID.\nTransfer Amount from the script owner to AvatarID.\n
+				This call will (silently) fail if PERMISSION_DEBIT has not been set.</string>
+         </map>
+         <key>llGodLikeRezObject</key>
+         <map>
+            <key>god-mode</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>InventoryItemID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Position</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Rez directly off of a UUID if owner has dog-bit set.</string>
+         </map>
+         <key>llGround</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <map>
+               <key>Offset</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the ground height at the object position + offset.\nReturns the ground height at the object's position + Offset.</string>
+         </map>
+         <key>llGroundContour</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <map>
+               <key>Offset</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the ground contour direction below the object position + Offset.\nReturns the ground contour at the object's position + Offset.</string>
+         </map>
+         <key>llGroundNormal</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <map>
+               <key>Offset</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the ground normal below the object position + offset.\nReturns the ground contour at the object's position + Offset.</string>
+         </map>
+         <key>llGroundRepel</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Height</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Water</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Tau</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Critically damps to height if within height * 0.5 of level (either above ground level or above the higher of land and water if water == TRUE).\nCritically damps to fHeight if within fHeight * 0.5 of ground or water level.\n
+				The height is above ground level if iWater is FALSE or above the higher of land and water if iWater is TRUE.\n
+				Do not use with vehicles. Only works in physics-enabled objects.</string>
+         </map>
+         <key>llGroundSlope</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <map>
+               <key>Offset</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the ground slope below the object position + Offset.\nReturns the ground slope at the object position + Offset.</string>
+         </map>
+         <key>llHTTPRequest</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <map>
+               <key>URL</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Parameters</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Body</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sends an HTTP request to the specified URL with the Body of the request and Parameters.\nSends an HTTP request to URL with the specified body and parameters.\n
+				Returns a key that is a handle identifying the HTTP request made.</string>
+         </map>
+         <key>llHTTPResponse</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>HTTPRequestID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Status</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Body</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Responds to HTTPRequestID with Status and Body.\nResponds to HTTPRequestID with Status code and Body.</string>
+         </map>
+         <key>llInsertString</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>TargetVariable</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Position</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>SourceVariable</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Inserts SourceVariable into TargetVariable at Position, and returns the result.\nInserts SourceVariable into TargetVariable at Position and returns the result. Note this does not alter TargetVariable.</string>
+         </map>
+         <key>llInstantMessage</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>2.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>AvatarID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>IMs Text to the user identified.\nSend Text to the user as an instant message.</string>
+         </map>
+         <key>llIntegerToBase64</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>Value</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns a string that is a Base64 big endian encode of Value.\nEncodes the Value as an 8-character Base64 string.</string>
+         </map>
+         <key>llJson2List</key>
+         <map>
+            <key>energy</key>
+            <real>0.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <map>
+               <key>JSON</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Converts the top level of the JSON string to a list.</string>
+         </map>
+         <key>llJsonGetValue</key>
+         <map>
+            <key>energy</key>
+            <real>0.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>JSON</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Specifiers</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Gets the value indicated by Specifiers from the JSON string.</string>
+         </map>
+         <key>llJsonSetValue</key>
+         <map>
+            <key>energy</key>
+            <real>0.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>JSON</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Specifiers</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Value</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns a new JSON string that is the JSON given with the Value indicated by Specifiers set to Value.</string>
+         </map>
+         <key>llJsonValueType</key>
+         <map>
+            <key>energy</key>
+            <real>0.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>JSON</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Specifiers</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the type constant (JSON_*) for the value in JSON indicated by Specifiers.</string>
+         </map>
+         <key>llKey2Name</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>ID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the name of the prim or avatar specified by ID. The ID must be a valid rezzed prim or avatar key in the current simulator, otherwise an empty string is returned.\nReturns the name of a rezzed prim or avatar, present in or otherwise known, to the region in which the script is running. If the key is invalid (not in region, or not a prim or avatar's key), returns an empty string.</string>
+         </map>
+         <key>llLinkParticleSystem</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>LinkNumber</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Rules</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Creates a particle system based on Rules. An empty list removes a particle system from object.\n
+				List format is [ rule-1, data-1, rule-2, data-2 ... rule-n, data-n ].\nA particle system defined by a list of rules is set for the prim(s) link. This is identical to llParticleSystem except that it applies to a specified linked prim and not just the prim the script is in.</string>
+         </map>
+         <key>llLinkSitTarget</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>LinkNumber</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Offset</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Rotation</key>
+               <map>
+                  <key>type</key>
+                  <string>rotation</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Set the sit location for the linked prim(s). If Offset == &lt;0,0,0&gt; clear it.\nSet the sit location for the linked prim(s). The sit location is relative to the prim's position and rotation.</string>
+         </map>
+         <key>llList2CSV</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>ListVariable</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Creates a string of comma separated values from the list.\nCreate a string of comma separated values from the specified list.</string>
+         </map>
+         <key>llList2Float</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <map>
+               <key>ListVariable</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Index</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Copies the float at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to a float, then zero is returned.</string>
+         </map>
+         <key>llList2Integer</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>ListVariable</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Index</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Copies the integer at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to an integer, then zero is returned.</string>
+         </map>
+         <key>llList2Json</key>
+         <map>
+            <key>energy</key>
+            <real>0</real>
+            <key>sleep</key>
+            <real>0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>JsonType</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Values</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Converts either a strided list of key:value pairs to a JSON_OBJECT, or a list of values to a JSON_ARRAY.</string>
+         </map>
+         <key>llList2Key</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <map>
+               <key>ListVariable</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Index</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Copies the key at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to a key, then null string is returned.</string>
+         </map>
+         <key>llList2List</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <map>
+               <key>ListVariable</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Start</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>End</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Copies the slice of the list from Start to End.\nReturns the slice of the list from start to end from the list as a new list. The start and end parameters are inclusive.\n
+				Using negative numbers for start and/or end causes the index to count backwards from the length of the list, so 0, -1 would capture the entire list.\n
+				If start is larger than end the list returned is the exclusion of the entries, so 6, 4 would give the entire list except for the 5th. entry.</string>
+         </map>
+         <key>llList2ListStrided</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <map>
+               <key>ListVariable</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Start</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>End</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Stride</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Copies the strided slice of the list from Start to End.\nReturns a copy of the strided slice of the specified list from Start to End.</string>
+         </map>
+         <key>llList2Rot</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>rotation</string>
+            <key>arguments</key>
+            <map>
+               <key>ListVariable</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Index</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Copies the rotation at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to rotation, thenZERO_ROTATION is returned.</string>
+         </map>
+         <key>llList2String</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>ListVariable</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Index</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Copies the string at Index in the list.\nReturns the value at Index in the specified list as a string. If Index describes a location not in the list then null string is returned.</string>
+         </map>
+         <key>llList2Vector</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <map>
+               <key>ListVariable</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Index</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Copies the vector at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to a vector, then ZERO_VECTOR is returned.</string>
+         </map>
+         <key>llListen</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>Channel</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>SpeakersName</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>SpeakersID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets a callback for Text on Channel from SpeakersName and SpeakersID (SpeakersName, SpeakersID, and/or Text can be empty) and returns an identifier that can be used to deactivate or remove the listen.\nSets a listen event callback on the specified channel. Specifying values for speakername, speakerID, and message will filter the results accordingly, which is advisable or your listen event will respond to every thing said on the channel potentially causing a great deal of lag.\n
+				Returns an identifier that can be used to deactivate or remove the listen. The name, id and/or msg parameters\n
+				Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 to 2,147,483,648 are hidden channels that are not sent to avatars.</string>
+         </map>
+         <key>llListenControl</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>ChannelHandle</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Active</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Makes a listen event callback active or inactive.\nMake a listen event callback active or inactive. Pass in the value returned from llListen to the iChannelHandle parameter to specify which event you are controlling.\n
+				Use boolean values to specify Active</string>
+         </map>
+         <key>llListenRemove</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>ChannelHandle</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Removes listen event callback number.\nRemoves a listen event callback. Pass in the value returned from llListen to the iChannelHandle parameter to specify which event to remove.</string>
+         </map>
+         <key>llListFindList</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>ListVariable</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Find</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the index of the first instance of Find in ListVariable. Returns -1 if not found.\nReturns the position of the first instance of the Find list in the ListVariable. Returns -1 if not found.</string>
+         </map>
+         <key>llListInsertList</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <map>
+               <key>Target</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>ListVariable</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Position</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns a list that contains all the elements from Target but with the elements from ListVariable inserted at Position start.\nReturns a new list, created by inserting ListVariable into the Target list at Position. Note this does not alter the Target.</string>
+         </map>
+         <key>llListRandomize</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <map>
+               <key>ListVariable</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Stride</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns a randomized list of blocks of size Stride.\nReturns the specified list randomized into blocks of size stride.\n
+				If the remainder from the length of the list, divided by the stride is non-zero, this function does not randomize the list.</string>
+         </map>
+         <key>llListReplaceList</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <map>
+               <key>Target</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>ListVariable</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Start</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>End</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns a list that is Target with Start through End removed and ListVariable inserted at Start.\nReturns a list replacing the slice of the Target list from Start to End with the specified ListVariable. Start and End are inclusive, so 0, 1 would replace the first two entries and 0, 0 would replace only the first list entry.</string>
+         </map>
+         <key>llListSort</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <map>
+               <key>ListVariable</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Stride</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Ascending</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sorts the list into blocks of stride, in Ascending order if Ascending == TRUE. The sort order is affected by type.\nReturns the specified list, sorted into blocks of stride in ascending order (if Ascending is TRUE, otherwise descending). Note that sort only works if the first entry of each block is the same type.</string>
+         </map>
+         <key>llListStatistics</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <map>
+               <key>Operation</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>ListVariable</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Performs statistical aggregate functions on ListVariable using LIST_STAT_* Operations.\nThis function allows a script to perform a statistical operation as defined by operation on a list composed of integers and floats.</string>
+         </map>
+         <key>llLoadURL</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>AvatarID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>URL</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Shows dialog to avatar AvatarID offering to load web page at URL.	If user clicks yes, launches their web browser.\nllLoadURL displays a dialogue box to the user, offering to load the specified web page using the default web browser.</string>
+         </map>
+         <key>llLog</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <map>
+               <key>Value</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the natural logarithm of Value. Returns zero if Value &lt;= 0.\nReturns the base e (natural) logarithm of the specified Value.</string>
+         </map>
+         <key>llLog10</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <map>
+               <key>Value</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the base 10 logarithm of Value. Returns zero if Value &lt;= 0.\nReturns the base 10 (common) logarithm of the specified Value.</string>
+         </map>
+         <key>llLookAt</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Target</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Strength</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Damping</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Cause object name to point it's forward axis towards Target.\nCause object to point the forward axis toward Target.\n
+				Good Strength values are around half the mass of the object and good Damping values are less than 1/10th of the Strength.\n
+				Asymmetrical shapes require smaller Damping. A Strength of 0.0 cancels the look at.</string>
+         </map>
+         <key>llLoopSound</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Sound</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Volume</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Plays attached Sound, looping indefinitely, at Volume (0.0 - 1.0).\nSimilar to llPlaySound, this function plays a sound attached to an object, but will continuously repeat that sound until llStopSound or llPlaySound is called.\n
+			Only one sound may be attached to an object at a time. A second call to llLoopSound with the same key will not restart the sound, but the new volume will be used. This allows control over the volume of already playing sounds.\n
+			Setting the volume to 0 is not the same as calling llStopSound; a sound with 0 volume will continue to loop.\n
+			To restart the sound from the beginning, call llStopSound before calling llLoopSound again.</string>
+         </map>
+         <key>llLoopSoundMaster</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Sound</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Volume</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Plays attached Sound, looping at volume (0.0 - 1.0), and declares it a sync master.\nBehaviour is identical to llLoopSound, with the addition of marking the source as a "Sync Master", causing "Slave" sounds to sync to it. If there are multiple masters within a viewers interest area, the most audible one (a function of both distance and volume) will win out as the master.\n
+				The use of multiple masters within a small area is unlikely to produce the desired effect.</string>
+         </map>
+         <key>llLoopSoundSlave</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Sound</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Volume</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Plays attached sound looping at volume (0.0 - 1.0), synced to most audible sync master.\nBehaviour is identical to llLoopSound, unless there is a "Sync Master" present.\n
+				If a Sync Master is already playing the Slave sound will begin playing from the same point the master is in its loop synchronizing the loop points of both sounds.\n
+				If a Sync Master is started when the Slave is already playing, the Slave will skip to the correct position to sync with the Master.</string>
+         </map>
+         <key>llMakeExplosion</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.1</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Particles</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Scale</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Velocity</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Lifetime</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Arc</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Texture</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Offset</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Make a round explosion of particles. Deprecated: Use llParticleSystem instead.\nMake a round explosion of particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.</string>
+         </map>
+         <key>llMakeFire</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.1</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Particles</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Scale</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Velocity</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Lifetime</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Arc</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Texture</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Offset</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Make fire like particles. Deprecated: Use llParticleSystem instead.\nMake fire particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.</string>
+         </map>
+         <key>llMakeFountain</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.1</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Particles</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Scale</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Velocity</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Lifetime</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Arc</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Texture</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Offset</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Make a fountain of particles. Deprecated: Use llParticleSystem instead.\nMake a fountain of particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.</string>
+         </map>
+         <key>llMakeSmoke</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.1</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Particles</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Scale</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Velocity</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Lifetime</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Arc</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Texture</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Offset</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Make smoke like particles. Deprecated: Use llParticleSystem instead.\nMake smoky particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.</string>
+         </map>
+         <key>llManageEstateAccess</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>Action</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>AvatarID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Use to add or remove agents from the estate's agent access or ban lists or groups from the estate's group access list.\nUse to add or remove agents from the estate's agent access or ban lists or groups from the estate's group access list.\n
+			Returns an integer representing a boolean, TRUE if the call was successful; FALSE if throttled, invalid action, invalid or null id or object owner is not allowed to manage the estate.</string>
+         </map>
+         <key>llMapDestination</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>1.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>RegionName</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Position</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Direction</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Opens world map centred on region with Position highlighted. Only works for scripts attached to avatar, or during touch events. NOTE: Direction currently does nothing.\nShows a given location on the map, opening the map window whenever it is called.\n
+				There is no way to simply set the map position without opening the window.\n
+				Only works in attachments, or during touch events.</string>
+         </map>
+         <key>llMD5String</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Nonce</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns a string of 32 hex characters that is an RSA Data Security Inc., MD5 Message-Digest Algorithm of Text with Nonce.\nPerforms an RSA Data Security, Inc. MD5 Message-Digest Algorithm on the specified string using the nonce (also known as salt).\n
+				Returns a 32-character hex string. (128-bit in binary.)</string>
+         </map>
+         <key>llMessageLinked</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>LinkNumber</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Number</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>ID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sends Number, Text, and ID to members of the link set identified by LinkNumber (LINK_ROOT sends to root task in a linked set, LINK_SET sends to all tasks, LINK_ALL_OTHERS to all other tasks, LINK_ALL_CHILDREN to all children, LINK_THIS to the task the script it is in).\nSends the specified number, string, and key to members of the link set.\n
+				The LinkNumber parameter is either a linked number available through llGetLinkNumber or a LINK_* constant.</string>
+         </map>
+         <key>llMinEventDelay</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Delay</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Set the minimum time between events being handled.</string>
+         </map>
+         <key>llModifyLand</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Action</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Area</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Modify land with action (LAND_LEVEL, LAND_RAISE, LAND_LOWER, LAND_SMOOTH, LAND_NOISE, LAND_REVERT) on size (LAND_SMALL_BRUSH, LAND_MEDIUM_BRUSH, LAND_LARGE_BRUSH).\nModify land with action on size area. The parameters can be chosen from the land constants.</string>
+         </map>
+         <key>llModPow</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>1.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>Value</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Power</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Modulus</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns a Value raised to the Power, mod Modulus. ((a**b)%c) b is capped at 0xFFFF (16 bits).\nReturns (Value ^ Power) % Modulus. (Value raised to the Power, Modulus). Value is capped at 0xFFFF (16 bits).</string>
+         </map>
+         <key>llMoveToTarget</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Target</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Tau</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Critically damp to Target in Tau seconds (if the script is physical).\nCritically damp to position target in tau-seconds if the script is physical. Good tau-values are greater than 0.2. A tau of 0.0 stops the critical damping.</string>
+         </map>
+         <key>llNavigateTo</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Location</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Options</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Navigate to destination.\nDirects an object to travel to a defined position in the region or adjacent regions.</string>
+         </map>
+         <key>llOffsetTexture</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.2</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>OffsetS</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>OffsetT</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Face</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the texture S and T offsets for the chosen Face.\nSets the texture s and t offsets of face.\n
+			If Face is ALL_SIDES this function sets the texture offsets for all faces.</string>
+         </map>
+         <key>llOpenRemoteDataChannel</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>1.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Requests a channel to listen for XML-RPC calls. Will trigger a remote_data event with channel ID once it is available.\nRequests a channel to listen for XML-RPC calls. (Deprecated: XML-RPC should not be used. Use http-in instead.)\n
+				Will trigger a remote_data event with type = REMOTE_DATA_CHANNEL and a channel ID (key) once it is available.\n
+				This channel ID must be referenced in the XML-RPC call to the script (from the internet) -- so the key must somehow get to the scripter's XML-RPC client, most often via llEmail, llHttpRequest or llLoadUrl.</string>
+         </map>
+         <key>llOverMyLand</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>ID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns TRUE if id ID over land owned by the script owner, otherwise FALSE.\nReturns TRUE if key ID is over land owned by the object owner, FALSE otherwise.</string>
+         </map>
+         <key>llOwnerSay</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>says Text to owner only (if owner is in region).\nSays Text to the owner of the object running the script, if the owner has been within the object's simulator since logging into Second Life, regardless of where they may be in-world.</string>
+         </map>
+         <key>llParcelMediaCommandList</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>2.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>CommandList</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sends a list of commands, some with arguments, to a parcel.\nControls the playback of multimedia resources on a parcel or for an agent.</string>
+         </map>
+         <key>llParcelMediaQuery</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>2.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <map>
+               <key>QueryList</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns a list containing results of the sent query.\nQueries the texture and/or URL for QuickTime-playable video on the land parcel.\n
+				This function will only work if the script is contained within an object owned by the land-owner (or if the land is owned by a group, only if the object has been deeded to the group). It will not work for group land if the object owner is a member of the group. The object actually has to be owned by the group.</string>
+         </map>
+         <key>llParseString2List</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Separators</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Spacers</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Breaks Text into a list, discarding Separators, keeping Spacers (Separators and Spacers must be lists of strings, maximum of 8 each).\nBreaks the Text into a list using Separators and Spacers to delimit entries. Separators are discarded, while Spacers are kept. Any empty entries are ignored.\n
+				The separators and spacers must be lists of strings with a maximum of 8 entries each. So, if you had made the call:\n
+				llParseString2List("Parsethisnow! I dare:you to.", ["this", "!", " "], [":"]);\n
+				You would get the list: ["Parse", "now", "I", "dare", ":", "you", "to"].</string>
+         </map>
+         <key>llParseStringKeepNulls</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Separators</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Spacers</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Breaks Text into a list, discarding separators, keeping spacers, keeping any null values generated. (separators and spacers must be lists of strings, maximum of 8 each).\nllParseStringKeepNulls works almost exactly like llParseString2List, except that if a null is found it will add a null-string instead of discarding it like llParseString2List does.</string>
+         </map>
+         <key>llParticleSystem</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Parameters</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Creates a particle system based on Parameters.	An empty list removes particle system from object.
+				List format is [ rule-1, data-1, rule-2, data-2 . . . rule-n, data-n ].\nMakes a particle system based on the parameter list.\n
+				The parameters are specified as an ordered list of parameter and value. Valid parameters and their expected values can be found in the particle system constants.\n
+				Here is a simple example:\n
+				llParticleSystem([PSYS_PART_FLAGS, PSYS_PART_WIND_MASK, PSYS_PART_START_COLOR, &lt;1, 0, 0&gt;, PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_EXPLODE]);</string>
+         </map>
+         <key>llPassCollisions</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Pass</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>If Pass == TRUE, collisions are passed from children on to parents (default is FALSE).\nIf pass is TRUE, land and object collisions are passed from children on to parents.\n
+				The default is FALSE if there is no script to handle the collision events.</string>
+         </map>
+         <key>llPassTouches</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Pass</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>If pass == TRUE, touches are passed from children on to parents (default is FALSE).\nIf pass is TRUE, touches are passed from children on to parents.\n
+				The default is TRUE if there is no script to handle the touch events.</string>
+         </map>
+         <key>llPatrolPoints</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Points</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Options</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Patrol a list of points.\nSets the points for a character (llCreateCharacter) to patrol along.</string>
+         </map>
+         <key>llPlaySound</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Sound</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Volume</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Plays attached Sound once, at Volume (0.0 - 1.0).\nPlays a sound once. The sound will be attached to the object and follow object's movement. Only one sound may be attached to an object at a time, and attaching a new sound or calling llStopSound will stop the previously attached sound.\n
+				A second call to llPlaySound with the same sound will not restart the sound, but the new volume will be used, which allows control over the volume of already playing sounds.\n
+				To restart the sound from the beginning, call llStopSound before calling llPlaySound again.</string>
+         </map>
+         <key>llPlaySoundSlave</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Sound</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Volume</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Plays attached Sound once, at Volume (0.0 - 1.0), synced to next loop of most audible sync master.\nBehaviour is identical to llPlaySound, unless there is a "Sync Master" present. If a Sync Master is already playing, the Slave sound will not be played until the Master hits its loop point and returns to the beginning.\n
+				llPlaySoundSlave will play the sound exactly once; if it is desired to have the sound play every time the Master loops, either use llLoopSoundSlave with extra silence padded on the end of the sound or ensure that llPlaySoundSlave is called at least once per loop of the Master.</string>
+         </map>
+         <key>llPow</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Value</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Exponent</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the Value raised to the power Exponent, or returns 0 and triggers Math Error for imaginary results.\nReturns the Value raised to the Exponent.</string>
+         </map>
+         <key>llPreloadSound</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>1.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Sound</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Preloads a sound on viewers within range.\nCauses nearby viewers to preload the Sound from the object's inventory. This is intended to prevent delays in starting new sounds when called upon.</string>
+         </map>
+         <key>llPursue</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>TargetID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Options</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Chase after a target.\nCauses the character (llCharacter) to pursue the target defined by TargetID.</string>
+         </map>
+         <key>llPushObject</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>ObjectID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Impulse</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>AngularImpulse</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Local</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Applies Impulse and AngularImpulse to ObjectID.\nApplies the supplied impulse and angular impulse to the object specified.</string>
+         </map>
+         <key>llRefreshPrimURL</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>20.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Reloads the web page shown on the sides of the object.</string>
+         </map>
+         <key>llRegionSay</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Channel</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Broadcasts Text to entire region on Channel (not 0.).\nSays the Text on the specified non-zero Channel, so that it can be heard anywhere in the region by a script listening on that channel.</string>
+         </map>
+         <key>llRegionSayTo</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>TargetID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Channel</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Says Text, on Channel, to avatar or object indicated by TargetID (if within region).\nSays the Text on the supplied channel number, to the object or avatar specified.</string>
+         </map>
+         <key>llReleaseCamera</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>AvatarID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Return camera to agent.\nDeprecated: Use llClearCameraParams instead.</string>
+         </map>
+         <key>llReleaseControls</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Stop taking inputs.\nStop taking inputs from the avatar.</string>
+         </map>
+         <key>llReleaseURL</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>URL</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Releases the specified URL, it will no longer be usable.</string>
+         </map>
+         <key>llRemoteDataReply</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>3.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>ChannelID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>MessageID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Data</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Data</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Send an XML-RPC reply to MessageID on ChannelID with payload of string sData and integer iData. Deprecated: Use HTTP functions/events instead.\nDeprecated: Use HTTP functions/events instead.\n
+				Send an XML-RPC reply to the request with kMessageID on kChannelID with payload of string sData and integer iData.\n
+				The size of sData is limited to 254 characters.</string>
+         </map>
+         <key>llRemoteDataSetRegion</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Deprecated: Use HTTP functions/events instead.\n
+				If an object using remote data channels changes regions, you must call this function to re-register the remote data channels.
+				You do not need to make this call if you don't change regions.\nDeprecated: Use HTTP functions/events instead.\n
+				Does not work! Use llOpenRemoteDataChannel instead.</string>
+         </map>
+         <key>llRemoteLoadScriptPin</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>3.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>ObjectID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>ScriptName</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>PIN</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Running</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>StartParameter</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>If the owner of the object this script is attached to can modify ObjectID, they are in the same region, and the matching PIN is used, copy ScriptName into target, if Running == TRUE, start the script with StartParameter.\nIf the owner of the object containing this script can modify the object identified by the specified object key, and if the PIN matches the PIN previously set using llSetRemoteScriptAccessPin (on the target prim), then the script will be copied into target.</string>
+         </map>
+         <key>llRemoveFromLandBanList</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>AvatarID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Remove avatar from the land ban list.\nRemove specified avatar from the land parcel ban list.</string>
+         </map>
+         <key>llRemoveFromLandPassList</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>AvatarID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Remove avatar from the land pass list.\nRemove specified avatar from the land parcel pass list.</string>
+         </map>
+         <key>llRemoveInventory</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>InventoryItem</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Remove the named inventory item.\nRemove the named inventory item from the object inventory.</string>
+         </map>
+         <key>llRemoveVehicleFlags</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Vehiclelags</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Removes the enabled bits in 'flags'.\nSets the vehicle flags to FALSE. Valid parameters can be found in the vehicle flags constants section.</string>
+         </map>
+         <key>llRequestAgentData</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.1</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <map>
+               <key>AvatarID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Data</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Requests data about AvatarID. When data is available the dataserver event will be raised.\nThis function requests data about an avatar. If and when the information is collected, the dataserver event is triggered with the key returned from this function passed in the requested parameter. See the agent data constants (DATA_*) for details about valid values of data and what each will return in the dataserver event.</string>
+         </map>
+         <key>llRequestDisplayName</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <map>
+               <key>AvatarID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Requests name of an avatar. When data is available, the dataserver event will be raised.\nRequests the Display Name of the agent. When the Display Name is available the dataserver event will be raised.\n
+				The avatar identified does not need to be in the same region or online at the time of the request.\n
+				Returns a key that is used to identify the dataserver event when it is raised.</string>
+         </map>
+         <key>llRequestInventoryData</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>1.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <map>
+               <key>InventoryItem</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Requests data from object's inventory object. When data is available the dataserver event will be raised.\nRequests data for the object inventory item named.\n
+				When data is available the dataserver event will be raised with the key returned from this function in the requested parameter.\n
+				The only request currently implemented is to request data from landmarks, where the data returned is in the form "&lt;float, float, float&gt;" which can be cast to a vector. This position is in region local coordinates.</string>
+         </map>
+         <key>llRequestPermissions</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>AvatarID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>PermmissionMask</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Ask AvatarID to allow the script to do PermmissionMask (NB: Debit, ownership, link, joint, and permission requests can only go to the task's owner).\nAsk avatar to allow the script to perform certain actions. The permission flag should be one or more PERMISSION_* constants.\n
+				Multiple permissions can be requested simultaneously by ORing the constants together. Many of the permissions requests can only go to object owner.\n
+				This call will not stop script execution. If the avatar grants the requested permissions, the run_time_permissions event will be called.\n
+				Permissions for a single avatar are granted to a script, not to an object. So multiple scripts can hold permissions for multiple avatars.</string>
+         </map>
+         <key>llRequestSecureURL</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Requests one HTTPS:// (SSL) URL for use by this object. An http_request event is triggered with the results.\nRequests one HTTPS:// (SSL) URL for use by this object. The http_request event is triggered with results.\n
+				Returns a key that is the handle used for identifying the request in the http_request event.</string>
+         </map>
+         <key>llRequestSimulatorData</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>1.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <map>
+               <key>RegionName</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Data</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Requests data about a simulator. When data is available the dataserver event will be raised.\nRequests data about the region named. Data should use one of the DATA_SIM_* constants.\n
+			Returns a dataserver query ID and triggers the dataserver event when data is found. The region name is usually not case-sensitive, but sometimes will return data for a similarly-named region if the supplied case doesn't match the intended region's actual name.</string>
+         </map>
+         <key>llRequestURL</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Requests one HTTP:// URL for use by this object. An http_request event is triggered with the results.\nRequests one HTTP:// URL for use by this script. The http_request event is triggered with the result of the request.\n
+				Returns a key that is the handle used for identifying the result in the http_request event.</string>
+         </map>
+         <key>llRequestUsername</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <map>
+               <key>AvatarID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Requests single-word user-name of an avatar. When data is available the dataserver event will be raised.\nRequests the user-name of the identified agent. When the user-name is available the dataserver event is raised.\nThe agent identified does not need to be in the same region or online at the time of the request.\nReturns a key that is used to identify the dataserver event when it is raised.</string>
+         </map>
+         <key>llResetAnimationOverride</key>
+         <map>
+            <key>energy</key>
+            <real>0</real>
+            <key>sleep</key>
+            <real>0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>AnimationState</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Resets the animation of the specified animation state to the default value.\nIf animation state equals "ALL", then all animation states are reset.</string>
+         </map>
+         <key>llResetLandBanList</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Removes all residents from the land ban list.</string>
+         </map>
+         <key>llResetLandPassList</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Removes all residents from the land access/pass list.</string>
+         </map>
+         <key>llResetOtherScript</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>ScriptName</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Resets the named script.</string>
+         </map>
+         <key>llResetScript</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Resets the script.</string>
+         </map>
+         <key>llResetTime</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Sets the time to zero.\nSets the internal timer to zero.</string>
+         </map>
+         <key>llReturnObjectsByID</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>lObjectIDs</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Return objects using their UUIDs</string>
+         </map>
+         <key>llReturnObjectsByOwner</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>kID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>iScope</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Return objects based upon their owner and a scope of parcel, parcel owner, or region.</string>
+         </map>
+         <key>llRezAtRoot</key>
+         <map>
+            <key>energy</key>
+            <real>200.0</real>
+            <key>sleep</key>
+            <real>0.1</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>InventoryItem</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Position</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Velocity</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Rotation</key>
+               <map>
+                  <key>type</key>
+                  <string>rotation</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>StartParameter</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Instantiate owner's InventoryItem at Position with Velocity, Rotation and with StartParameter. The last selected root object's location will be set to Position.\nCreates object's inventory item at the given Position, with Velocity, Rotation, and StartParameter.</string>
+         </map>
+         <key>llRezObject</key>
+         <map>
+            <key>energy</key>
+            <real>200</real>
+            <key>sleep</key>
+            <real>0.1</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>InventoryItem</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Position</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Velocity</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Rotation</key>
+               <map>
+                  <key>type</key>
+                  <string>rotation</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>StartParameter</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Instantiate owners InventoryItem at Position with Velocity, Rotation and with start StartParameter.\nCreates object's inventory item at Position with Velocity and Rotation supplied. The StartParameter value will be available to the newly created object in the on_rez event or through the llGetStartParameter function.\nThe Velocity parameter is ignored if the rezzed object is not physical.</string>
+         </map>
+         <key>llRot2Angle</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <map>
+               <key>Rotation</key>
+               <map>
+                  <key>type</key>
+                  <string>rotation</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the rotation angle represented by Rotation.\nReturns the angle represented by the Rotation.</string>
+         </map>
+         <key>llRot2Axis</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <map>
+               <key>Rotation</key>
+               <map>
+                  <key>type</key>
+                  <string>rotation</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the rotation axis represented by Rotation.\nReturns the axis represented by the Rotation.</string>
+         </map>
+         <key>llRot2Euler</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <map>
+               <key>Rotation</key>
+               <map>
+                  <key>type</key>
+                  <string>rotation</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the Euler representation (roll, pitch, yaw) of Rotation.\nReturns the Euler Angle representation of the Rotation.</string>
+         </map>
+         <key>llRot2Fwd</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <map>
+               <key>Rotation</key>
+               <map>
+                  <key>type</key>
+                  <string>rotation</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the forward vector defined by Rotation.\nReturns the forward axis represented by the Rotation.</string>
+         </map>
+         <key>llRot2Left</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <map>
+               <key>Rotation</key>
+               <map>
+                  <key>type</key>
+                  <string>rotation</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the left vector defined by Rotation.\nReturns the left axis represented by the Rotation.</string>
+         </map>
+         <key>llRot2Up</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <map>
+               <key>Rotation</key>
+               <map>
+                  <key>type</key>
+                  <string>rotation</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the up vector defined by Rotation.\nReturns the up axis represented by the Rotation.</string>
+         </map>
+         <key>llRotateTexture</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.2</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Radians</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Face</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the texture rotation for the chosen face.\nSets the rotation of the texture on the given side.\n
+				If face is ALL_SIDES, rotates the texture of all sides.</string>
+         </map>
+         <key>llRotBetween</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>rotation</string>
+            <key>arguments</key>
+            <map>
+               <key>Vector1</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Vector2</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the rotation to rotate Vector1 to Vector2.\nReturns the rotation needed to rotate Vector1 to Vector2.</string>
+         </map>
+         <key>llRotLookAt</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Rotation</key>
+               <map>
+                  <key>type</key>
+                  <string>rotation</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Strength</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Damping</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Cause object to point it's forward axis towards Rotation.\nCause object to rotate to Rotation. Good strength values are around half the mass of the object and good damping values are less than 1/10th of the strength.\n
+				Asymmetrical shapes require smaller damping.\n
+				A strength of 0.0 cancels the look at.</string>
+         </map>
+         <key>llRotTarget</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>Rotation</key>
+               <map>
+                  <key>type</key>
+                  <string>rotation</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>LeeWay</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Set rotations with error of LeeWay as a rotational target and return an ID for the rotational target.\nSet object rotation within the given lee way of rotation as a rotational target and return an integer number for the target.\n
+				The returned number is a handle that can be used in llRotTargetRemove.</string>
+         </map>
+         <key>llRotTargetRemove</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Handle</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Removes rotational target number.\nRemove rotational target indicated by the handle.</string>
+         </map>
+         <key>llRound</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>Value</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns Value rounded to the nearest integer.\nReturns the Value rounded to the nearest integer.</string>
+         </map>
+         <key>llSameGroup</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>ID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns TRUE if avatar ID is in the same region and has the same active group, otherwise FALSE.\nReturns TRUE if the object or agent identified is in the same simulator and has the same active group as this object. Otherwise, returns FALSE.</string>
+         </map>
+         <key>llSay</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Channel</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Says Text on Channel.\nSay Text on channel.\n
+			Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 to 2,147,483,648 are private channels that are not sent to avatars but other scripts can listen for through the llListen/listen event system.</string>
+         </map>
+         <key>llScaleTexture</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.2</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Horizontal</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Vertical</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Face</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the texture's S and T scales for the chosen Face.\nSets the Horizontal and Vertical repeats per Face on Face.\n
+				If Face == ALL_SIDES, all sides are set in one call.\n
+				Negative values for horizontal and vertical will flip the texture.</string>
+         </map>
+         <key>llScriptDanger</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>Position</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns TRUE if Position is over public land, sandbox land, land that doesn't allow everyone to edit and build, or land that doesn't allow outside scripts.\nReturns true if the position is over public land, land that doesn't allow everyone to edit and build, or land that doesn't allow outside scripts.</string>
+         </map>
+         <key>llScriptProfiler</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>State</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Enables or disables script profiling options. Currently only supports PROFILE_SCRIPT_MEMORY (Mono only) and PROFILE_NONE.\n
+				MAY SIGNIFICANTLY REDUCE SCRIPT PERFORMANCE!.\nEnables or disables the scripts profiling state.. Currently only supports PROFILE_SCRIPT_MEMORY (Mono only) and PROFILE_NONE.\n
+				MAY SIGNIFICANTLY REDUCE SCRIPT PERFORMANCE!.</string>
+         </map>
+         <key>llSendRemoteData</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>3.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <map>
+               <key>ChannelID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Destination</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Value</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Deprecated: use HTTP instead.\n
+				Sends an XML-RPC request to Destination through ChannelID with payload of ChannelID (in a string), integer Value and string Text.
+				Returns a key that is the message_id for the resulting remote_data events.\nSend an XML-RPC request to the Destination (probably an URL) through the ChannelID, with a payload of ChannelID (in a string), integer Value and string Text.</string>
+         </map>
+         <key>llSensor</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Name</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>ID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Type</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Range</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Arc</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Performs a single scan for Name and ID with Type (AGENT, ACTIVE, PASSIVE, and/or SCRIPTED) within Range meters and Arc radians of forward vector (Name, ID, and/or Type can be empty or 0).\nPerforms a single scan for Name and ID with Type within Range meters and Arc radians of the forward vector.\n
+				Specifying a blank Name or NULL_KEY ID will prevent filtering results for a particular Name or ID. A range of 0.0 does not perform a scan. The Type parameter should be an object type constant value.</string>
+         </map>
+         <key>llSensorRemove</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>removes sensor.\nRemoves the sensor set by llSensorRepeat.</string>
+         </map>
+         <key>llSensorRepeat</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Name</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>ID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Type</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Range</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Arc</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Rate</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets a callback for Name and ID with Type (AGENT, ACTIVE, PASSIVE, and/or SCRIPTED) within Range meters and Arc radians of forward vector (Name, ID, and/or Type can be empty or 0) and repeats every Rate seconds.\nPerforms a repeating sensor scan for Name and ID with Type within Range meters and Arc radians of the forward vector (Name and/or ID can be empty or NULL_KEY).\n
+				A range of 0.0m does not perform a scan. The parameters have the same function as llSensor, except Rate, which defines the number of seconds between repeated scans and subsequent sensor or no_sensor events.</string>
+         </map>
+         <key>llSetAlpha</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Opacity</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Face</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the alpha (opacity) of Face.\nSets the alpha (opacity) value for Face. If Face is ALL_SIDES, sets the alpha for all faces. The alpha value is interpreted as an opacity percentage (1.0 is fully opaque, and 0.2 is mostly transparent). This function will clamp alpha values less than 0.1 to 0.1 and greater than 1.0 to 1.</string>
+         </map>
+         <key>llSetAngularVelocity</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Force</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Local</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets an object's angular velocity, in local coordinates if local == TRUE (if the script is physical).\nApplies angular (rotational) velocity to a physical object. Has no effect on non-physical objects.</string>
+         </map>
+         <key>llSetAnimationOverride</key>
+         <map>
+            <key>energy</key>
+            <real>0</real>
+            <key>sleep</key>
+            <real>0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>AnimationState</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>AnimationName</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the animation (in object inventory) that will play for the given animation state.\nTo use this function the script must obtain the PERMISSION_OVERRIDE_ANIMATIONS permission.</string>
+         </map>
+         <key>llSetBuoyancy</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Buoyancy</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Set the tasks buoyancy (0 is none, &lt; 1.0 sinks, 1.0 floats, &gt; 1.0 rises).\nSet the object buoyancy. A value of 0 is none, less than 1.0 sinks, 1.0 floats, and greater than 1.0 rises.</string>
+         </map>
+         <key>llSetCameraAtOffset</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Offset</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the camera used in this object, at offset, if an avatar sits on it.\nSets the offset that an avatar's camera will be moved to if the avatar sits on the object.</string>
+         </map>
+         <key>llSetCameraEyeOffset</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Offset</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the camera eye offset used in this object if an avatar sits on it.</string>
+         </map>
+         <key>llSetCameraParams</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Parameters</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets multiple camera parameters at once. List format is [ rule-1, data-1, rule-2, data-2 . . . rule-n, data-n ].\nSets multiple camera parameters at once.\n
+				List format is [rule-1, value-1, rule-2, value-2 ... rule-N, value-N]</string>
+         </map>
+         <key>llSetClickAction</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Action</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the action performed when a prim is clicked upon.</string>
+         </map>
+         <key>llSetColor</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Colour</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Face</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the color, for the face.\nSets the colour of the side specified. If Face is ALL_SIDES, sets the colour on all faces.</string>
+         </map>
+         <key>llSetContentType</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>HTTPRequestID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>ContentType</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Set the media type of an LSL HTTP server response.</string>
+         </map>
+         <key>llSetDamage</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Damage</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the amount of damage that will be done to an avatar that this task hits.	Task will be killed.\nSets the amount of damage that will be done to an avatar that this object hits. This object will be destroyed on damaging an avatar, and no collision event is triggered.</string>
+         </map>
+         <key>llSetForce</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Force</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Local</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets Force on object, in local coordinates if Local == TRUE (if the script is physical).\nIf the object is physical, this function sets the force.\n
+				The vector is in local coordinates if local is TRUE, global if FALSE.</string>
+         </map>
+         <key>llSetForceAndTorque</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Force</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Torque</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Local</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the Force and Torque of object, in local coordinates if Local == TRUE (if the script is physical).\nIf the object is physical, this function sets the Force and Torque. The vectors are in local coordinates if Local is TRUE, global if FALSE.</string>
+         </map>
+         <key>llSetHoverHeight</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Height</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Water</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Tau</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Critically damps to a Height (either above ground level or above the higher of land and water if water == TRUE).\nCritically damps to a Height. The height is above ground and water (which ever is greater) if water is TRUE. Only works with physics-enabled objects.\n
+				Do not use with vehicles. Use llStopHover to stop hovering.</string>
+         </map>
+         <key>llSetInventoryPermMask</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>InventoryItem</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>PermissionFlag</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>PermissionMask</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the given permission mask to the new value on the inventory item.</string>
+         </map>
+         <key>llSetKeyframedMotion</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Keyframes</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Options</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Requests that a non-physical object be key-framed according to key-frame list.\nSpecify a list of times, positions, and orientations to be followed by an object. The object will be smoothly moved between key-frames by the simulator. Collisions with other non-physical or key-framed objects will be ignored (no script events will fire and collision processing will not occur). Collisions with physical objects will be computed and reported, but the key-framed object will be unaffected by those collisions.</string>
+         </map>
+         <key>llSetLinkAlpha</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>LinkNumber</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Opacity</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Face</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>If a prim exists in the link chain at LinkNumber, set Face to Opacity.\nSets the Face, on the linked prim specified, to the Opacity.</string>
+         </map>
+         <key>llSetLinkCamera</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>LinkNumber</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>EyeOffset</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>LookOffset</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the camera eye offset, and the offset that camera is looking at, for avatars that sit on the linked prim.</string>
+         </map>
+         <key>llSetLinkColor</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>LinkNumber</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Colour</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Face</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>If a task exists in the link chain at LinkNumber, set the Face to color.\nSets the colour of the linked child's side, specified by LinkNumber.</string>
+         </map>
+         <key>llSetLinkMedia</key>
+         <map>
+            <key>energy</key>
+            <real>0.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>Link</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Face</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Parameters</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Set the media parameters for a particular face on linked prim.	Parameters is a list of name/value pairs (in no particular order). If media is not already on this object, add it. Parameters not specified are unchanged, or if new media is added set to the default specified.\nSet the media parameters for a particular face on the linked prim(s) without a delay.\n
+				Returns an integer that is a STATUS_* flag which details the success/failure of the operation(s).</string>
+         </map>
+         <key>llSetLinkPrimitiveParams</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.2</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>LinkNumber</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Parameters</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Set primitive parameters for LinkNumber based on Parameters.\nSets the parameters (or properties) of any linked prim in one step.</string>
+         </map>
+         <key>llSetLinkPrimitiveParamsFast</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>LinkNumber</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Parameters</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Set primitive parameters for LinkNumber based on Parameters, without a delay.\nSet parameters for link number, from the list of Parameters, with no built-in script sleep. This function is identical to llSetLinkPrimitiveParams, except without the delay.</string>
+         </map>
+         <key>llSetLinkTexture</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.2</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>LinkNumber</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Texture</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Face</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the Texture of Face for LinkNumber.\nSets the Texture of linked prims.</string>
+         </map>
+         <key>llSetLinkTextureAnim</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>LinkNumber</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Mode</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Face</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>SizeX</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>SizeY</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Start</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Length</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Rate</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Animate the texture on the specified prim's face/faces.\nAnimate the texture on the specified face/faces of the specified prim/prims by setting the texture scale and offset.\n
+				Identical to llSetTextureAnim except able to modify any prim in the link set.</string>
+         </map>
+         <key>llSetLocalRot</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.2</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Rotation</key>
+               <map>
+                  <key>type</key>
+                  <string>rotation</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the rotation of a child prim relative to the root prim.</string>
+         </map>
+         <key>llSetMemoryLimit</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>Limit</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Request Limit bytes to be reserved for this script. This function has no effect if the script is running in the LSO VM.\nRequest Limit bytes to be reserved for this script. This function has no effect if the script is running in the LSO VM.\n
+				Return TRUE or FALSE indicating whether the limit was set successfully.</string>
+         </map>
+         <key>llSetObjectDesc</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Description</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the object's description.\nSets the description of the scripted prim. You can get the description using llGetObjectDesc.\n
+				The description is limited to 127 characters.</string>
+         </map>
+         <key>llSetObjectName</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Name</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the object's name.</string>
+         </map>
+         <key>llSetObjectPermMask</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>PermissionFlag</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>PermissionMask</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the given permission mask to the new value on the root object the task is attached to.</string>
+         </map>
+         <key>llSetParcelMusicURL</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>2.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>URL</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the streaming audio URL for the parcel object is on.\nSets the streaming audio URL for the parcel the scripted object is on (the object must be owned by the owner of the parcel, if the parcel is group owned the object must be owned by that group).</string>
+         </map>
+         <key>llSetPayPrice</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Price</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>QuickButtons</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the default amount when someone chooses to pay this object.\nSets the values of the buttons and the text box default for the Pay dialogue, when a user right-clicks on the object and selects "Pay".\n
+				llSetPayPrice will affect what buttons exist, what their values are, and whether or not there is a manual payment text entry box.</string>
+         </map>
+         <key>llSetPhysicsMaterial</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>MaterialBits</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>GravityMultiplier</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Restitution</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Friction</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Density</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the requested attributes of the root object's physics material.</string>
+         </map>
+         <key>llSetPos</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.2</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Position</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the position (if the script isn't physical).\nIf the object is not physical, this function sets the position in region coordinates. If the object is a child prim, the position is treated as root relative and the link-set is adjusted.</string>
+         </map>
+         <key>llSetPrimitiveParams</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.2</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Parameters</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Set primitive parameters.\nThis function changes the many properties (or "parameters") of a prim in one operation. The Parameters are a list of changes.</string>
+         </map>
+         <key>llSetPrimMediaParams</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.1</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>Face</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>MediaParameters</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the MediaParameters for a particular Face on an object. If media is not already on this object, add it.
+				MediaParameters is a set of name/value pairs in no particular order. Parameters not specified are unchanged, or if new media is added then set to the default specified.\nSet the MediaParameters for a particular face.\n
+				Returns an integer that is a STATUS_* flag which details the success/failure of the operation(s).</string>
+         </map>
+         <key>llSetPrimURL</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>20.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>URL</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Deprecated: Use llSetPrimMediaParams instead.\nDeprecated: Use llSetPrimMediaParams instead. Updates the URL for the web page shown on the sides of the object.</string>
+         </map>
+         <key>llSetRegionPos</key>
+         <map>
+            <key>energy</key>
+            <real>0.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>Position</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the Position anywhere within the region (if the object isn't physical).\nTries to moves the entire object so that the root prim is within 0.1m of Position.\n
+				Returns an integer boolean, TRUE if the object is successfully placed within 0.1 m of Position, FALSE otherwise.\n
+				The object with the script will move the root prim position to the given location. The position is any position within the region. If the position is below ground, it will be set to the ground level at that x,y location. The function has no delay or throttle.</string>
+         </map>
+         <key>llSetRemoteScriptAccessPin</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.2</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>PIN</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>If PIN is set to a non-zero number, the task will accept remote script loads via llRemoteLoadScriptPin if it passes in the correct PIN. Othersise, llRemoteLoadScriptPin is ignored.\nIf PIN is set to a non-zero number, the task will accept remote script loads via llRemoteLoadScriptPin if passed the matching PIN. Otherwise llRemoteLoadScriptPin is ignored</string>
+         </map>
+         <key>llSetRot</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.2</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Rotation</key>
+               <map>
+                  <key>type</key>
+                  <string>rotation</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the rotation (if the script isn't physical).\nIf the object is not physical, this function sets the rotation.\n
+				If the script is in a child prim, the position is treated as root relative and the linked set is adjusted.</string>
+         </map>
+         <key>llSetScale</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Scale</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the scale.\nSets the prim's scale (size).</string>
+         </map>
+         <key>llSetScriptState</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>ScriptName</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Running</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Control the state of a named script.\nControl the state of a script in the prim.</string>
+         </map>
+         <key>llSetSitText</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Displays Text rather than "Sit" in context menu.\nDisplays Text rather than 'Sit' in the viewer's menu.</string>
+         </map>
+         <key>llSetSoundQueueing</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>QueueEnable</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Determines whether attached sound calls wait for the current sound to finish (0 = no [default], non-zero = yes).\nSets whether successive calls to llPlaySound, llLoopSound, etc., (attached sounds) interrupt the playing sound.\n
+				The default for objects is FALSE. Setting this value to TRUE will make the sound wait until the current playing sound reaches its end. The queue is one level deep.</string>
+         </map>
+         <key>llSetSoundRadius</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Radius</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Establishes a hard cut-off radius for audibility of scripted sounds (both attached and triggered).</string>
+         </map>
+         <key>llSetStatus</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Status</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Value</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets status (STATUS_PHYSICS, STATUS_PHANTOM, STATUS_BLOCK_GRAB, STATUS_ROTATE_X, STATUS_ROTATE_Y, and/or STATUS_ROTATE_Z) to value.\nSets the Status to Value. Use STATUS_* constants for the values of status.</string>
+         </map>
+         <key>llSetText</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Colour</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Opacity</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Set text floating over object.\nSets the text that floats above the object, using the specified colour and opacity level.</string>
+         </map>
+         <key>llSetTexture</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.2</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Texture</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Face</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the Texture of Face.\nSets the Texture of Face. If Face is ALL_SIDES, set the texture on all faces.</string>
+         </map>
+         <key>llSetTextureAnim</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Mode</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Face</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>SizeX</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>SizeY</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Start</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Length</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Rate</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Animate the texture on the specified face/faces.\nAnimates a texture by setting the texture scale and offset.</string>
+         </map>
+         <key>llSetTimerEvent</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Rate</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Cause the timer event to be triggered every Rate seconds.\nSets the timer event to be triggered at the specified Rate, in seconds.\n
+				Passing in 0.0 stops further timer events.</string>
+         </map>
+         <key>llSetTorque</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Torque</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Local</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the Torque of object, in local coordinates if Local == TRUE (if the script is physical).\nIf the object is physical, this function sets the torque.\n
+			The vector is in local coordinates if Local is TRUE, global if FALSE.</string>
+         </map>
+         <key>llSetTouchText</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Displays Text in the menu that acts on a touch.\nDisplays Text in the viewer context menu that acts on a touch.</string>
+         </map>
+         <key>llSetVehicleFlags</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Flags</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the enabled bits in 'flags'.\nSets the vehicle flags to TRUE.\nValid parameters can be found in the vehicle flags constants section.</string>
+         </map>
+         <key>llSetVehicleFloatParam</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>ParameterName</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>ParameterValue</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the specified vehicle float parameter.\nSets the vehicle floating point parameter.\n
+				Valid parameters and their expected values can be found in the vehicle parameter constants section.</string>
+         </map>
+         <key>llSetVehicleRotationParam</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>ParameterName</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>ParameterValue</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the specified vehicle rotation parameter.\nSets the vehicle rotation parameter.\n
+				Valid parameters can be found in the vehicle parameter constants section.</string>
+         </map>
+         <key>llSetVehicleType</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Type</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets vehicle to one of the default types.\nActivates the vehicle action and choose vehicle Type.\n
+				Valid Types and an explanation of their characteristics can be found in the vehicle type constants section.</string>
+         </map>
+         <key>llSetVehicleVectorParam</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>ParameterName</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>ParameterValue</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets the specified vehicle vector parameter.\nSets the vehicle vector parameter.\nValid parameters can be found in the vehicle parameter constants section.</string>
+         </map>
+         <key>llSetVelocity</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Force</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Local</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets an objects velocity, in local coordinates if Local == TRUE (if the script is physical).\nApplies Force to a physical object.</string>
+         </map>
+         <key>llSHA1String</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns a string of 40 hex characters that is the SHA1 security Hash of Text.\nReturns a string of 40 hex characters that is the SHA1 security hash of the supplied string.</string>
+         </map>
+         <key>llShout</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Channel</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>shouts Text on Channel.\nShout Text on Channel. Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 to 2,147,483,648 are private channels that are not sent to avatars but other scripts can listen for through the llListen function.</string>
+         </map>
+         <key>llSin</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <map>
+               <key>Theta</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the sine of Theta (Theta in radians).\nReturns the sine of Theta in radians.</string>
+         </map>
+         <key>llSitTarget</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Offset</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Rotation</key>
+               <map>
+                  <key>type</key>
+                  <string>rotation</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Set the sit location for this object (if offset == &lt;0,0,0&gt; clear it).\nSet the sit location for this object. If offset == ZERO_VECTOR, clears the sit target.</string>
+         </map>
+         <key>llSleep</key>
+         <map>
+            <key>energy</key>
+            <real>0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Time</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Put script to sleep for Time seconds.\nPuts the script to sleep for time specified, in seconds.</string>
+         </map>
+         <key>llSound</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Sound</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Volume</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Queue</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Loop</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Deprecated: Use llPlaySound instead.\nDeprecated: Use llPlaySound instead.\nPlays Sound at Volume and specifies whether it should loop or not.</string>
+         </map>
+         <key>llSoundPreload</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Sound</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Deprecated: Use llPreloadSound instead.\nDeprecated: Use llPreloadSound instead.\nPreloads a sound on viewers within range.</string>
+         </map>
+         <key>llSqrt</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <map>
+               <key>Value</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the square root of Value, or returns 0 and triggers a Math Error for imaginary results.\nReturns the square root of the value. If the value is less than 0.0, this function returns 0.0 and raises a maths runtime error.</string>
+         </map>
+         <key>llStartAnimation</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Animation</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Start Animation for agent that owns object.\nThis function starts the animation for the last avatar that granted the object PERMISSION_TRIGGER_ANIMATION permission.</string>
+         </map>
+         <key>llStopAnimation</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Animation</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Stop Animation for agent that owns object.\nThis function stops the animation for the last avatar that granted the object PERMISSION_TRIGGER_ANIMATION permission.</string>
+         </map>
+         <key>llStopHover</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Stop hovering to a height.\nStop hovering at a height.</string>
+         </map>
+         <key>llStopLookAt</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Stop causing object to point at a target.\nStop causing object to look at target.</string>
+         </map>
+         <key>llStopMoveToTarget</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Stops critically damped motion.</string>
+         </map>
+         <key>llStopSound</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Stops currently attached sound.\nStops the currently playing attached sound started with llPlaySound or llLoopSound. Has no effect on sounds started with llTriggerSound.</string>
+         </map>
+         <key>llStringLength</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the length of string.\nReturns the number of characters in the specified text.</string>
+         </map>
+         <key>llStringToBase64</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Converts a string to the Base64 representation of the string.\nConverts a string to the Base 64 representation of the string.</string>
+         </map>
+         <key>llStringTrim</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>TrimType</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Trims the leading and/or trailing white spaces from a string.\n
+				TrimType can be STRING_TRIM, STRING_TRIM_HEAD or STRING_TRIM_TAIL.\nOutputs a string, eliminating white-space from the start and/or end of the specified string.\n
+				Constants for trim_type:\n
+				STRING_TRIM_HEAD: trim all leading spaces in text\n
+				STRING_TRIM_TAIL: trim all trailing spaces in text\n
+				STRING_TRIM: trim all leading and trailing spaces in text</string>
+         </map>
+         <key>llSubStringIndex</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Sequence</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns an integer that is the index in source where pattern first appears. Returns -1 if not found.\nReturns an index of the text where the sequence of characters first appears.\n
+				Returns -1 if no match is found.</string>
+         </map>
+         <key>llTakeCamera</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>AvatarID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Deprecated: Use llSetCameraParams instead.\nDeprecated: Use llSetCameraParams instead. Move avatar's viewpoint to task.</string>
+         </map>
+         <key>llTakeControls</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Controls</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Accept</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>PassOn</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Take controls from agent task has permissions for.	If (Accept == (controls &amp; input)), send input to task.	If PassOn send to agent also.\nRequires the PERMISSION_TAKE_CONTROLS permission to run.</string>
+         </map>
+         <key>llTan</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <map>
+               <key>Theta</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the tangent of Theta (Theta in radians).\nReturns the tangent of Theta radians.</string>
+         </map>
+         <key>llTarget</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <map>
+               <key>Position</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Range</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Sets positions within range of position as a target and return an ID for the target.\nSet object position, within range of position, as a target and returns an integer ID for the target.</string>
+         </map>
+         <key>llTargetOmega</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Axis</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>SpinRate</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Gain</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Attempt to spin at SpinRate with strength Gain.\nAttempt to spin at SpinRate with strength Gain on axis.\n
+			A spin-rate of 0.0 cancels the spin. This function always works in object local coordinates.</string>
+         </map>
+         <key>llTargetRemove</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Target</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Removes target number.\nRemove target number.</string>
+         </map>
+         <key>llTeleportAgent</key>
+         <map>
+            <key>energy</key>
+            <real>0</real>
+            <key>sleep</key>
+            <real>0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>AvatarID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>LandmarkName</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Position</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>LookAtPoint</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Requests a teleport of avatar to a landmark stored in the object's inventory. If no landmark is provided (an empty string), the avatar is teleported to the location position in the current region. In either case, the avatar is turned to face the position given by look_at in local coordinates.
+				Requires the PERMISSION_TELEPORT permission. This function can only teleport the owner of the object.</string>
+         </map>
+         <key>llTeleportAgentGlobalCoords</key>
+         <map>
+            <key>energy</key>
+            <real>0</real>
+            <key>sleep</key>
+            <real>0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>AvatarID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>GlobalPosition</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>RegionPosition</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>LookAtPoint</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Teleports an agent to set of a region_coordinates within a region at the specified global_coordinates. The agent lands facing the position defined by look_at local coordinates.</string>
+         </map>
+         <key>llTeleportAgentHome</key>
+         <map>
+            <key>energy</key>
+            <real>100.0</real>
+            <key>sleep</key>
+            <real>5.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>AvatarID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Teleports agent on owner's land to agent's home location.\nTeleport agent over the owner's land to agent's home location.</string>
+         </map>
+         <key>llTextBox</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>1.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>AvatarID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Channel</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Shows a dialog box on the avatar's screen with the message. A text box asks for input, and if entered the Text is chatted on Channel.\nShows a dialogue box on avatar's screen with the text message.\n
+				It contains a text box for input. Any text that is entered is said on the specified channel (as if by the avatar) when the "OK" button is clicked.</string>
+         </map>
+         <key>llToLower</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns a string that is Text with all lower-case characters.\nReturns Text in all lower case.</string>
+         </map>
+         <key>llToUpper</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns a string that is Text with all upper-case characters.\nReturns Text in all upper case.</string>
+         </map>
+         <key>llTransferLindenDollars</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <map>
+               <key>AvatarID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Amount</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Transfer Amount of linden dollars (L$) from script owner to AvatarID. Returns a key to a corresponding transaction_result event for the success of the transfer.\nAttempts to send the amount of money to the specified avatar, and trigger a transaction_result event identified by the returned key.</string>
+         </map>
+         <key>llTriggerSound</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Sound</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Volume</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Plays Sound at Volume (0.0 - 1.0), centered at but not attached to object.\nPlays a transient sound NOT attached to an object.\n
+				The sound plays from a stationary position located at the centre of the object at the time of the triggering.\n
+				There is no limit to the number of triggered sounds which can be generated by an object, and calling llTriggerSound does not affect the attached sounds created by llPlaySound and llLoopSound. This is very useful for things like collision noises, explosions, etc. There is no way to stop or alter the volume of a sound triggered by this function.</string>
+         </map>
+         <key>llTriggerSoundLimited</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Sound</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Volume</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>TNE</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>BSW</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Plays Sound at Volume (0.0 - 1.0), centered at but not attached to object, limited to axis-aligned bounding box defined by vectors top-north-east (TNE) and bottom-south-west (BSW).\nPlays a transient sound NOT attached to an object, with its audible range limited by the axis-aligned bounding box define by TNE (top-north-east) and BSW (bottom-south-west).\n
+				The sound plays from a stationary position located at the centre of the object at the time of the triggering.\n
+				There is no limit to the number of triggered sounds which can be generated by an object, and calling llTriggerSound does not affect the attached sounds created by llPlaySound and llLoopSound. This is very useful for things like collision noises, explosions, etc. There is no way to stop or alter the volume of a sound triggered by this function.</string>
+         </map>
+         <key>llUnescapeURL</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>URL</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns an unescaped/ unencoded version of URL, replacing %20 with spaces etc.\nReturns the string that is the URL unescaped, replacing "%20" with spaces, etc., version of URL.\n
+				The function can output raw UTF-8 strings.</string>
+         </map>
+         <key>llUnSit</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>AvatarID</key>
+               <map>
+                  <key>type</key>
+                  <string>key</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>If agent identified by AvatarID is sitting on the object the script is attached to or is over land owned by the objects owner, the agent is forced to stand up.\nIf the agent identified is sitting on the object the script is attached to or is over land owned by the objects owner, the agent is forced to stand up.</string>
+         </map>
+         <key>llUpdateCharacter</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Options</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Change the character's settings.\nUpdates settings for a character.</string>
+         </map>
+         <key>llVecDist</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <map>
+               <key>Location1</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Location2</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the 3D distance between Location1 and Location2.\nReturns the distance from location 1 to location 2.</string>
+         </map>
+         <key>llVecMag</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <map>
+               <key>Vector</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the magnitude of Vector.\nReturns the magnitude of the vector.</string>
+         </map>
+         <key>llVecNorm</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <map>
+               <key>Vector</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the v normalized.\nReturns normalized vector.</string>
+         </map>
+         <key>llVolumeDetect</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>DetectEnabled</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>If DetectEnabled = TRUE, object becomes phantom but triggers collision_start and collision_end events when other objects start and stop interpenetrating. Must be applied to the root object.\nWhen detect = TRUE, this makes the entire link set the script is attached to phantom. If another object (including avatars) interpenetrates it, it will get a collision_start event.\n
+				When an object stops interpenetrating, a collision_end event is generated. While the other is inter-penetrating, collision events are NOT generated. The script must be applied to the root object of the link set to get the collision events.\n
+				Collision filters work normally.</string>
+         </map>
+         <key>llWanderWithin</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Origin</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Area</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Options</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Wander within a specified volume.\nSets a character to wander about a central spot within a specified area.</string>
+         </map>
+         <key>llWater</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <map>
+               <key>Offset</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the water height below the object position + offset.\nReturns the water height at the object's position + offset.</string>
+         </map>
+         <key>llWhisper</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <map>
+               <key>Channel</key>
+               <map>
+                  <key>type</key>
+                  <string>integer</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Text</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Whispers Text on Channel.\nWhisper Text on Channel. Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 to 2,147,483,648 are private channels that are not sent to avatars but other scripts can listen for through the llListen function.</string>
+         </map>
+         <key>llWind</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <map>
+               <key>Offset</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Returns the wind velocity at the object position + offset.\nReturns the wind velocity at the object's position + offset.</string>
+         </map>
+         <key>llXorBase64Strings</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.3</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>Text1</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Text2</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Deprecated: Please use llXorBase64StringsCorrect instead.\n
+				Incorrectly performs an exclusive OR on two Base64 strings and returns a Base64 string.	Text2 repeats if it is shorter than Text1.	Retained for backwards compatibility.\nDeprecated: Use llXorBase64StringsCorrect instead.\nIncorrectly performs an exclusive OR on two Base64 strings and returns a Base64 string.</string>
+         </map>
+         <key>llXorBase64StringsCorrect</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>Text1</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Text2</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Correctly performs an exclusive OR on two Base64 strings and returns a Base64 string.\n
+				Text2 repeats if it is shorter than Text1.\nPerforms an exclusive-OR on two Base64 strings and returns a Base64 string. text-2 repeats if it is shorter than text-1.\n
+				This function is for encrypting data. Put your data in text-1 and your key in text-2 to encrypt or put the encrypted data into text-1 with the same key in text-2 to decrypt again.</string>
+         </map>
+      </map>
+   </map>
+</llsd>
\ No newline at end of file
diff --git a/indra/newview/app_settings/keywords_lsl_tokens.xml b/indra/newview/app_settings/keywords_lsl_tokens.xml
deleted file mode 100644
index 6806f80169..0000000000
--- a/indra/newview/app_settings/keywords_lsl_tokens.xml
+++ /dev/null
@@ -1,16865 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?><?xml-model href="llsd-lsl-syntax.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
-<llsd>
-   <map>
-      <key>controls</key>
-      <map>
-         <key>default</key>
-         <map>
-            <key>tooltip</key>
-            <string>All scripts must have a default state, which is the first state entered when the script starts.\nIf another state is defined before the default state, the compiler will report a syntax error.</string>
-         </map>
-         <key>do</key>
-         <map>
-            <key>tooltip</key>
-            <string>do / while loop\ndo {\n...\n} while (&lt;condition&gt;);</string>
-         </map>
-         <key>else</key>
-         <map>
-            <key>tooltip</key>
-            <string>if / else block\nif (&lt;condition&gt;) {\n...\n[} else [if (&lt;condition&gt;) {\n...]]\n}</string>
-         </map>
-         <key>for</key>
-         <map>
-            <key>tooltip</key>
-            <string>for loop\nfor (&lt;initialiser&gt;; &lt;condition&gt;; &lt;post-iteration-statement&gt;)\n{ ...\n}</string>
-         </map>
-         <key>if</key>
-         <map>
-            <key>tooltip</key>
-            <string>if / else block\nif (&lt;condition&gt;) {\n...\n[} else [if (&lt;condition&gt;) {\n...]]\n}</string>
-         </map>
-         <key>jump</key>
-         <map>
-            <key>tooltip</key>
-            <string>jump statement\njump &lt;label&gt;</string>
-         </map>
-         <key>return</key>
-         <map>
-            <key>tooltip</key>
-            <string>Leave current event or function.\nreturn [&lt;variable&gt;];\nOptionally pass back a variable's value, from a function.</string>
-         </map>
-         <key>state</key>
-         <map>
-            <key>tooltip</key>
-            <string>state &lt;target&gt;\nIf the target state is not the same as the current one, change to the target state.</string>
-         </map>
-         <key>while</key>
-         <map>
-            <key>tooltip</key>
-            <string>while loop\nwhile (&lt;condition&gt;) {\n,,,\n}</string>
-         </map>
-      </map>
-      <key>types</key>
-      <map>
-         <key>float</key>
-         <map>
-            <key>tooltip</key>
-            <string>32 bit floating point value.\nThe range is 1.175494351E-38 to 3.402823466E+38.</string>
-         </map>
-         <key>integer</key>
-         <map>
-            <key>tooltip</key>
-            <string>32 bit integer value.\n−2,147,483,648 and +2,147,483,647 (that is 0x80000000 to 0x7FFFFFFF in hex).</string>
-         </map>
-         <key>key</key>
-         <map>
-            <key>tooltip</key>
-            <string>A 128 bit unique identifier (UUID).\nThe key is represented as hexidecimal characters (A-F and 0-9), grouped into sections (8,4,4,4,12 characters) and separated by hyphens (for a total of 36 characters). e.g. "A822FF2B-FF02-461D-B45D-DCD10A2DE0C2".</string>
-         </map>
-         <key>list</key>
-         <map>
-            <key>tooltip</key>
-            <string>A collection of other data types.\nLists are signified by square brackets surrounding their elements; the elements inside are separated by commas. e.g. [0, 1, 2, 3, 4] or ["Yes", "No", "Perhaps"].</string>
-         </map>
-         <key>quaternion</key>
-         <map>
-            <key>tooltip</key>
-            <string>The quaternion type is a left over from way back when LSL was created. It was later renamed to &lt;rotation&gt; to make it more user friendly, but it appears someone forgot to remove it ;-)</string>
-         </map>
-         <key>rotation</key>
-         <map>
-            <key>tooltip</key>
-            <string>The rotation type is one of several ways to represent an orientation in 3D.\nIt is a mathematical object called a quaternion. You can think of a quaternion as four numbers (x, y, z, w), three of which represent the direction an object is facing and a fourth that represents the object's banking left or right around that direction.</string>
-         </map>
-         <key>string</key>
-         <map>
-            <key>tooltip</key>
-            <string>Text data.\nThe editor accepts UTF-8 encoded text.</string>
-         </map>
-         <key>vector</key>
-         <map>
-            <key>tooltip</key>
-            <string>A vector is a data type that contains a set of three float values.\nVectors are used to represent colours (RGB), positions, and directions/velocities.</string>
-         </map>
-      </map>
-      <key>constants</key>
-      <map>
-         <key>ACTIVE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x2</integer>
-            <key>tooltip</key>
-            <string>Objects in world that are running a script or currently physically moving.</string>
-         </map>
-         <key>AGENT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x1</integer>
-            <key>tooltip</key>
-            <string>Objects in world that are agents.</string>
-         </map>
-         <key>AGENT_ALWAYS_RUN</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x1000</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>AGENT_ATTACHMENTS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x2</integer>
-            <key>tooltip</key>
-            <string>The agent has attachments.</string>
-         </map>
-         <key>AGENT_AUTOPILOT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x2000</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>AGENT_AWAY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x40</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>AGENT_BUSY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x800</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>AGENT_BY_LEGACY_NAME</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>AGENT_BY_USERNAME</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x10</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>AGENT_CROUCHING</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x400</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>AGENT_FLYING</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x1</integer>
-            <key>tooltip</key>
-            <string>The agent is flying.</string>
-         </map>
-         <key>AGENT_IN_AIR</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x100</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>AGENT_LIST_PARCEL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>Agents on the same parcel where the script is running.</string>
-         </map>
-         <key>AGENT_LIST_PARCEL_OWNER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>Agents on any parcel in the region where the parcel owner is the same as the owner of the parcel under the scripted object.</string>
-         </map>
-         <key>AGENT_LIST_REGION</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string>All agents in the region.</string>
-         </map>
-         <key>AGENT_MOUSELOOK</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x8</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>AGENT_ON_OBJECT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x20</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>AGENT_SCRIPTED</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x4</integer>
-            <key>tooltip</key>
-            <string>The agent has scripted attachments.</string>
-         </map>
-         <key>AGENT_SITTING</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x10</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>AGENT_TYPING</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x200</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>AGENT_WALKING</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x80</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>ALL_SIDES</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>-1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>ANIM_ON</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x1</integer>
-            <key>tooltip</key>
-            <string>Texture animation is on.</string>
-         </map>
-         <key>ATTACH_AVATAR_CENTER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>40</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's geometric centre.</string>
-         </map>
-         <key>ATTACH_BACK</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>9</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's back.</string>
-         </map>
-         <key>ATTACH_BELLY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>28</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's belly.</string>
-         </map>
-         <key>ATTACH_CHEST</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's chest.</string>
-         </map>
-         <key>ATTACH_CHIN</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>12</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's chin.</string>
-         </map>
-         <key>ATTACH_HEAD</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's head.</string>
-         </map>
-         <key>ATTACH_HUD_BOTTOM</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>37</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>ATTACH_HUD_BOTTOM_LEFT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>36</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>ATTACH_HUD_BOTTOM_RIGHT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>38</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>ATTACH_HUD_CENTER_1</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>35</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>ATTACH_HUD_CENTER_2</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>31</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>ATTACH_HUD_TOP_CENTER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>33</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>ATTACH_HUD_TOP_LEFT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>34</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>ATTACH_HUD_TOP_RIGHT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>32</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>ATTACH_LEAR</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>13</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's left ear.</string>
-         </map>
-         <key>ATTACH_LEFT_PEC</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>29</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's left pectoral.</string>
-         </map>
-         <key>ATTACH_LEYE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>15</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's left eye.</string>
-         </map>
-         <key>ATTACH_LFOOT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>7</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's left foot.</string>
-         </map>
-         <key>ATTACH_LHAND</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's left hand.</string>
-         </map>
-         <key>ATTACH_LHIP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>25</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's left hip.</string>
-         </map>
-         <key>ATTACH_LLARM</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>21</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's left lower arm.</string>
-         </map>
-         <key>ATTACH_LLLEG</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>27</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's lower left leg.</string>
-         </map>
-         <key>ATTACH_LPEC</key>
-         <map>
-            <key>deprecated</key>
-            <boolean>true</boolean>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>30</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's right pectoral. (Deprecated, use ATTACH_RIGHT_PEC)</string>
-         </map>
-         <key>ATTACH_LSHOULDER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's left shoulder.</string>
-         </map>
-         <key>ATTACH_LUARM</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>20</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's left upper arm.</string>
-         </map>
-         <key>ATTACH_LULEG</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>27</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's lower upper leg.</string>
-         </map>
-         <key>ATTACH_MOUTH</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>11</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's mouth.</string>
-         </map>
-         <key>ATTACH_NECK</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>39</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's neck.</string>
-         </map>
-         <key>ATTACH_NOSE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>17</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's nose.</string>
-         </map>
-         <key>ATTACH_PELVIS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>10</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's pelvis.</string>
-         </map>
-         <key>ATTACH_REAR</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>14</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's right ear.</string>
-         </map>
-         <key>ATTACH_REYE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>16</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's right eye.</string>
-         </map>
-         <key>ATTACH_RFOOT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>8</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's right foot.</string>
-         </map>
-         <key>ATTACH_RHAND</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>6</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's right hand.</string>
-         </map>
-         <key>ATTACH_RHIP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>22</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's right hip.</string>
-         </map>
-         <key>ATTACH_RIGHT_PEC</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>30</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's right pectoral.</string>
-         </map>
-         <key>ATTACH_RLARM</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>19</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's right lower arm.</string>
-         </map>
-         <key>ATTACH_RLLEG</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>24</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's right lower leg.</string>
-         </map>
-         <key>ATTACH_RPEC</key>
-         <map>
-            <key>deprecated</key>
-            <boolean>true</boolean>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>29</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's left pectoral. (deprecated, use ATTACH_LEFT_PEC)</string>
-         </map>
-         <key>ATTACH_RSHOULDER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's right shoulder.</string>
-         </map>
-         <key>ATTACH_RUARM</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>18</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's right upper arm.</string>
-         </map>
-         <key>ATTACH_RULEG</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>23</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's right upper leg.</string>
-         </map>
-         <key>AVOID_CHARACTERS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>AVOID_DYNAMIC_OBSTACLES</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CAMERA_ACTIVE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>12</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CAMERA_BEHINDNESS_ANGLE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>8</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CAMERA_BEHINDNESS_LAG</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>9</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CAMERA_DISTANCE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>7</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CAMERA_FOCUS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>17</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CAMERA_FOCUS_LAG</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>6</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CAMERA_FOCUS_LOCKED</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>22</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CAMERA_FOCUS_OFFSET</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CAMERA_FOCUS_THRESHOLD</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>11</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CAMERA_PITCH</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CAMERA_POSITION</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>13</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CAMERA_POSITION_LAG</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>6</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CAMERA_POSITION_LOCKED</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>22</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CAMERA_POSITION_THRESHOLD</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>10</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CHANGED_ALLOWED_DROP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x40</integer>
-            <key>tooltip</key>
-            <string>The object inventory has changed because an item was added through the llAllowInventoryDrop interface.</string>
-         </map>
-         <key>CHANGED_COLOR</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x2</integer>
-            <key>tooltip</key>
-            <string>The object colour has changed.</string>
-         </map>
-         <key>CHANGED_INVENTORY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x1</integer>
-            <key>tooltip</key>
-            <string>The object inventory has changed.</string>
-         </map>
-         <key>CHANGED_LINK</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x20</integer>
-            <key>tooltip</key>
-            <string>The object has linked or its links were broken.</string>
-         </map>
-         <key>CHANGED_MEDIA</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2048</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CHANGED_OWNER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x80</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CHANGED_REGION</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x100</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CHANGED_REGION_START</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x400</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CHANGED_SCALE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x8</integer>
-            <key>tooltip</key>
-            <string>The object scale (size) has changed.</string>
-         </map>
-         <key>CHANGED_SHAPE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x4</integer>
-            <key>tooltip</key>
-            <string>The object base shape has changed, e.g., a box to a cylinder.</string>
-         </map>
-         <key>CHANGED_TELEPORT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x200</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CHANGED_TEXTURE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x10</integer>
-            <key>tooltip</key>
-            <string>The texture offset, scale rotation, or simply the object texture has changed.</string>
-         </map>
-         <key>CHARACTER_ACCOUNT_FOR_SKIPPED_FRAMES</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>14</integer>
-            <key>tooltip</key>
-            <string>If set to false, character will not attempt to catch up on lost time when pathfinding performance is low, potentially providing more reliable movement (albeit while potentially appearing to be more stuttery). Default is true to match pre-existing behavior.</string>
-         </map>
-         <key>CHARACTER_AVOIDANCE_MODE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string>Allows you to specify that a character should not try to avoid other characters, should not try to avoid dynamic obstacles (relatively fast moving objects and avatars), or both.</string>
-         </map>
-         <key>CHARACTER_CMD_JUMP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x01</integer>
-            <key>tooltip</key>
-            <string>Makes the character jump. Requires an additional parameter, the height to jump, between 0.1m and 2.0m. This must be provided as the first element of the llExecCharacterCmd option list.</string>
-         </map>
-         <key>CHARACTER_CMD_SMOOTH_STOP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CHARACTER_CMD_STOP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x00</integer>
-            <key>tooltip</key>
-            <string>Stops any current pathfinding operation.</string>
-         </map>
-         <key>CHARACTER_DESIRED_SPEED</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>Speed of pursuit in meters per second.</string>
-         </map>
-         <key>CHARACTER_DESIRED_TURN_SPEED</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>12</integer>
-            <key>tooltip</key>
-            <string>The character's maximum speed while turning about the Z axis. - Note that this is only loosely enforced.</string>
-         </map>
-         <key>CHARACTER_LENGTH</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string>Set collision capsule length - cannot be less than two times the radius.</string>
-         </map>
-         <key>CHARACTER_MAX_ACCEL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>8</integer>
-            <key>tooltip</key>
-            <string>The character's maximum acceleration rate.</string>
-         </map>
-         <key>CHARACTER_MAX_DECEL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>9</integer>
-            <key>tooltip</key>
-            <string>The character's maximum deceleration rate.</string>
-         </map>
-         <key>CHARACTER_MAX_SPEED</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>13</integer>
-            <key>tooltip</key>
-            <string>The character's maximum speed.</string>
-         </map>
-         <key>CHARACTER_MAX_TURN_RADIUS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>10</integer>
-            <key>tooltip</key>
-            <string>The character's turn radius when travelling at CHARACTER_MAX_TURN_SPEED.</string>
-         </map>
-         <key>CHARACTER_ORIENTATION</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string>Valid options are: VERTICAL, HORIZONTAL.</string>
-         </map>
-         <key>CHARACTER_RADIUS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>Set collision capsule radius.</string>
-         </map>
-         <key>CHARACTER_TYPE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>6</integer>
-            <key>tooltip</key>
-            <string>Specifies which walk-ability coefficient will be used by this character.</string>
-         </map>
-         <key>CHARACTER_TYPE_A</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CHARACTER_TYPE_B</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CHARACTER_TYPE_C</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CHARACTER_TYPE_D</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CHARACTER_TYPE_NONE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CLICK_ACTION_BUY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>When the prim is clicked, the buy dialog is opened.</string>
-         </map>
-         <key>CLICK_ACTION_NONE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string>Performs the default action: when the prim is clicked, touch events are triggered".</string>
-         </map>
-         <key>CLICK_ACTION_OPEN</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string>When the prim is clicked, the object inventory dialog is opened.</string>
-         </map>
-         <key>CLICK_ACTION_OPEN_MEDIA</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>6</integer>
-            <key>tooltip</key>
-            <string>When the prim is touched, the web media dialog is opened".</string>
-         </map>
-         <key>CLICK_ACTION_PAY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string>When the prim is clicked, the pay dialog is opened.</string>
-         </map>
-         <key>CLICK_ACTION_PLAY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string>When the prim is clicked, html-on-a-prim is enabled?</string>
-         </map>
-         <key>CLICK_ACTION_SIT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>When the prim is clicked, the avatar sits upon it.</string>
-         </map>
-         <key>CLICK_ACTION_TOUCH</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string>When the prim is clicked, touch events are triggered".</string>
-         </map>
-         <key>CONTENT_TYPE_ATOM</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string>"application/atom+xml"</string>
-         </map>
-         <key>CONTENT_TYPE_FORM</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>7</integer>
-            <key>tooltip</key>
-            <string>"application/x-www-form-urlencoded"</string>
-         </map>
-         <key>CONTENT_TYPE_HTML</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>"text/html", only valid for embedded browsers on content owned by the person viewing. Falls back to "text/plain" otherwise.</string>
-         </map>
-         <key>CONTENT_TYPE_JSON</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string>"application/json"</string>
-         </map>
-         <key>CONTENT_TYPE_LLSD</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>6</integer>
-            <key>tooltip</key>
-            <string>"application/llsd+xml"</string>
-         </map>
-         <key>CONTENT_TYPE_RSS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>8</integer>
-            <key>tooltip</key>
-            <string>"application/rss+xml"</string>
-         </map>
-         <key>CONTENT_TYPE_TEXT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string>"text/plain"</string>
-         </map>
-         <key>CONTENT_TYPE_XHTML</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string>"application/xhtml+xml"</string>
-         </map>
-         <key>CONTENT_TYPE_XML</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>"application/xml"</string>
-         </map>
-         <key>CONTROL_BACK</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x2</integer>
-            <key>tooltip</key>
-            <string>Test for the avatar move back control.</string>
-         </map>
-         <key>CONTROL_DOWN</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x20</integer>
-            <key>tooltip</key>
-            <string>Test for the avatar move down control.</string>
-         </map>
-         <key>CONTROL_FWD</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x1</integer>
-            <key>tooltip</key>
-            <string>Test for the avatar move forward control.</string>
-         </map>
-         <key>CONTROL_LBUTTON</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x10000000</integer>
-            <key>tooltip</key>
-            <string>Test for the avatar left button control.</string>
-         </map>
-         <key>CONTROL_LEFT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x4</integer>
-            <key>tooltip</key>
-            <string>Test for the avatar move left control.</string>
-         </map>
-         <key>CONTROL_ML_LBUTTON</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x40000000</integer>
-            <key>tooltip</key>
-            <string>Test for the avatar left button control while in mouse look.</string>
-         </map>
-         <key>CONTROL_RIGHT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x8</integer>
-            <key>tooltip</key>
-            <string>Test for the avatar move right control.</string>
-         </map>
-         <key>CONTROL_ROT_LEFT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x100</integer>
-            <key>tooltip</key>
-            <string>Test for the avatar rotate left control.</string>
-         </map>
-         <key>CONTROL_ROT_RIGHT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x200</integer>
-            <key>tooltip</key>
-            <string>Test for the avatar rotate right control.</string>
-         </map>
-         <key>CONTROL_UP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x10</integer>
-            <key>tooltip</key>
-            <string>Test for the avatar move up control.</string>
-         </map>
-         <key>DATA_BORN</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string>The date the agent was born, returned in ISO 8601 format of YYYY-MM-DD.</string>
-         </map>
-         <key>DATA_NAME</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>The name of the agent.</string>
-         </map>
-         <key>DATA_ONLINE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>TRUE for online, FALSE for offline.</string>
-         </map>
-         <key>DATA_PAYINFO</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>8</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>DATA_RATING</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string>Returns the agent ratings as a comma separated string of six integers. They are:
-			1) Positive rated behaviour
-			2) Negative rated behaviour
-			3) Positive rated appearance
-			4) Negative rated appearance
-			5) Positive rated building
-			6) Negative rated building</string>
-         </map>
-         <key>DATA_SIM_POS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>DATA_SIM_RATING</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>7</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>DATA_SIM_STATUS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>6</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>DEBUG_CHANNEL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2147483647</integer>
-            <key>tooltip</key>
-            <string>DEBUG_CHANNEL is an integer constant that, when passed to llSay, llWhisper, or llShout as a channel parameter, will print text to the Script Warning/Error Window.</string>
-         </map>
-         <key>DEG_TO_RAD</key>
-         <map>
-            <key>type</key>
-            <string>float</string>
-            <key>value</key>
-            <real>0.01745329</real>
-            <key>tooltip</key>
-            <string>0.01745329 - Number of radians per degree.
-			You can use this to convert degrees to radians by multiplying the degrees by this number.</string>
-         </map>
-         <key>DENSITY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>Used with llSetPhysicsMaterial to enable the density value. Must be between 1.0 and 22587.0 (in Kg/m^3 -- see if you can figure out what 22587 represents)</string>
-         </map>
-         <key>EOF</key>
-         <map>
-            <key>type</key>
-            <string>string</string>
-            <key>value</key>
-            <string>\n\n\n</string>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>ERR_GENERIC</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>-1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>ERR_MALFORMED_PARAMS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>-3</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>ERR_PARCEL_PERMISSIONS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>-2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>ERR_RUNTIME_PERMISSIONS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>-4</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>ERR_THROTTLED</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>-5</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>ESTATE_ACCESS_ALLOWED_AGENT_ADD</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string>Add the agent to this estate's Allowed Residents list.</string>
-         </map>
-         <key>ESTATE_ACCESS_ALLOWED_AGENT_REMOVE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>8</integer>
-            <key>tooltip</key>
-            <string>Remove the agent from this estate's Allowed Residents list.</string>
-         </map>
-         <key>ESTATE_ACCESS_ALLOWED_GROUP_ADD</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>16</integer>
-            <key>tooltip</key>
-            <string>Add the group to this estate's Allowed groups list.</string>
-         </map>
-         <key>ESTATE_ACCESS_ALLOWED_GROUP_REMOVE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>32</integer>
-            <key>tooltip</key>
-            <string>Remove the group from this estate's Allowed groups list.</string>
-         </map>
-         <key>ESTATE_ACCESS_BANNED_AGENT_ADD</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>64</integer>
-            <key>tooltip</key>
-            <string>Add the agent to this estate's Banned residents list.</string>
-         </map>
-         <key>ESTATE_ACCESS_BANNED_AGENT_REMOVE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>128</integer>
-            <key>tooltip</key>
-            <string>Remove the agent from this estate's Banned residents list.</string>
-         </map>
-         <key>FALSE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string>An integer constant for boolean comparisons. Has the value '0'.</string>
-         </map>
-         <key>FORCE_DIRECT_PATH</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>Makes character navigate in a straight line toward position. May be set to TRUE or FALSE.</string>
-         </map>
-         <key>FRICTION</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>Used with llSetPhysicsMaterial to enable the friction value. Must be between 0.0 and 255.0</string>
-         </map>
-         <key>GRAVITY_MULTIPLIER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>8</integer>
-            <key>tooltip</key>
-            <string>Used with llSetPhysicsMaterial to enable the gravity multiplier value. Must be between -1.0 and +28.0</string>
-         </map>
-         <key>HORIZONTAL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>HTTP_BODY_MAXLENGTH</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>HTTP_BODY_TRUNCATED</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>HTTP_CUSTOM_HEADER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string>Add an extra custom HTTP header to the request. The first string is the name of the parameter to change, e.g. "Pragma", and the second string is the value, e.g. "no-cache". Up to 8 custom headers may be configured per request. Note that certain headers, such as the default headers, are blocked for security reasons.</string>
-         </map>
-         <key>HTTP_METHOD</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>HTTP_MIMETYPE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>HTTP_PRAGMA_NO_CACHE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>6</integer>
-            <key>tooltip</key>
-            <string>Allows enabling/disbling of the "Pragma: no-cache" header.\nUsage: [HTTP_PRAGMA_NO_CACHE, integer SendHeader]. When SendHeader is TRUE, the "Pragma: no-cache" header is sent by the script. This matches the default behavior. When SendHeader is FALSE, no "Pragma" header is sent by the script.</string>
-         </map>
-         <key>HTTP_VERBOSE_THROTTLE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>HTTP_VERIFY_CERT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>INVENTORY_ALL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>-1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>INVENTORY_ANIMATION</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>20</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>INVENTORY_BODYPART</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>13</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>INVENTORY_CLOTHING</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>INVENTORY_GESTURE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>21</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>INVENTORY_LANDMARK</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>INVENTORY_NONE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>-1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>INVENTORY_NOTECARD</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>7</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>INVENTORY_OBJECT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>6</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>INVENTORY_SCRIPT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>10</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>INVENTORY_SOUND</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>INVENTORY_TEXTURE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>JSON_ARRAY</key>
-         <map>
-            <key>type</key>
-            <string>string</string>
-            <key>value</key>
-            <string>U+FDD2</string>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>JSON_FALSE</key>
-         <map>
-            <key>type</key>
-            <string>string</string>
-            <key>value</key>
-            <string>U+FDD7</string>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>JSON_INVALID</key>
-         <map>
-            <key>type</key>
-            <string>string</string>
-            <key>value</key>
-            <string>U+FDD0</string>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>JSON_NULL</key>
-         <map>
-            <key>type</key>
-            <string>string</string>
-            <key>value</key>
-            <string>U+FDD5</string>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>JSON_NUMBER</key>
-         <map>
-            <key>type</key>
-            <string>string</string>
-            <key>value</key>
-            <string>U+FDD3</string>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>JSON_OBJECT</key>
-         <map>
-            <key>type</key>
-            <string>string</string>
-            <key>value</key>
-            <string>U+FDD1</string>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>JSON_STRING</key>
-         <map>
-            <key>type</key>
-            <string>string</string>
-            <key>value</key>
-            <string>U+FDD4</string>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>JSON_TRUE</key>
-         <map>
-            <key>type</key>
-            <string>string</string>
-            <key>value</key>
-            <string>U+FDD6</string>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>KFM_CMD_PAUSE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>For use with KFM_COMMAND.</string>
-         </map>
-         <key>KFM_CMD_PLAY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string>For use with KFM_COMMAND.</string>
-         </map>
-         <key>KFM_CMD_STOP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>For use with KFM_COMMAND.</string>
-         </map>
-         <key>KFM_COMMAND</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>KFM_DATA</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>KFM_FORWARD</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string>For use with KFM_MODE.</string>
-         </map>
-         <key>KFM_LOOP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>For use with KFM_MODE.</string>
-         </map>
-         <key>KFM_MODE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>KFM_PING_PONG</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>For use with KFM_MODE.</string>
-         </map>
-         <key>KFM_REVERSE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>For use with KFM_MODE.</string>
-         </map>
-         <key>KFM_ROTATION</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>For use with KFM_DATA.</string>
-         </map>
-         <key>KFM_TRANSLATION</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>For use with KFM_DATA.</string>
-         </map>
-         <key>LAND_LARGE_BRUSH</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string>Use a large brush size.</string>
-         </map>
-         <key>LAND_LEVEL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string>Action to level the land.</string>
-         </map>
-         <key>LAND_LOWER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>Action to lower the land.</string>
-         </map>
-         <key>LAND_MEDIUM_BRUSH</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>Use a medium brush size.</string>
-         </map>
-         <key>LAND_NOISE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>LAND_RAISE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>Action to raise the land.</string>
-         </map>
-         <key>LAND_REVERT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>LAND_SMALL_BRUSH</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>Use a small brush size.</string>
-         </map>
-         <key>LAND_SMOOTH</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>LINK_ALL_CHILDREN</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>-3</integer>
-            <key>tooltip</key>
-            <string>This targets every object except the root in the linked set.</string>
-         </map>
-         <key>LINK_ALL_OTHERS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>-2</integer>
-            <key>tooltip</key>
-            <string>This targets every object in the linked set except the object with the script.</string>
-         </map>
-         <key>LINK_ROOT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string>This targets the root of the linked set.</string>
-         </map>
-         <key>LINK_SET</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>-1</integer>
-            <key>tooltip</key>
-            <string>This targets every object in the linked set.</string>
-         </map>
-         <key>LINK_THIS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>-4</integer>
-            <key>tooltip</key>
-            <string>The link number of the prim containing the script.</string>
-         </map>
-         <key>LIST_STAT_GEOMETRIC_MEAN</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>9</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>LIST_STAT_MAX</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>LIST_STAT_MEAN</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>LIST_STAT_MEDIAN</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>LIST_STAT_MIN</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>LIST_STAT_NUM_COUNT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>8</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>LIST_STAT_RANGE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>LIST_STAT_STD_DEV</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>LIST_STAT_SUM</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>6</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>LIST_STAT_SUM_SQUARES</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>7</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>LOOP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x2</integer>
-            <key>tooltip</key>
-            <string>Loop the texture animation.</string>
-         </map>
-         <key>MASK_BASE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>MASK_EVERYONE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>MASK_GROUP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>MASK_NEXT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>MASK_OWNER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>NULL_KEY</key>
-         <map>
-            <key>type</key>
-            <string>key</string>
-            <key>value</key>
-            <uuid>00000000-0000-0000-0000-000000000000</uuid>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>OBJECT_ATTACHED_POINT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>19</integer>
-            <key>tooltip</key>
-            <string>Gets the attachment point to which the object is attached.\nReturns 0 if the object is not an attachment (or is an avatar, etc).</string>
-         </map>
-         <key>OBJECT_CHARACTER_TIME</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>17</integer>
-            <key>tooltip</key>
-            <string>Units in seconds</string>
-         </map>
-         <key>OBJECT_CREATOR</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>8</integer>
-            <key>tooltip</key>
-            <string>Gets the object's creator key. If id is an avatar, a NULL_KEY is returned.</string>
-         </map>
-         <key>OBJECT_DESC</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>Gets the object's description. If id is an avatar, an empty string is returned.</string>
-         </map>
-         <key>OBJECT_GROUP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>7</integer>
-            <key>tooltip</key>
-            <string>Gets the prims's group key. If id is an avatar, a NULL_KEY is returned.</string>
-         </map>
-         <key>OBJECT_NAME</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>Gets the object's name.</string>
-         </map>
-         <key>OBJECT_OWNER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>6</integer>
-            <key>tooltip</key>
-            <string>Gets an object's owner's key. If id is group owned, a NULL_KEY is returned.</string>
-         </map>
-         <key>OBJECT_PATHFINDING_TYPE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>20</integer>
-            <key>tooltip</key>
-            <string>Returns the pathfinding setting of any object in the region. It returns an integer matching one of the OPT_* constants.</string>
-         </map>
-         <key>OBJECT_PHANTOM</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>22</integer>
-            <key>tooltip</key>
-            <string>Returns boolean, detailing if phantom is enabled or disabled on the object.\nIf id is an avatar or attachment, 0 is returned.</string>
-         </map>
-         <key>OBJECT_PHYSICS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>21</integer>
-            <key>tooltip</key>
-            <string>Returns boolean, detailing if physics is enabled or disabled on the object.\nIf id is an avatar or attachment, 0 is returned.</string>
-         </map>
-         <key>OBJECT_PHYSICS_COST</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>16</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>OBJECT_POS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string>Gets the object's position in region coordinates.</string>
-         </map>
-         <key>OBJECT_PRIM_EQUIVALENCE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>13</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>OBJECT_ROOT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>18</integer>
-            <key>tooltip</key>
-            <string>Gets the id of the root prim of the object requested.\nIf id is an avatar, return the id of the root prim of the linkset the avatar is sitting on (or the avatar's own id if the avatar is not sitting on an object within the region).</string>
-         </map>
-         <key>OBJECT_ROT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string>Gets the object's rotation.</string>
-         </map>
-         <key>OBJECT_RUNNING_SCRIPT_COUNT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>9</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>OBJECT_SCRIPT_MEMORY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>11</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>OBJECT_SCRIPT_TIME</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>12</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>OBJECT_SERVER_COST</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>14</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>OBJECT_STREAMING_COST</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>15</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>OBJECT_TEMP_ON_REZ</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>23</integer>
-            <key>tooltip</key>
-            <string>Returns boolean, detailing if temporary is enabled or disabled on the object.</string>
-         </map>
-         <key>OBJECT_TOTAL_SCRIPT_COUNT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>10</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>OBJECT_UNKNOWN_DETAIL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>-1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>OBJECT_VELOCITY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string>Gets the object's velocity.</string>
-         </map>
-         <key>OPT_AVATAR</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>Returned for avatars.</string>
-         </map>
-         <key>OPT_CHARACTER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>Returned for pathfinding characters.</string>
-         </map>
-         <key>OPT_EXCLUSION_VOLUME</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>6</integer>
-            <key>tooltip</key>
-            <string>Returned for exclusion volumes.</string>
-         </map>
-         <key>OPT_LEGACY_LINKSET</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string>Returned for movable obstacles, movable phantoms, physical, and volumedetect objects.</string>
-         </map>
-         <key>OPT_MATERIAL_VOLUME</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string>Returned for material volumes.</string>
-         </map>
-         <key>OPT_OTHER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>-1</integer>
-            <key>tooltip</key>
-            <string>Returned for attachments, Linden trees, and grass.</string>
-         </map>
-         <key>OPT_STATIC_OBSTACLE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string>Returned for static obstacles.</string>
-         </map>
-         <key>OPT_WALKABLE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string>Returned for walkable objects.</string>
-         </map>
-         <key>PARCEL_COUNT_GROUP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_COUNT_OTHER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_COUNT_OWNER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_COUNT_SELECTED</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_COUNT_TEMP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_COUNT_TOTAL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_DETAILS_AREA</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string>The parcel's area, in square meters. (5 chars.).</string>
-         </map>
-         <key>PARCEL_DETAILS_DESC</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>The description of the parcel. (127 chars).</string>
-         </map>
-         <key>PARCEL_DETAILS_GROUP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string>The parcel group's key. (36 chars.).</string>
-         </map>
-         <key>PARCEL_DETAILS_ID</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string>The parcel's key. (36 chars.).</string>
-         </map>
-         <key>PARCEL_DETAILS_NAME</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string>The name of the parcel. (63 chars.).</string>
-         </map>
-         <key>PARCEL_DETAILS_OWNER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>The parcel owner's key. (36 chars.).</string>
-         </map>
-         <key>PARCEL_DETAILS_SEE_AVATARS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>6</integer>
-            <key>tooltip</key>
-            <string>The parcel's avatar visibility setting. (1 char.).</string>
-         </map>
-         <key>PARCEL_FLAG_ALLOW_ALL_OBJECT_ENTRY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x08000000</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_FLAG_ALLOW_CREATE_GROUP_OBJECTS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x4000000</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_FLAG_ALLOW_CREATE_OBJECTS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x40</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_FLAG_ALLOW_DAMAGE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x20</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_FLAG_ALLOW_FLY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_FLAG_ALLOW_GROUP_OBJECT_ENTRY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x10000000</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_FLAG_ALLOW_GROUP_SCRIPTS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x2000000</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_FLAG_ALLOW_LANDMARK</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x8</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_FLAG_ALLOW_SCRIPTS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_FLAG_ALLOW_TERRAFORM</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x10</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_FLAG_LOCAL_SOUND_ONLY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x8000</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_FLAG_RESTRICT_PUSHOBJECT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x200000</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_FLAG_USE_ACCESS_GROUP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x100</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_FLAG_USE_ACCESS_LIST</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x200</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_FLAG_USE_BAN_LIST</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x400</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_FLAG_USE_LAND_PASS_LIST</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x800</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_MEDIA_COMMAND_AGENT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>7</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_MEDIA_COMMAND_AUTO_ALIGN</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>9</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_MEDIA_COMMAND_DESC</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>12</integer>
-            <key>tooltip</key>
-            <string>Use this to get or set the parcel media description.</string>
-         </map>
-         <key>PARCEL_MEDIA_COMMAND_LOOP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_MEDIA_COMMAND_LOOP_SET</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>13</integer>
-            <key>tooltip</key>
-            <string>Used to get or set the parcel's media looping variable.</string>
-         </map>
-         <key>PARCEL_MEDIA_COMMAND_PAUSE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_MEDIA_COMMAND_PLAY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_MEDIA_COMMAND_SIZE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>11</integer>
-            <key>tooltip</key>
-            <string>Use this to get or set the parcel media pixel resolution.</string>
-         </map>
-         <key>PARCEL_MEDIA_COMMAND_STOP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_MEDIA_COMMAND_TEXTURE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_MEDIA_COMMAND_TIME</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>6</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_MEDIA_COMMAND_TYPE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>10</integer>
-            <key>tooltip</key>
-            <string>Use this to get or set the parcel media MIME type (e.g. "text/html").</string>
-         </map>
-         <key>PARCEL_MEDIA_COMMAND_UNLOAD</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>8</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_MEDIA_COMMAND_URL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PASSIVE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x4</integer>
-            <key>tooltip</key>
-            <string>Static in-world objects.</string>
-         </map>
-         <key>PATROL_PAUSE_AT_WAYPOINTS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PAY_DEFAULT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>-2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PAY_HIDE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>-1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PAYMENT_INFO_ON_FILE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PAYMENT_INFO_USED</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PERM_ALL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x7FFFFFFF</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PERM_COPY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x8000</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PERM_MODIFY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x4000</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PERM_MOVE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x80000</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PERM_TRANSFER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x2000</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PERMISSION_ATTACH</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x20</integer>
-            <key>tooltip</key>
-            <string>If this permission is enabled, the object can successfully call llAttachToAvatar to attach to the given avatar.</string>
-         </map>
-         <key>PERMISSION_CHANGE_JOINTS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x100</integer>
-            <key>tooltip</key>
-            <string>(not yet implemented)</string>
-         </map>
-         <key>PERMISSION_CHANGE_LINKS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x80</integer>
-            <key>tooltip</key>
-            <string>If this permission is enabled, the object can successfully call llCreateLink, llBreakLink, and llBreakAllLinks to change links to other objects.</string>
-         </map>
-         <key>PERMISSION_CHANGE_PERMISSIONS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x200</integer>
-            <key>tooltip</key>
-            <string>(not yet implemented)</string>
-         </map>
-         <key>PERMISSION_CONTROL_CAMERA</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x800</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PERMISSION_DEBIT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x2</integer>
-            <key>tooltip</key>
-            <string>If this permission is enabled, the object can successfully call llGiveMoney or llTransferLindenDollars to debit the owners account.</string>
-         </map>
-         <key>PERMISSION_OVERRIDE_ANIMATIONS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x8000</integer>
-            <key>tooltip</key>
-            <string>Permission to override default animations.</string>
-         </map>
-         <key>PERMISSION_RELEASE_OWNERSHIP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x40</integer>
-            <key>tooltip</key>
-            <string>(not yet implemented)</string>
-         </map>
-         <key>PERMISSION_REMAP_CONTROLS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x8</integer>
-            <key>tooltip</key>
-            <string>(not yet implemented)</string>
-         </map>
-         <key>PERMISSION_TAKE_CONTROLS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x4</integer>
-            <key>tooltip</key>
-            <string>If this permission enabled, the object can successfully call the llTakeControls libray call.</string>
-         </map>
-         <key>PERMISSION_TELEPORT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x1000</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PERMISSION_TRACK_CAMERA</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x400</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PERMISSION_TRIGGER_ANIMATION</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x10</integer>
-            <key>tooltip</key>
-            <string>If this permission is enabled, the object can successfully call llStartAnimation for the avatar that owns this.</string>
-         </map>
-         <key>PI</key>
-         <map>
-            <key>type</key>
-            <string>float</string>
-            <key>value</key>
-            <real>3.14159265</real>
-            <key>tooltip</key>
-            <string>3.14159265 - The number of radians in a semi-circle.</string>
-         </map>
-         <key>PI_BY_TWO</key>
-         <map>
-            <key>type</key>
-            <string>float</string>
-            <key>value</key>
-            <real>1.57079633</real>
-            <key>tooltip</key>
-            <string>1.57079633 - The number of radians in a quarter circle.</string>
-         </map>
-         <key>PING_PONG</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x8</integer>
-            <key>tooltip</key>
-            <string>Play animation going forwards, then backwards.</string>
-         </map>
-         <key>PRIM_BUMP_BARK</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_BUMP_BLOBS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>12</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_BUMP_BRICKS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_BUMP_BRIGHT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_BUMP_CHECKER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>6</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_BUMP_CONCRETE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>7</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_BUMP_DARK</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_BUMP_DISKS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>10</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_BUMP_GRAVEL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>11</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_BUMP_LARGETILE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>14</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_BUMP_NONE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_BUMP_SHINY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>19</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_BUMP_SIDING</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>13</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_BUMP_STONE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>9</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_BUMP_STUCCO</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>15</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_BUMP_SUCTION</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>16</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_BUMP_TILE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>8</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_BUMP_WEAVE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>17</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_BUMP_WOOD</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_CAST_SHADOWS</key>
-         <map>
-            <key>deprecated</key>
-            <boolean>true</boolean>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>24</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_COLOR</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>18</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_DESC</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>28</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_FLEXIBLE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>21</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_FULLBRIGHT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>20</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_GLOW</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>25</integer>
-            <key>tooltip</key>
-            <string>PRIM_GLOW is used to get or set the glow status of the face.</string>
-         </map>
-         <key>PRIM_HOLE_CIRCLE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x10</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_HOLE_DEFAULT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x00</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_HOLE_SQUARE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x20</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_HOLE_TRIANGLE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x30</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_LINK_TARGET</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>34</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_MATERIAL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_MATERIAL_FLESH</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_MATERIAL_GLASS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_MATERIAL_LIGHT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>7</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_MATERIAL_METAL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_MATERIAL_PLASTIC</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_MATERIAL_RUBBER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>6</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_MATERIAL_STONE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_MATERIAL_WOOD</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_MEDIA_ALT_IMAGE_ENABLE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string>Boolean. Gets/Sets the default image state (the image that the user sees before a piece of media is active) for the chosen face. The default image is specified by Second Life's server for that media type.</string>
-         </map>
-         <key>PRIM_MEDIA_AUTO_LOOP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string>Boolean. Gets/Sets whether auto-looping is enabled.</string>
-         </map>
-         <key>PRIM_MEDIA_AUTO_PLAY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string>Boolean. Gets/Sets whether the media auto-plays when a Resident can view it.</string>
-         </map>
-         <key>PRIM_MEDIA_AUTO_SCALE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>6</integer>
-            <key>tooltip</key>
-            <string>Boolean. Gets/Sets whether auto-scaling is enabled. Auto-scaling forces the media to the full size of the texture.</string>
-         </map>
-         <key>PRIM_MEDIA_AUTO_ZOOM</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>7</integer>
-            <key>tooltip</key>
-            <string>Boolean. Gets/Sets whether clicking the media triggers auto-zoom and auto-focus on the media.</string>
-         </map>
-         <key>PRIM_MEDIA_CONTROLS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>Integer. Gets/Sets the style of controls. Can be either PRIM_MEDIA_CONTROLS_STANDARD or PRIM_MEDIA_CONTROLS_MINI.</string>
-         </map>
-         <key>PRIM_MEDIA_CONTROLS_MINI</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>Mini web navigation controls; does not include an address bar.</string>
-         </map>
-         <key>PRIM_MEDIA_CONTROLS_STANDARD</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string>Standard web navigation controls.</string>
-         </map>
-         <key>PRIM_MEDIA_CURRENT_URL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>String. Gets/Sets the current url displayed on the chosen face. Changing this URL causes navigation. 1024 characters Maximum.</string>
-         </map>
-         <key>PRIM_MEDIA_FIRST_CLICK_INTERACT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>8</integer>
-            <key>tooltip</key>
-            <string>Boolean. Gets/Sets whether the first click interaction is enabled.</string>
-         </map>
-         <key>PRIM_MEDIA_HEIGHT_PIXELS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>10</integer>
-            <key>tooltip</key>
-            <string>Integer. Gets/Sets the height of the media in pixels.</string>
-         </map>
-         <key>PRIM_MEDIA_HOME_URL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string>String. Gets/Sets the home URL for the chosen face. 1024 characters maximum.</string>
-         </map>
-         <key>PRIM_MEDIA_PERM_ANYONE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_MEDIA_PERM_GROUP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_MEDIA_PERM_NONE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_MEDIA_PERM_OWNER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_MEDIA_PERMS_CONTROL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>14</integer>
-            <key>tooltip</key>
-            <string>Integer. Gets/Sets the permissions mask that control who can see the media control bar above the object:: PRIM_MEDIA_PERM_ANYONE, PRIM_MEDIA_PERM_GROUP, PRIM_MEDIA_PERM_NONE, PRIM_MEDIA_PERM_OWNER</string>
-         </map>
-         <key>PRIM_MEDIA_PERMS_INTERACT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>13</integer>
-            <key>tooltip</key>
-            <string>Integer. Gets/Sets the permissions mask that control who can interact with the object: PRIM_MEDIA_PERM_ANYONE, PRIM_MEDIA_PERM_GROUP, PRIM_MEDIA_PERM_NONE, PRIM_MEDIA_PERM_OWNER</string>
-         </map>
-         <key>PRIM_MEDIA_WHITELIST</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>12</integer>
-            <key>tooltip</key>
-            <string>String. Gets/Sets the white-list as a string of escaped, comma-separated URLs. This string can hold up to 64 URLs or 1024 characters, whichever comes first.</string>
-         </map>
-         <key>PRIM_MEDIA_WHITELIST_ENABLE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>11</integer>
-            <key>tooltip</key>
-            <string>Boolean. Gets/Sets whether navigation is restricted to URLs in PRIM_MEDIA_WHITELIST.</string>
-         </map>
-         <key>PRIM_MEDIA_WIDTH_PIXELS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>9</integer>
-            <key>tooltip</key>
-            <string>Integer. Gets/Sets the width of the media in pixels.</string>
-         </map>
-         <key>PRIM_NAME</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>27</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_OMEGA</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>32</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_PHANTOM</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_PHYSICS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_PHYSICS_SHAPE_CONVEX</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>Use the convex hull of the prim shape for physics (this is the default for mesh objects).</string>
-         </map>
-         <key>PRIM_PHYSICS_SHAPE_NONE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>Ignore this prim in the physics shape. NB: This cannot be applied to the root prim.</string>
-         </map>
-         <key>PRIM_PHYSICS_SHAPE_PRIM</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string>Use the normal prim shape for physics (this is the default for all non-mesh objects).</string>
-         </map>
-         <key>PRIM_PHYSICS_SHAPE_TYPE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>30</integer>
-            <key>tooltip</key>
-            <string>Allows you to set the physics shape type of a prim via lsl. Permitted values are:
-			PRIM_PHYSICS_SHAPE_NONE, PRIM_PHYSICS_SHAPE_PRIM, PRIM_PHYSICS_SHAPE_CONVEX</string>
-         </map>
-         <key>PRIM_POINT_LIGHT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>23</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_POS_LOCAL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>33</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_POSITION</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>6</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_ROT_LOCAL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>29</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_ROTATION</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>8</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_SCULPT_FLAG_INVERT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>64</integer>
-            <key>tooltip</key>
-            <string>Render inside out (inverts the normals).</string>
-         </map>
-         <key>PRIM_SCULPT_FLAG_MIRROR</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>128</integer>
-            <key>tooltip</key>
-            <string>Render an X axis mirror of the sculpty.</string>
-         </map>
-         <key>PRIM_SCULPT_TYPE_CYLINDER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_SCULPT_TYPE_MASK</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>7</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_SCULPT_TYPE_PLANE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_SCULPT_TYPE_SPHERE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_SCULPT_TYPE_TORUS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_SHINY_HIGH</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_SHINY_LOW</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_SHINY_MEDIUM</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_SHINY_NONE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_SIZE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>7</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_SLICE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>35</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_TEMP_ON_REZ</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_TEXGEN</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>22</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_TEXGEN_DEFAULT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_TEXGEN_PLANAR</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_TEXT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>26</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_TEXTURE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>17</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_TYPE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>9</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_TYPE_BOX</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_TYPE_CYLINDER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_TYPE_PRISM</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_TYPE_RING</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>6</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_TYPE_SCULPT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>7</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_TYPE_SPHERE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_TYPE_TORUS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_TYPE_TUBE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PROFILE_NONE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string>Disables profiling</string>
-         </map>
-         <key>PROFILE_SCRIPT_MEMORY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>Enables memory profiling</string>
-         </map>
-         <key>PSYS_PART_BOUNCE_MASK</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x4</integer>
-            <key>tooltip</key>
-            <string>Particles bounce off of a plane at the objects Z height.</string>
-         </map>
-         <key>PSYS_PART_EMISSIVE_MASK</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x100</integer>
-            <key>tooltip</key>
-            <string>The particle glows.</string>
-         </map>
-         <key>PSYS_PART_END_ALPHA</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string>A float which determines the ending alpha of the object.</string>
-         </map>
-         <key>PSYS_PART_END_COLOR</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string>A vector &lt;r, g, b&gt; which determines the ending colour of the object.</string>
-         </map>
-         <key>PSYS_PART_END_SCALE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>6</integer>
-            <key>tooltip</key>
-            <string>A vector &lt;sx, sy, z&gt;, which is the ending size of the particle billboard in meters (z is ignored).</string>
-         </map>
-         <key>PSYS_PART_FLAGS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string>Each particle that is emitted by the particle system is simulated based on the following flags. To use multiple flags, bitwise or (|) them together.</string>
-         </map>
-         <key>PSYS_PART_FOLLOW_SRC_MASK</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x10</integer>
-            <key>tooltip</key>
-            <string>The particle position is relative to the source objects position.</string>
-         </map>
-         <key>PSYS_PART_FOLLOW_VELOCITY_MASK</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x20</integer>
-            <key>tooltip</key>
-            <string>The particle orientation is rotated so the vertical axis faces towards the particle velocity.</string>
-         </map>
-         <key>PSYS_PART_INTERP_COLOR_MASK</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x1</integer>
-            <key>tooltip</key>
-            <string>Interpolate both the colour and alpha from the start value to the end value.</string>
-         </map>
-         <key>PSYS_PART_INTERP_SCALE_MASK</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x2</integer>
-            <key>tooltip</key>
-            <string>Interpolate the particle scale from the start value to the end value.</string>
-         </map>
-         <key>PSYS_PART_MAX_AGE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>19</integer>
-            <key>tooltip</key>
-            <string>Age in seconds of a particle at which it dies.</string>
-         </map>
-         <key>PSYS_PART_START_ALPHA</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>A float which determines the starting alpha of the object.</string>
-         </map>
-         <key>PSYS_PART_START_COLOR</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>A vector &lt;r.r, g.g, b.b&gt; which determines the starting colour of the object.</string>
-         </map>
-         <key>PSYS_PART_START_SCALE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string>A vector &lt;sx, sy, z&gt;, which is the starting size of the particle billboard in meters (z is ignored).</string>
-         </map>
-         <key>PSYS_PART_TARGET_LINEAR_MASK</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x80</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PSYS_PART_TARGET_POS_MASK</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x40</integer>
-            <key>tooltip</key>
-            <string>The particle heads towards the location of the target object as defined by PSYS_SRC_TARGET_KEY.</string>
-         </map>
-         <key>PSYS_PART_WIND_MASK</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x8</integer>
-            <key>tooltip</key>
-            <string>Particles have their velocity damped towards the wind velocity.</string>
-         </map>
-         <key>PSYS_SRC_ACCEL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>8</integer>
-            <key>tooltip</key>
-            <string>A vector &lt;x, y, z&gt; which is the acceleration to apply on particles.</string>
-         </map>
-         <key>PSYS_SRC_ANGLE_BEGIN</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>22</integer>
-            <key>tooltip</key>
-            <string>Area in radians specifying where particles will NOT be created (for ANGLE patterns)</string>
-         </map>
-         <key>PSYS_SRC_ANGLE_END</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>23</integer>
-            <key>tooltip</key>
-            <string>Area in radians filled with particles (for ANGLE patterns) (if lower than PSYS_SRC_ANGLE_BEGIN, acts as PSYS_SRC_ANGLE_BEGIN itself, and PSYS_SRC_ANGLE_BEGIN acts as PSYS_SRC_ANGLE_END).</string>
-         </map>
-         <key>PSYS_SRC_BURST_PART_COUNT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>15</integer>
-            <key>tooltip</key>
-            <string>How many particles to release in a burst.</string>
-         </map>
-         <key>PSYS_SRC_BURST_RADIUS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>16</integer>
-            <key>tooltip</key>
-            <string>What distance from the center of the object to create the particles.</string>
-         </map>
-         <key>PSYS_SRC_BURST_RATE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>13</integer>
-            <key>tooltip</key>
-            <string>How often to release a particle burst (float seconds).</string>
-         </map>
-         <key>PSYS_SRC_BURST_SPEED_MAX</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>18</integer>
-            <key>tooltip</key>
-            <string>Maximum speed that a particle should be moving.</string>
-         </map>
-         <key>PSYS_SRC_BURST_SPEED_MIN</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>17</integer>
-            <key>tooltip</key>
-            <string>Minimum speed that a particle should be moving.</string>
-         </map>
-         <key>PSYS_SRC_INNERANGLE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>10</integer>
-            <key>tooltip</key>
-            <string>Specifies the inner angle of the arc created by the PSYS_SRC_PATTERN_ANGLE or PSYS_SRC_PATTERN_ANGLE_CONE source pattern.
-			The area specified will NOT have particles in it.</string>
-         </map>
-         <key>PSYS_SRC_MAX_AGE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>19</integer>
-            <key>tooltip</key>
-            <string>How long this particle system should last, 0.0 means forever.</string>
-         </map>
-         <key>PSYS_SRC_OMEGA</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>21</integer>
-            <key>tooltip</key>
-            <string>Sets the angular velocity to rotate the axis that SRC_PATTERN_ANGLE and SRC_PATTERN_ANGLE_CONE use.</string>
-         </map>
-         <key>PSYS_SRC_OUTERANGLE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>11</integer>
-            <key>tooltip</key>
-            <string>Specifies the outer angle of the arc created by the PSYS_SRC_PATTERN_ANGLE or PSYS_SRC_PATTERN_ANGLE_CONE source pattern.
-			The area between the outer and inner angle will be filled with particles.</string>
-         </map>
-         <key>PSYS_SRC_PATTERN</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>9</integer>
-            <key>tooltip</key>
-            <string>The pattern which is used to generate particles.
-			Use one of the following values: PSYS_SRC_PATTERN Values.</string>
-         </map>
-         <key>PSYS_SRC_PATTERN_ANGLE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x04</integer>
-            <key>tooltip</key>
-            <string>Shoot particles across a 2 dimensional area defined by the arc created from PSYS_SRC_OUTERANGLE. There will be an open area defined by PSYS_SRC_INNERANGLE within the larger arc.</string>
-         </map>
-         <key>PSYS_SRC_PATTERN_ANGLE_CONE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x08</integer>
-            <key>tooltip</key>
-            <string>Shoot particles out in a 3 dimensional cone with an outer arc of PSYS_SRC_OUTERANGLE and an inner open area defined by PSYS_SRC_INNERANGLE.</string>
-         </map>
-         <key>PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x10</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PSYS_SRC_PATTERN_DROP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x01</integer>
-            <key>tooltip</key>
-            <string>Drop particles at the source position.</string>
-         </map>
-         <key>PSYS_SRC_PATTERN_EXPLODE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x02</integer>
-            <key>tooltip</key>
-            <string>Shoot particles out in all directions, using the burst parameters.</string>
-         </map>
-         <key>PSYS_SRC_TARGET_KEY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>20</integer>
-            <key>tooltip</key>
-            <string>The key of a target object to move towards if PSYS_PART_TARGET_POS_MASK is enabled.</string>
-         </map>
-         <key>PSYS_SRC_TEXTURE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>12</integer>
-            <key>tooltip</key>
-            <string>An asset name for the texture to use for the particles.</string>
-         </map>
-         <key>PU_EVADE_HIDDEN</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x07</integer>
-            <key>tooltip</key>
-            <string>Triggered when an llEvade character thinks it has hidden from its pursuer.</string>
-         </map>
-         <key>PU_EVADE_SPOTTED</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x08</integer>
-            <key>tooltip</key>
-            <string>Triggered when an llEvade character switches from hiding to running</string>
-         </map>
-         <key>PU_FAILURE_INVALID_GOAL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x03</integer>
-            <key>tooltip</key>
-            <string>Goal is not on the navigation-mesh and cannot be reached.</string>
-         </map>
-         <key>PU_FAILURE_INVALID_START</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x02</integer>
-            <key>tooltip</key>
-            <string>Character cannot navigate from the current location - e.g., the character is off the navmesh or too high above it.</string>
-         </map>
-         <key>PU_FAILURE_NO_NAVMESH</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x09</integer>
-            <key>tooltip</key>
-            <string>This is a fatal error reported to a character when there is no navmesh for the region. This usually indicates a server failure and users should file a bug report and include the time and region in which they received this message.</string>
-         </map>
-         <key>PU_FAILURE_NO_VALID_DESTINATION</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x06</integer>
-            <key>tooltip</key>
-            <string>There is no good place for the character to go - e.g., it is patrolling and all the patrol points are now unreachable.</string>
-         </map>
-         <key>PU_FAILURE_OTHER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1000000</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PU_FAILURE_TARGET_GONE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x05</integer>
-            <key>tooltip</key>
-            <string>Target (for llPursue or llEvade) can no longer be tracked - e.g., it left the region or is an avatar that is now more than about 30m outside the region.</string>
-         </map>
-         <key>PU_FAILURE_UNREACHABLE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x04</integer>
-            <key>tooltip</key>
-            <string>Goal is no longer reachable for some reason - e.g., an obstacle blocks the path.</string>
-         </map>
-         <key>PU_GOAL_REACHED</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x01</integer>
-            <key>tooltip</key>
-            <string>Character has reached the goal and will stop or choose a new goal (if wandering).</string>
-         </map>
-         <key>PU_SLOWDOWN_DISTANCE_REACHED</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x00</integer>
-            <key>tooltip</key>
-            <string>Character is near current goal.</string>
-         </map>
-         <key>PUBLIC_CHANNEL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string>PUBLIC_CHANNEL is an integer constant that, when passed to llSay, llWhisper, or llShout as a channel parameter, will print text to the publicly heard chat channel.</string>
-         </map>
-         <key>PURSUIT_FUZZ_FACTOR</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string>Selects a random destination near the offset.</string>
-         </map>
-         <key>PURSUIT_GOAL_TOLERANCE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PURSUIT_INTERCEPT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string>Define whether the character attempts to predict the target's location.</string>
-         </map>
-         <key>PURSUIT_OFFSET</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>Go to a position offset from the target.</string>
-         </map>
-         <key>RAD_TO_DEG</key>
-         <map>
-            <key>type</key>
-            <string>float</string>
-            <key>value</key>
-            <real>57.2957795</real>
-            <key>tooltip</key>
-            <string>57.2957795 - Number of degrees per radian. You can use this number to convert radians to degrees by multiplying the radians by this number.</string>
-         </map>
-         <key>RC_DATA_FLAGS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>RC_DETECT_PHANTOM</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>RC_GET_LINK_NUM</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>RC_GET_NORMAL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>RC_GET_ROOT_KEY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>RC_MAX_HITS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>RC_REJECT_AGENTS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>RC_REJECT_LAND</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>8</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>RC_REJECT_NONPHYSICAL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>RC_REJECT_PHYSICAL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>RC_REJECT_TYPES</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>RCERR_CAST_TIME_EXCEEDED</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>-3</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>RCERR_SIM_PERF_LOW</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>-2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>RCERR_UNKNOWN</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>-1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>REGION_FLAG_ALLOW_DAMAGE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>REGION_FLAG_ALLOW_DIRECT_TELEPORT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x100000</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>REGION_FLAG_BLOCK_FLY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x80000</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>REGION_FLAG_BLOCK_TERRAFORM</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x40</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>REGION_FLAG_DISABLE_COLLISIONS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x1000</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>REGION_FLAG_DISABLE_PHYSICS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x4000</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>REGION_FLAG_FIXED_SUN</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x10</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>REGION_FLAG_RESTRICT_PUSHOBJECT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x400000</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>REGION_FLAG_SANDBOX</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x100</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>REMOTE_DATA_CHANNEL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>REMOTE_DATA_REPLY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>REMOTE_DATA_REQUEST</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>REQUIRE_LINE_OF_SIGHT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>Define whether the character needs a line-of-sight to give chase.</string>
-         </map>
-         <key>RESTITUTION</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string>Used with llSetPhysicsMaterial to enable the density value. Must be between 0.0 and 1.0</string>
-         </map>
-         <key>REVERSE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x4</integer>
-            <key>tooltip</key>
-            <string>Play animation in reverse direction.</string>
-         </map>
-         <key>ROTATE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x20</integer>
-            <key>tooltip</key>
-            <string>Animate texture rotation.</string>
-         </map>
-         <key>SCALE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x40</integer>
-            <key>tooltip</key>
-            <string>Animate the texture scale.</string>
-         </map>
-         <key>SCRIPTED</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x8</integer>
-            <key>tooltip</key>
-            <string>Scripted in-world objects.</string>
-         </map>
-         <key>SIM_STAT_PCT_CHARS_STEPPED</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string>Returns the % of pathfinding characters skipped each frame, averaged over the last minute.\nThe returned value corresponds to the "Characters Updated" stat in the viewer's Statistics Bar.</string>
-         </map>
-         <key>SMOOTH</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x10</integer>
-            <key>tooltip</key>
-            <string>Slide in the X direction, instead of playing separate frames.</string>
-         </map>
-         <key>SQRT2</key>
-         <map>
-            <key>type</key>
-            <string>float</string>
-            <key>value</key>
-            <real>1.41421356</real>
-            <key>tooltip</key>
-            <string>1.41421356 - The square root of 2.</string>
-         </map>
-         <key>STATUS_BLOCK_GRAB</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>64</integer>
-            <key>tooltip</key>
-            <string>Controls whether the object can be grabbed.\nA grab is the default action when in third person, and is available as the hand tool in build mode. This is useful for physical objects that you don't want other people to be able to trivially disturb. The default is FALSE</string>
-         </map>
-         <key>STATUS_BLOCK_GRAB_OBJECT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1024</integer>
-            <key>tooltip</key>
-            <string>Prevent click-and-drag movement on all prims in the object.</string>
-         </map>
-         <key>STATUS_BOUNDS_ERROR</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1002</integer>
-            <key>tooltip</key>
-            <string>Argument(s) passed to function had a bounds error.</string>
-         </map>
-         <key>STATUS_CAST_SHADOWS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x200</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>STATUS_DIE_AT_EDGE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x80</integer>
-            <key>tooltip</key>
-            <string>Controls whether the object is returned to the owners inventory if it wanders off the edge of the world.\nIt is useful to set this status TRUE for things like bullets or rockets. The default is TRUE</string>
-         </map>
-         <key>STATUS_INTERNAL_ERROR</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1999</integer>
-            <key>tooltip</key>
-            <string>An internal error occurred.</string>
-         </map>
-         <key>STATUS_MALFORMED_PARAMS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1000</integer>
-            <key>tooltip</key>
-            <string>Function was called with malformed parameters.</string>
-         </map>
-         <key>STATUS_NOT_FOUND</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1003</integer>
-            <key>tooltip</key>
-            <string>Object or other item was not found.</string>
-         </map>
-         <key>STATUS_NOT_SUPPORTED</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1004</integer>
-            <key>tooltip</key>
-            <string>Feature not supported.</string>
-         </map>
-         <key>STATUS_OK</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string>Result of function call was a success.</string>
-         </map>
-         <key>STATUS_PHANTOM</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x10</integer>
-            <key>tooltip</key>
-            <string>Controls/indicates whether the object collides or not.\nSetting the value to TRUE makes the object non-colliding with all objects. It is a good idea to use this for most objects that move or rotate, but are non-physical. It is also useful for simulating volumetric lighting. The default is FALSE.</string>
-         </map>
-         <key>STATUS_PHYSICS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x1</integer>
-            <key>tooltip</key>
-            <string>Controls/indicates whether the object moves physically.\nThis controls the same flag that the UI check-box for Physical controls. The default is FALSE.</string>
-         </map>
-         <key>STATUS_RETURN_AT_EDGE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x100</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>STATUS_ROTATE_X</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>STATUS_ROTATE_Y</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x4</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>STATUS_ROTATE_Z</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x8</integer>
-            <key>tooltip</key>
-            <string>Controls/indicates whether the object can physically rotate around
-			the specific axis or not. This flag has no meaning
-			for non-physical objects. Set the value to FALSE
-			if you want to disable rotation around that axis. The
-			default is TRUE for a physical object.
-			A useful example to think about when visualizing
-			the effect is a sit-and-spin device. They spin around the
-			Z axis (up) but not around the X or Y axis.</string>
-         </map>
-         <key>STATUS_SANDBOX</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x20</integer>
-            <key>tooltip</key>
-            <string>Controls/indicates whether the object can cross region boundaries
-			and move more than 20 meters from its creation
-			point. The default if FALSE.</string>
-         </map>
-         <key>STATUS_TYPE_MISMATCH</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1001</integer>
-            <key>tooltip</key>
-            <string>Argument(s) passed to function had a type mismatch.</string>
-         </map>
-         <key>STATUS_WHITELIST_FAILED</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2001</integer>
-            <key>tooltip</key>
-            <string>Whitelist Failed.</string>
-         </map>
-         <key>STRING_TRIM</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x03</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>STRING_TRIM_HEAD</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x01</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>STRING_TRIM_TAIL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x02</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>TEXTURE_BLANK</key>
-         <map>
-            <key>type</key>
-            <string>key</string>
-            <key>value</key>
-            <uuid>5748decc-f629-461c-9a36-a35a221fe21f</uuid>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>TEXTURE_DEFAULT</key>
-         <map>
-            <key>type</key>
-            <string>key</string>
-            <key>value</key>
-            <uuid>89556747-24cb-43ed-920b-47caed15465f</uuid>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>TEXTURE_MEDIA</key>
-         <map>
-            <key>type</key>
-            <string>key</string>
-            <key>value</key>
-            <uuid>8b5fec65-8d8d-9dc5-cda8-8fdf2716e361</uuid>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>TEXTURE_PLYWOOD</key>
-         <map>
-            <key>type</key>
-            <string>key</string>
-            <key>value</key>
-            <uuid>89556747-24cb-43ed-920b-47caed15465f</uuid>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>TEXTURE_TRANSPARENT</key>
-         <map>
-            <key>type</key>
-            <string>key</string>
-            <key>value</key>
-            <uuid>8dcd4a48-2d37-4909-9f78-f7a9eb4ef903</uuid>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>TOUCH_INVALID_FACE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0xFFFFFFFF</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>TOUCH_INVALID_TEXCOORD</key>
-         <map>
-            <key>type</key>
-            <string>vector</string>
-            <key>value</key>
-            <map>
-               <key>x</key>
-               <real>-1.0</real>
-               <key>y</key>
-               <real>-1.0</real>
-               <key>z</key>
-               <real>0.0</real>
-            </map>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>TOUCH_INVALID_VECTOR</key>
-         <map>
-            <key>type</key>
-            <string>vector</string>
-            <key>value</key>
-            <map>
-               <key>x</key>
-               <real>0.0</real>
-               <key>y</key>
-               <real>0.0</real>
-               <key>z</key>
-               <real>0.0</real>
-            </map>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>TRAVERSAL_TYPE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>7</integer>
-            <key>tooltip</key>
-            <string>One of TRAVERSAL_TYPE_FAST, TRAVERSAL_TYPE_SLOW, and TRAVERSAL_TYPE_NONE.</string>
-         </map>
-         <key>TRAVERSAL_TYPE_FAST</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>TRAVERSAL_TYPE_NONE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>TRAVERSAL_TYPE_SLOW</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>TRUE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>An integer constant for boolean comparisons. Has the value '1'.</string>
-         </map>
-         <key>TWO_PI</key>
-         <map>
-            <key>type</key>
-            <string>float</string>
-            <key>value</key>
-            <real>6.28318530</real>
-            <key>tooltip</key>
-            <string>6.28318530 - The radians of a circle.</string>
-         </map>
-         <key>TYPE_FLOAT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>The list entry is a float.</string>
-         </map>
-         <key>TYPE_INTEGER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>The list entry is an integer.</string>
-         </map>
-         <key>TYPE_INVALID</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string>The list entry is invalid.</string>
-         </map>
-         <key>TYPE_KEY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string>The list entry is a key.</string>
-         </map>
-         <key>TYPE_ROTATION</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>6</integer>
-            <key>tooltip</key>
-            <string>The list entry is a rotation.</string>
-         </map>
-         <key>TYPE_STRING</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string>The list entry is a string.</string>
-         </map>
-         <key>TYPE_VECTOR</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string>The list entry is a vector.</string>
-         </map>
-         <key>URL_REQUEST_DENIED</key>
-         <map>
-            <key>type</key>
-            <string>string</string>
-            <key>value</key>
-            <string>URL_REQUEST_DENIED</string>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>URL_REQUEST_GRANTED</key>
-         <map>
-            <key>type</key>
-            <string>string</string>
-            <key>value</key>
-            <string>URL_REQUEST_GRANTED</string>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>32</integer>
-            <key>tooltip</key>
-            <string>A slider between minimum (0.0) and maximum (1.0) deflection of angular orientation. That is, its a simple scalar for modulating the strength of angular deflection such that the vehicles preferred axis of motion points toward its real velocity.</string>
-         </map>
-         <key>VEHICLE_ANGULAR_DEFLECTION_TIMESCALE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>33</integer>
-            <key>tooltip</key>
-            <string>The time-scale for exponential success of linear deflection deflection. Its another way to specify the strength of the vehicles tendency to reorient itself so that its preferred axis of motion agrees with its true velocity.</string>
-         </map>
-         <key>VEHICLE_ANGULAR_FRICTION_TIMESCALE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>17</integer>
-            <key>tooltip</key>
-            <string>A vector of timescales for exponential decay of the vehicles angular velocity about its preferred axes of motion (at, left, up).
-			Range = [0.07, inf) seconds for each element of the vector.</string>
-         </map>
-         <key>VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>35</integer>
-            <key>tooltip</key>
-            <string>The timescale for exponential decay of the angular motors magnitude.</string>
-         </map>
-         <key>VEHICLE_ANGULAR_MOTOR_DIRECTION</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>19</integer>
-            <key>tooltip</key>
-            <string>The direction and magnitude (in preferred frame) of the vehicles angular motor.The vehicle will accelerate (or decelerate if necessary) to match its velocity to its motor.</string>
-         </map>
-         <key>VEHICLE_ANGULAR_MOTOR_TIMESCALE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>34</integer>
-            <key>tooltip</key>
-            <string>The timescale for exponential approach to full angular motor velocity.</string>
-         </map>
-         <key>VEHICLE_BANKING_EFFICIENCY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>38</integer>
-            <key>tooltip</key>
-            <string>A slider between anti (-1.0), none (0.0), and maxmum (1.0) banking strength.</string>
-         </map>
-         <key>VEHICLE_BANKING_MIX</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>39</integer>
-            <key>tooltip</key>
-            <string>A slider between static (0.0) and dynamic (1.0) banking. "Static" means the banking scales only with the angle of roll, whereas "dynamic" is a term that also scales with the vehicles linear speed.</string>
-         </map>
-         <key>VEHICLE_BANKING_TIMESCALE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>40</integer>
-            <key>tooltip</key>
-            <string>The timescale for banking to exponentially approach its maximum effect. This is another way to scale the strength of the banking effect, however it affects the term that is proportional to the difference between what the banking behavior is trying to do, and what the vehicle is actually doing.</string>
-         </map>
-         <key>VEHICLE_BUOYANCY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>27</integer>
-            <key>tooltip</key>
-            <string>A slider between minimum (0.0) and maximum anti-gravity (1.0).</string>
-         </map>
-         <key>VEHICLE_FLAG_CAMERA_DECOUPLED</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x200</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x10</integer>
-            <key>tooltip</key>
-            <string>Hover at global height.</string>
-         </map>
-         <key>VEHICLE_FLAG_HOVER_TERRAIN_ONLY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x8</integer>
-            <key>tooltip</key>
-            <string>Ignore water height when hovering.</string>
-         </map>
-         <key>VEHICLE_FLAG_HOVER_UP_ONLY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x20</integer>
-            <key>tooltip</key>
-            <string>Hover does not push down. Use this flag for hovering vehicles that should be able to jump above their hover height.</string>
-         </map>
-         <key>VEHICLE_FLAG_HOVER_WATER_ONLY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x4</integer>
-            <key>tooltip</key>
-            <string>Ignore terrain height when hovering.</string>
-         </map>
-         <key>VEHICLE_FLAG_LIMIT_MOTOR_UP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x40</integer>
-            <key>tooltip</key>
-            <string>Prevents ground vehicles from motoring into the sky.</string>
-         </map>
-         <key>VEHICLE_FLAG_LIMIT_ROLL_ONLY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x2</integer>
-            <key>tooltip</key>
-            <string>For vehicles with vertical attractor that want to be able to climb/dive, for instance, aeroplanes that want to use the banking feature.</string>
-         </map>
-         <key>VEHICLE_FLAG_MOUSELOOK_BANK</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x100</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>VEHICLE_FLAG_MOUSELOOK_STEER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x80</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>VEHICLE_FLAG_NO_DEFLECTION_UP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x1</integer>
-            <key>tooltip</key>
-            <string>This flag prevents linear deflection parallel to world z-axis. This is useful for preventing ground vehicles with large linear deflection, like bumper cars, from climbing their linear deflection into the sky.</string>
-         </map>
-         <key>VEHICLE_FLAG_NO_FLY_UP</key>
-         <map>
-            <key>deprecated</key>
-            <boolean>true</boolean>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x1</integer>
-            <key>tooltip</key>
-            <string>Old, changed to VEHICLE_FLAG_NO_DEFLECTION_UP</string>
-         </map>
-         <key>VEHICLE_HOVER_EFFICIENCY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>25</integer>
-            <key>tooltip</key>
-            <string>A slider between minimum (0.0 = bouncy) and maximum (1.0 = fast as possible) damped motion of the hover behavior. </string>
-         </map>
-         <key>VEHICLE_HOVER_HEIGHT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>24</integer>
-            <key>tooltip</key>
-            <string>The height (above the terrain or water, or global) at which the vehicle will try to hover.</string>
-         </map>
-         <key>VEHICLE_HOVER_TIMESCALE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>26</integer>
-            <key>tooltip</key>
-            <string>Period of time (in seconds) for the vehicle to achieve its hover height.</string>
-         </map>
-         <key>VEHICLE_LINEAR_DEFLECTION_EFFICIENCY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>28</integer>
-            <key>tooltip</key>
-            <string>A slider between minimum (0.0) and maximum (1.0) deflection of linear velocity. That is, its a simple scalar for modulating the strength of linear deflection.</string>
-         </map>
-         <key>VEHICLE_LINEAR_DEFLECTION_TIMESCALE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>29</integer>
-            <key>tooltip</key>
-            <string>The timescale for exponential success of linear deflection deflection. It is another way to specify how much time it takes for the vehicles linear velocity to be redirected to its preferred axis of motion.</string>
-         </map>
-         <key>VEHICLE_LINEAR_FRICTION_TIMESCALE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>16</integer>
-            <key>tooltip</key>
-            <string>A vector of timescales for exponential decay of the vehicles linear velocity along its preferred axes of motion (at, left, up).
-			Range = [0.07, inf) seconds for each element of the vector.</string>
-         </map>
-         <key>VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>35</integer>
-            <key>tooltip</key>
-            <string>The timescale for exponential decay of the linear motors magnitude.</string>
-         </map>
-         <key>VEHICLE_LINEAR_MOTOR_DIRECTION</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>18</integer>
-            <key>tooltip</key>
-            <string>The direction and magnitude (in preferred frame) of the vehicles linear motor. The vehicle will accelerate (or decelerate if necessary) to match its velocity to its motor.
-			Range of magnitude = [0, 30] meters/second.</string>
-         </map>
-         <key>VEHICLE_LINEAR_MOTOR_OFFSET</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>20</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>VEHICLE_LINEAR_MOTOR_TIMESCALE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>30</integer>
-            <key>tooltip</key>
-            <string>The timescale for exponential approach to full linear motor velocity.</string>
-         </map>
-         <key>VEHICLE_REFERENCE_FRAME</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>44</integer>
-            <key>tooltip</key>
-            <string>A rotation of the vehicles preferred axes of motion and orientation (at, left, up) with respect to the vehicles local frame (x, y, z).</string>
-         </map>
-         <key>VEHICLE_TYPE_AIRPLANE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string>Uses linear deflection for lift, no hover, and banking to turn.
-			// very little friction along forward-back axis
-			llSetVehicleVectorParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, &lt;200, 10, 5&gt; );
-			// uniform angular friction
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_FRICTION_TIMESCALE, 20 );
-			// linear motor
-			llSetVehicleVectorParam( VEHICLE_LINEAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
-			llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_TIMESCALE, 2 );
-			llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 60 );
-			// angular motor
-			llSetVehicleVectorParam( VEHICLE_ANGULAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_TIMESCALE, 4 );
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 8 );
-			// no hover
-			llSetVehicleFloatParam( VEHICLE_HOVER_HEIGHT, 0 );
-			llSetVehicleFloatParam( VEHICLE_HOVER_EFFICIENCY, 0.5 );
-			llSetVehicleFloatParam( VEHICLE_HOVER_TIMESCALE, 1000 );
-			llSetVehicleFloatParam( VEHICLE_BUOYANCY, 0 );
-			// linear deflection
-			llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 0.5 );
-			llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 0.5 );
-			// angular deflection
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 1.0 );
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 2.0 );
-			// vertical attractor
-			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 0.9 );
-			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 2 );
-			// banking
-			llSetVehicleFloatParam( VEHICLE_BANKING_EFFICIENCY, 1 );
-			llSetVehicleFloatParam( VEHICLE_BANKING_MIX, 0.7 );
-			llSetVehicleFloatParam( VEHICLE_BANKING_TIMESCALE, 2 );
-			// default rotation of local frame
-			llSetVehicleRotationParam( VEHICLE_REFERENCE_FRAME, &lt;0, 0, 0, 1&gt; );
-			// remove these flags
-			llRemoveVehicleFlags( VEHICLE_FLAG_NO_DEFLECTION_UP
-			| VEHICLE_FLAG_HOVER_WATER_ONLY
-			| VEHICLE_FLAG_HOVER_TERRAIN_ONLY
-			| VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT
-			| VEHICLE_FLAG_HOVER_UP_ONLY
-			| VEHICLE_FLAG_LIMIT_MOTOR_UP );
-			// set these flags
-			llSetVehicleFlags( VEHICLE_FLAG_LIMIT_ROLL_ONLY );</string>
-         </map>
-         <key>VEHICLE_TYPE_BALLOON</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string>Hover, and friction, but no deflection.
-			// uniform linear friction
-			llSetVehicleFloatParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, 5 );
-			// uniform angular friction
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_FRICTION_TIMESCALE, 10 );
-			// linear motor
-			llSetVehicleVectorParam( VEHICLE_LINEAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
-			llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_TIMESCALE, 5 );
-			llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 60 );
-			// angular motor
-			llSetVehicleVectorParam( VEHICLE_ANGULAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_TIMESCALE, 6 );
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 10 );
-			// hover
-			llSetVehicleFloatParam( VEHICLE_HOVER_HEIGHT, 5 );
-			llSetVehicleFloatParam( VEHICLE_HOVER_EFFICIENCY, 0.8 );
-			llSetVehicleFloatParam( VEHICLE_HOVER_TIMESCALE, 10 );
-			llSetVehicleFloatParam( VEHICLE_BUOYANCY, 1 );
-			// no linear deflection
-			llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 0 );
-			llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 5 );
-			// no angular deflection
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 0 );
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 5 );
-			// no vertical attractor
-			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 1 );
-			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 1000 );
-			// no banking
-			llSetVehicleFloatParam( VEHICLE_BANKING_EFFICIENCY, 0 );
-			llSetVehicleFloatParam( VEHICLE_BANKING_MIX, 0.7 );
-			llSetVehicleFloatParam( VEHICLE_BANKING_TIMESCALE, 5 );
-			// default rotation of local frame
-			llSetVehicleRotationParam( VEHICLE_REFERENCE_FRAME, &lt;0, 0, 0, 1&gt; );
-			// remove all flags
-			llRemoveVehicleFlags( VEHICLE_FLAG_NO_DEFLECTION_UP
-			| VEHICLE_FLAG_HOVER_WATER_ONLY
-			| VEHICLE_FLAG_LIMIT_ROLL_ONLY
-			| VEHICLE_FLAG_HOVER_TERRAIN_ONLY
-			| VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT
-			| VEHICLE_FLAG_HOVER_UP_ONLY
-			| VEHICLE_FLAG_LIMIT_MOTOR_UP );</string>
-         </map>
-         <key>VEHICLE_TYPE_BOAT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string>Hovers over water with lots of friction and some anglar deflection.
-			// least for forward-back, most friction for up-down
-			llSetVehicleVectorParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, &lt;10, 3, 2&gt; );
-			// uniform angular friction (setting it as a scalar rather than a vector)
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_FRICTION_TIMESCALE, 10 );
-			// linear motor wins after about five seconds, decays after about a minute
-			llSetVehicleVectorParam( VEHICLE_LINEAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
-			llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_TIMESCALE, 5 );
-			llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 60 );
-			// angular motor wins after four seconds, decays in same amount of time
-			llSetVehicleVectorParam( VEHICLE_ANGULAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_TIMESCALE, 4 );
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 4 );
-			// hover
-			llSetVehicleFloatParam( VEHICLE_HOVER_HEIGHT, 0 );
-			llSetVehicleFloatParam( VEHICLE_HOVER_EFFICIENCY, 0.5 );
-			llSetVehicleFloatParam( VEHICLE_HOVER_TIMESCALE, 2.0 );
-			llSetVehicleFloatParam( VEHICLE_BUOYANCY, 1 );
-			// halfway linear deflection with timescale of 3 seconds
-			llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 0.5 );
-			llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 3 );
-			// angular deflection
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 0.5 );
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 5 );
-			// somewhat bounscy vertical attractor
-			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 0.5 );
-			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 5 );
-			// weak negative damped banking
-			llSetVehicleFloatParam( VEHICLE_BANKING_EFFICIENCY, -0.3 );
-			llSetVehicleFloatParam( VEHICLE_BANKING_MIX, 0.8 );
-			llSetVehicleFloatParam( VEHICLE_BANKING_TIMESCALE, 1 );
-			// default rotation of local frame
-			llSetVehicleRotationParam( VEHICLE_REFERENCE_FRAME, &lt;0, 0, 0, 1&gt; );
-			// remove these flags
-			llRemoveVehicleFlags( VEHICLE_FLAG_HOVER_TERRAIN_ONLY
-			| VEHICLE_FLAG_LIMIT_ROLL_ONLY
-			| VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT);
-			// set these flags
-			llSetVehicleFlags( VEHICLE_FLAG_NO_DEFLECTION_UP
-			| VEHICLE_FLAG_HOVER_WATER_ONLY
-			| VEHICLE_FLAG_HOVER_UP_ONLY
-			| VEHICLE_FLAG_LIMIT_MOTOR_UP );</string>
-         </map>
-         <key>VEHICLE_TYPE_CAR</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>Another vehicle that bounces along the ground but needs
-			the motors to be driven from external controls or
-			timer events.
-			// most friction for left-right, least for up-down
-			llSetVehicleVectorParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, &lt;100, 2, 1000&gt; );
-			// no angular friction
-			llSetVehicleVectorParam( VEHICLE_ANGULAR_FRICTION_TIMESCALE, &lt;1000, 1000, 1000&gt; );
-			// linear motor wins after about a second, decays after about a minute
-			llSetVehicleVectorParam( VEHICLE_LINEAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
-			llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_TIMESCALE, 1 );
-			llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 60 );
-			// angular motor wins after a second, decays in less time than that
-			llSetVehicleVectorParam( VEHICLE_ANGULAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_TIMESCALE, 1 );
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 0.8 );
-			// no hover
-			llSetVehicleFloatParam( VEHICLE_HOVER_HEIGHT, 0 );
-			llSetVehicleFloatParam( VEHICLE_HOVER_EFFICIENCY, 0 );
-			llSetVehicleFloatParam( VEHICLE_HOVER_TIMESCALE, 1000 );
-			llSetVehicleFloatParam( VEHICLE_BUOYANCY, 0 );
-			// maximum linear deflection with timescale of 2 seconds
-			llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 1 );
-			llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 2 );
-			// no angular deflection
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 0 );
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 10 );
-			// critically damped vertical attractor
-			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 1 );
-			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 10 );
-			// weak negative critically damped banking
-			llSetVehicleFloatParam( VEHICLE_BANKING_EFFICIENCY, -0.2 );
-			llSetVehicleFloatParam( VEHICLE_BANKING_MIX, 1 );
-			llSetVehicleFloatParam( VEHICLE_BANKING_TIMESCALE, 1 );
-			// default rotation of local frame
-			llSetVehicleRotationParam( VEHICLE_REFERENCE_FRAME, &lt;0, 0, 0, 1&gt; );
-			// remove these flags
-			llRemoveVehicleFlags( VEHICLE_FLAG_HOVER_WATER_ONLY
-			| VEHICLE_FLAG_HOVER_TERRAIN_ONLY
-			| VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT);
-			// set these flags
-			llSetVehicleFlags( VEHICLE_FLAG_NO_DEFLECTION_UP
-			| VEHICLE_FLAG_LIMIT_ROLL_ONLY
-			| VEHICLE_FLAG_HOVER_UP_ONLY
-			| VEHICLE_FLAG_LIMIT_MOTOR_UP );</string>
-         </map>
-         <key>VEHICLE_TYPE_NONE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>VEHICLE_TYPE_SLED</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>Simple vehicle that bumps along the ground,
-			and likes to move along its local x-axis.
-			// most friction for left-right, least for up-down
-			llSetVehicleVectorParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, &lt;30, 1, 1000&gt; );
-			// no angular friction
-			llSetVehicleVectorParam( VEHICLE_ANGULAR_FRICTION_TIMESCALE, &lt;1000, 1000, 1000&gt; );
-			// no linear motor
-			llSetVehicleVectorParam( VEHICLE_LINEAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
-			llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_TIMESCALE, 1000 );
-			llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 120 );
-			// no angular motor
-			llSetVehicleVectorParam( VEHICLE_ANGULAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_TIMESCALE, 1000 );
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 120 );
-			// no hover (but with timescale of 10 sec if enabled)
-			llSetVehicleFloatParam( VEHICLE_HOVER_HEIGHT, 0 );
-			llSetVehicleFloatParam( VEHICLE_HOVER_EFFICIENCY, 10 );
-			llSetVehicleFloatParam( VEHICLE_HOVER_TIMESCALE, 10 );
-			llSetVehicleFloatParam( VEHICLE_BUOYANCY, 0 );
-			// maximum linear deflection with timescale of 1 second
-			llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 1 );
-			llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 1 );
-			// no angular deflection
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 0 );
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 10 );
-			// no vertical attractor (doesnt mind flipping over)
-			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 1 );
-			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 1000 );
-			// no banking
-			llSetVehicleFloatParam( VEHICLE_BANKING_EFFICIENCY, 0 );
-			llSetVehicleFloatParam( VEHICLE_BANKING_MIX, 1 );
-			llSetVehicleFloatParam( VEHICLE_BANKING_TIMESCALE, 10 );
-			// default rotation of local frame
-			llSetVehicleRotationParam( VEHICLE_REFERENCE_FRAME, &lt;0, 0, 0, 1&gt; );
-			// remove these flags
-			llRemoveVehicleFlags( VEHICLE_FLAG_HOVER_WATER_ONLY
-			| VEHICLE_FLAG_HOVER_TERRAIN_ONLY
-			| VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT
-			| VEHICLE_FLAG_HOVER_UP_ONLY );
-			// set these flags (the limit_roll flag will have no effect
-			// until banking is enabled, if ever)
-			llSetVehicleFlags( VEHICLE_FLAG_NO_DEFLECTION_UP
-			| VEHICLE_FLAG_LIMIT_ROLL_ONLY
-			| VEHICLE_FLAG_LIMIT_MOTOR_UP );</string>
-         </map>
-         <key>VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>36</integer>
-            <key>tooltip</key>
-            <string>A slider between minimum (0.0 = wobbly) and maximum (1.0 = firm as possible) stability of the vehicle to keep itself upright.</string>
-         </map>
-         <key>VEHICLE_VERTICAL_ATTRACTION_TIMESCALE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>37</integer>
-            <key>tooltip</key>
-            <string>The period of wobble, or timescale for exponential approach, of the vehicle to rotate such that its preferred "up" axis is oriented along the worlds "up" axis.</string>
-         </map>
-         <key>VERTICAL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>WANDER_PAUSE_AT_WAYPOINTS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>ZERO_ROTATION</key>
-         <map>
-            <key>type</key>
-            <string>rotation</string>
-            <key>value</key>
-            <map>
-               <key>x</key>
-               <real>0.0</real>
-               <key>y</key>
-               <real>0.0</real>
-               <key>z</key>
-               <real>0.0</real>
-               <key>w</key>
-               <real>1.0</real>
-            </map>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>ZERO_VECTOR</key>
-         <map>
-            <key>type</key>
-            <string>vector</string>
-            <key>value</key>
-            <map>
-               <key>x</key>
-               <real>0.0</real>
-               <key>y</key>
-               <real>0.0</real>
-               <key>z</key>
-               <real>0.0</real>
-            </map>
-            <key>tooltip</key>
-            <string/>
-         </map>
-      </map>
-      <key>events</key>
-      <map>
-         <key>at_rot_target</key>
-         <map>
-            <key>arguments</key>
-            <map>
-               <key>TargetNumber</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>TargetRotation</key>
-               <map>
-                  <key>type</key>
-                  <string>rotation</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>CurrentRotation</key>
-               <map>
-                  <key>type</key>
-                  <string>rotation</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>This event is triggered when a script comes within a defined angle of a target rotation. The range and rotation, are set by a call to llRotTarget.</string>
-         </map>
-         <key>at_target</key>
-         <map>
-            <key>arguments</key>
-            <map>
-               <key>TargetNumber</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>TargetPosition</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>CurrentPosition</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>This event is triggered when the scripted object comes within a defined range of the target position, defined by the llTarget function call.</string>
-         </map>
-         <key>attach</key>
-         <map>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>This event is triggered whenever an object is attached or detached from an avatar. If it is attached, the key of the avatar it is attached to is passed in, otherwise NULL_KEY is.</string>
-         </map>
-         <key>changed</key>
-         <map>
-            <key>arguments</key>
-            <map>
-               <key>Changed</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Triggered when various events change the object. The change argument will be a bit-field of CHANGED_* constants.</string>
-         </map>
-         <key>collision</key>
-         <map>
-            <key>arguments</key>
-            <map>
-               <key>NumberOfCollisions</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>This event is raised while another object, or avatar, is colliding with the object the script is attached to.
-			The number of detected objects is passed to the script. Information on those objects may be gathered via the llDetected* functions.</string>
-         </map>
-         <key>collision_end</key>
-         <map>
-            <key>arguments</key>
-            <map>
-               <key>NumberOfCollisions</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>This event is raised when another object, or avatar, stops colliding with the object the script is attached to.
-			The number of detected objects is passed to the script. Information on those objects may be gathered via the llDetected* library functions.</string>
-         </map>
-         <key>collision_start</key>
-         <map>
-            <key>arguments</key>
-            <map>
-               <key>NumberOfCollisions</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>This event is raised when another object, or avatar, starts colliding with the object the script is attached to.
-			The number of detected objects is passed to the script. Information on those objects may be gathered via the llDetected* library functions.</string>
-         </map>
-         <key>control</key>
-         <map>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Levels</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Edges</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Once a script has the ability to grab control inputs from the avatar, this event will be used to pass the commands into the script.
-			The levels and edges are bit-fields of control constants.</string>
-         </map>
-         <key>dataserver</key>
-         <map>
-            <key>arguments</key>
-            <map>
-               <key>RequestID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Data</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>This event is triggered when the requested data is returned to the script.
-			Data may be requested by the llRequestAgentData, llRequestInventoryData, and llGetNotecardLine function calls, for example.</string>
-         </map>
-         <key>email</key>
-         <map>
-            <key>arguments</key>
-            <map>
-               <key>Time</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Address</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Subject</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Body</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>NumberRemaining</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>This event is triggered when an email sent to this script arrives.
-			The number remaining tells how many more emails are known to be still pending.</string>
-         </map>
-         <key>http_request</key>
-         <map>
-            <key>arguments</key>
-            <map>
-               <key>HTTPRequestID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>HTTPMethod</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Body</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Triggered when task receives an HTTP request.</string>
-         </map>
-         <key>http_response</key>
-         <map>
-            <key>arguments</key>
-            <map>
-               <key>HTTPRequestID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Status</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Metadata</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Body</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>This event handler is invoked when an HTTP response is received for a pending llHTTPRequest request or if a pending request fails or times out.</string>
-         </map>
-         <key>land_collision</key>
-         <map>
-            <key>arguments</key>
-            <map>
-               <key>Position</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>This event is raised when the object the script is attached to is colliding with the ground.</string>
-         </map>
-         <key>land_collision_end</key>
-         <map>
-            <key>arguments</key>
-            <map>
-               <key>Position</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>This event is raised when the object the script is attached to stops colliding with the ground.</string>
-         </map>
-         <key>land_collision_start</key>
-         <map>
-            <key>arguments</key>
-            <map>
-               <key>Position</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>This event is raised when the object the script is attached to begins to collide with the ground.</string>
-         </map>
-         <key>link_message</key>
-         <map>
-            <key>arguments</key>
-            <map>
-               <key>SendersLink</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Value</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>ID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Triggered when object receives a link message via llMessageLinked function call.</string>
-         </map>
-         <key>listen</key>
-         <map>
-            <key>arguments</key>
-            <map>
-               <key>Channel</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Name</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>ID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>This event is raised whenever a chat message matching the constraints set in the llListen command is received. The name and ID of the speaker, as well as the message, are passed in as parameters.
-			Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 through 2,147,483,648 are private channels that are not sent to avatars but other scripts can listen on those channels.</string>
-         </map>
-         <key>money</key>
-         <map>
-            <key>arguments</key>
-            <map>
-               <key>Payer</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Amount</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>This event is triggered when a resident has given an amount of Linden dollars to the object.</string>
-         </map>
-         <key>moving_end</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Triggered whenever an object with this script stops moving.</string>
-         </map>
-         <key>moving_start</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Triggered whenever an object with this script starts moving.</string>
-         </map>
-         <key>no_sensor</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>This event is raised when sensors are active, via the llSensor function call, but are not sensing anything.</string>
-         </map>
-         <key>not_at_rot_target</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>When a target is set via the llRotTarget function call, but the script is outside the specified angle this event is raised.</string>
-         </map>
-         <key>not_at_target</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>When a target is set via the llTarget library call, but the script is outside the specified range this event is raised.</string>
-         </map>
-         <key>object_rez</key>
-         <map>
-            <key>arguments</key>
-            <map>
-               <key>RezzedObjectsID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Triggered when an object rezzes another object from its inventory via the llRezObject, or similar, functions. The id is the globally unique key for the object rezzed.</string>
-         </map>
-         <key>on_rez</key>
-         <map>
-            <key>arguments</key>
-            <map>
-               <key>StartParameter</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Triggered whenever an object is rezzed from inventory or by another object. The start parameter is passed in from the llRezObject call, or zero if from inventory.</string>
-         </map>
-         <key>path_update</key>
-         <map>
-            <key>arguments</key>
-            <map>
-               <key>Type</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Reserved</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>This event is called to inform the script of changes within the object's path-finding status.</string>
-         </map>
-         <key>remote_data</key>
-         <map>
-            <key>arguments</key>
-            <map>
-               <key>EventType</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>ChannelID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>MessageID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Sender</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Data</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Data</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Triggered by various XML-RPC calls with event_type specifying the type of data.</string>
-         </map>
-         <key>run_time_permissions</key>
-         <map>
-            <key>arguments</key>
-            <map>
-               <key>PermissionFlags</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Scripts need permission from either the owner or the avatar they wish to act on before they may perform certain functions, such as debiting money from their owners account, triggering an animation on an avatar, or capturing control inputs. The llRequestPermissions library function is used to request these permissions and the various permissions integer constants can be supplied.
-			The integer returned to this event handler contains the current set of permissions flags, so if permissions equal 0 then no permissions are set.</string>
-         </map>
-         <key>sensor</key>
-         <map>
-            <key>arguments</key>
-            <map>
-               <key>NumberDetected</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>This event is raised whenever objects matching the constraints of the llSensor command are detected.
-			The number of detected objects is passed to the script in the parameter. Information on those objects may be gathered via the llDetected* functions.</string>
-         </map>
-         <key>state_entry</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>The state_entry event occurs whenever a new state is entered, including at program start, and is always the first event handled.</string>
-         </map>
-         <key>state_exit</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>The state_exit event occurs whenever the state command is used to transition to another state. It is handled before the new states state_entry event.</string>
-         </map>
-         <key>timer</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>This event is raised at regular intervals set by the llSetTimerEvent library function.</string>
-         </map>
-         <key>touch</key>
-         <map>
-            <key>arguments</key>
-            <map>
-               <key>NumberOfTouches</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>This event is raised while a user is touching the object the script is attached to.
-			The number of touching objects is passed to the script in the parameter.
-			Information on those objects may be gathered via the llDetected* library functions.</string>
-         </map>
-         <key>touch_end</key>
-         <map>
-            <key>arguments</key>
-            <map>
-               <key>NumberOfTouches</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>This event is raised when a user stops touching the object the script is attached to. The number of touches is passed to the script in the parameter.
-			Information on those objects may be gathered via the llDetected* library functions.</string>
-         </map>
-         <key>touch_start</key>
-         <map>
-            <key>arguments</key>
-            <map>
-               <key>NumberOfTouches</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>This event is raised when a user first touches the object the script is attached to. The number of touches is passed to the script in the parameter.
-			Information on those objects may be gathered via the llDetected() library functions.</string>
-         </map>
-         <key>transaction_result</key>
-         <map>
-            <key>arguments</key>
-            <map>
-               <key>RequestID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Success</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Message</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Triggered by llTransferMoney() function.</string>
-         </map>
-      </map>
-      <key>functions</key>
-      <map>
-         <key>llAbs</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Value</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the absolute (positive) version of Value.</string>
-         </map>
-         <key>llAcos</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>Value</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the arc-cosine of Value, in radians.</string>
-         </map>
-         <key>llAddToLandBanList</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>ID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Hours</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Add avatar ID to the parcel ban list for the specified number of Hours.\nA value of 0 for Hours will add the agent indefinitely.\nThe smallest value that Hours will accept is 0.01; anything smaller will be seen as 0.\nWhen values that small are used, it seems the function bans in approximately 30 second increments (Probably 36 second increments, as 0.01 of an hour is 36 seconds).\nResidents teleporting to a parcel where they are banned will be redirected to a neighbouring parcel.</string>
-         </map>
-         <key>llAddToLandPassList</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.1</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>ID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Hours</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Add avatar ID to the land pass list, for a duration of Hours.</string>
-         </map>
-         <key>llAdjustSoundVolume</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.1</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Volume</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Adjusts the volume (0.0 - 1.0) of the currently playing attached sound started with llPlaySound or llLoopSound.\nAdjusts the volume of the currently playing attached sound started with llPlaySound or llLoopSound.\nThis function has no effect on sounds started with llTriggerSound.</string>
-         </map>
-         <key>llAllowInventoryDrop</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Flag</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>If Flag == TRUE, users without object modify permissions can still drop inventory items into the object.</string>
-         </map>
-         <key>llAngleBetween</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>Rot1</key>
-               <map>
-                  <key>type</key>
-                  <string>rotation</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Rot2</key>
-               <map>
-                  <key>type</key>
-                  <string>rotation</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the angle, in radians, between rotations Rot1 and Rot2.</string>
-         </map>
-         <key>llApplyImpulse</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Force</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Local</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Applies impulse to the object.\nApplies the Force in local coordinates if Local == TRUE. Otherwise the Force is applied in global coordinates.\nThis function only works on physical objects.</string>
-         </map>
-         <key>llApplyRotationalImpulse</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Force</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Local</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Applies rotational impulse to the object,\nThe force is in local coordinates, if Local == TRUE, otherwise the impulse is applied in global coordinates.\nThis function only works on physical objects.</string>
-         </map>
-         <key>llAsin</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>Value</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the arc-sine, in radians, of Value.</string>
-         </map>
-         <key>llAtan2</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>y</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>x</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the arc-tangent2 of y, x.</string>
-         </map>
-         <key>llAttachToAvatar</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>AttachmentPoint</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Attach to avatar at point AttachmentPoint, if task has permissions to do so.\nAttach to avatar at point iAttachmentPoint.\nRequires the PERMISSION_ATTACH runtime permission.</string>
-         </map>
-         <key>llAttachToAvatarTemp</key>
-         <map>
-            <key>energy</key>
-            <real>0</real>
-            <key>sleep</key>
-            <real>0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>AttachPoint</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Follows the same convention as llAttachToAvatar, with the exception that the object will not create new inventory for the user, and will disappear on detach or disconnect.</string>
-         </map>
-         <key>llAvatarOnLinkSitTarget</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>arguments</key>
-            <map>
-               <key>LinkNumber</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>If an avatar is sitting on the link's sit target, return the avatar's key, NULL_KEY otherwise.\nReturns a key that is the UUID of the user seated on the specified link's prim.</string>
-         </map>
-         <key>llAvatarOnSitTarget</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>If an avatar is seated on the sit target, returns the avatar's key, otherwise NULL_KEY.\nThis only will detect avatars sitting on sit targets defined with llSitTarget.</string>
-         </map>
-         <key>llAxes2Rot</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>rotation</string>
-            <key>arguments</key>
-            <map>
-               <key>Forward</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Left</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Up</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the rotation represented by coordinate axes Forward, Left, and Up.</string>
-         </map>
-         <key>llAxisAngle2Rot</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>rotation</string>
-            <key>arguments</key>
-            <map>
-               <key>Axis</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Angle</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the rotation that is a generated Angle about Axis.</string>
-         </map>
-         <key>llBase64ToInteger</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns an integer that is the Text, Base64 decoded as a big endian integer.\nReturns zero if Text is longer then 8 characters. If Text contains fewer then 6 characters, the return value is unpredictable.</string>
-         </map>
-         <key>llBase64ToString</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Converts a Base64 string to a conventional string.\nIf the conversion creates any unprintable characters, they are converted to question marks.</string>
-         </map>
-         <key>llBreakAllLinks</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>De-links all prims in the link set (requires permission PERMISSION_CHANGE_LINKS be set).</string>
-         </map>
-         <key>llBreakLink</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>LinkNumber</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>De-links the prim with the given link number (requires permission PERMISSION_CHANGE_LINKS be set).</string>
-         </map>
-         <key>llCastRay</key>
-         <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real/>
-            <key>return</key>
-            <string>list</string>
-            <key>arguments</key>
-            <map>
-               <key>Start</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>End</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Options</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Casts a ray into the physics world from 'start' to 'end' and returns data according to details in Options.\nReports collision data for intersections with objects.\nReturn value: [UUID_1, {link_number_1}, hit_position_1, {hit_normal_1}, UUID_2, {link_number_2}, hit_position_2, {hit_normal_2}, ... , status_code] where {} indicates optional data.</string>
-         </map>
-         <key>llCeil</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Value</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns smallest integer value &gt;= Value.</string>
-         </map>
-         <key>llClearCameraParams</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Resets all camera parameters to default values and turns off scripted camera control.</string>
-         </map>
-         <key>llClearLinkMedia</key>
-         <map>
-            <key>energy</key>
-            <real>0.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Link</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Face</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Clears (deletes) the media and all parameters from the given Face on the linked prim.\nReturns an integer that is a STATUS_* flag, which details the success/failure of the operation.</string>
-         </map>
-         <key>llClearPrimMedia</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.1</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Face</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Clears (deletes) the media and all parameters from the given Face.\nReturns an integer that is a STATUS_* flag which details the success/failure of the operation.</string>
-         </map>
-         <key>llCloseRemoteDataChannel</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>1.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>ChannelID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Closes the specified XML-RPC channel.</string>
-         </map>
-         <key>llCloud</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>Offset</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the cloud density at the object's position + Offset.</string>
-         </map>
-         <key>llCollisionFilter</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>ObjectName</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>ObjectID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Accept</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>If Accept == TRUE, only accept collisions with objects Name and ID, otherwise with objects not Name or ID.\nSpecify an empty string or NULL_KEY to not filter on the corresponding parameter.</string>
-         </map>
-         <key>llCollisionSound</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>ImpactSound</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>ImpactVolume</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Suppress default collision sounds, replace default impact sounds with ImpactSound.\nThe ImpactSound must be in the object inventory.\nSupply an empty string to suppress collision sounds.</string>
-         </map>
-         <key>llCollisionSprite</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>ImpactSprite</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Suppress default collision sprites, replace default impact sprite with ImpactSprite; found in the object inventory (empty string to just suppress).</string>
-         </map>
-         <key>llCos</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>Theta</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the cosine of Theta (Theta in radians).</string>
-         </map>
-         <key>llCreateCharacter</key>
-         <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real/>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Options</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Convert link-set to AI/Physics character.\nCreates a path-finding entity, known as a "character", from the object containing the script. Required to activate use of path-finding functions.\nOptions is a list of key/value pairs.</string>
-         </map>
-         <key>llCreateLink</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>1.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>TargetPrim</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Parent</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Attempt to link the object the script is in, to target (requires permission PERMISSION_CHANGE_LINKS be set).\nIf parent == TRUE, the object the script is attached to is the root.\nRequires permission PERMISSION_CHANGE_LINKS be set.</string>
-         </map>
-         <key>llCSV2List</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>list</string>
-            <key>arguments</key>
-            <map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Create a list from a string of comma separated values specified in Text.</string>
-         </map>
-         <key>llDeleteCharacter</key>
-         <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real/>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Convert link-set from AI/Physics character to Physics object.\nConvert the current link-set back to a standard object, removing all path-finding properties.</string>
-         </map>
-         <key>llDeleteSubList</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>list</string>
-            <key>arguments</key>
-            <map>
-               <key>Source</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Start</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>End</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Removes the slice from start to end and returns the remainder of the list.\nRemove a slice from the list and return the remainder, start and end are inclusive.\nUsing negative numbers for start and/or end causes the index to count backwards from the length of the list, so 0, -1 would delete the entire list.\nIf Start is larger than End the list deleted is the exclusion of the entries; so 6, 4 would delete the entire list except for the 5th. list entry.</string>
-         </map>
-         <key>llDeleteSubString</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>Source</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Start</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>End</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Removes the indicated sub-string and returns the result.\nStart and End are inclusive.\nUsing negative numbers for Start and/or End causes the index to count backwards from the length of the string, so 0, -1 would delete the entire string.\nIf Start is larger than End, the sub-string is the exclusion of the entries; so 6, 4 would delete the entire string except for the 5th. character.</string>
-         </map>
-         <key>llDetachFromAvatar</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Remove the object containing the script from the avatar.</string>
-         </map>
-         <key>llDetectedGrab</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>Number</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the grab offset of a user touching the object.\nReturns &lt;0.0, 0.0, 0.0&gt; if Number is not a valid object.</string>
-         </map>
-         <key>llDetectedGroup</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Number</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns TRUE if detected object or agent Number has the same user group active as this object.\nIt will return FALSE if the object or agent is in the group, but the group is not active.</string>
-         </map>
-         <key>llDetectedKey</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>arguments</key>
-            <map>
-               <key>Number</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the key of detected object or avatar number.\nReturns NULL_KEY if Number is not a valid index.</string>
-         </map>
-         <key>llDetectedLinkNumber</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Number</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the link position of the triggered event for touches and collisions only.\n0 for a non-linked object, 1 for the root of a linked object, 2 for the first child, etc.</string>
-         </map>
-         <key>llDetectedName</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>Number</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the name of detected object or avatar number.\nReturns the name of detected object number.\nReturns empty string if Number is not a valid index.</string>
-         </map>
-         <key>llDetectedOwner</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>arguments</key>
-            <map>
-               <key>Number</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the key of detected object's owner.\nReturns invalid key if Number is not a valid index.</string>
-         </map>
-         <key>llDetectedPos</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>Number</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the position of detected object or avatar number.\nReturns &lt;0.0, 0.0, 0.0&gt; if Number is not a valid index.</string>
-         </map>
-         <key>llDetectedRot</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>rotation</string>
-            <key>arguments</key>
-            <map>
-               <key>Number</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the rotation of detected object or avatar number.\nReturns &lt;0.0, 0.0, 0.0, 1.0&gt; if Number is not a valid offset.</string>
-         </map>
-         <key>llDetectedTouchBinormal</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>Index</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the surface bi-normal for a triggered touch event.\nReturns a vector that is the surface bi-normal (tangent to the surface) where the touch event was triggered.</string>
-         </map>
-         <key>llDetectedTouchFace</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Index</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the index of the face where the avatar clicked in a triggered touch event.</string>
-         </map>
-         <key>llDetectedTouchNormal</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>Index</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the surface normal for a triggered touch event.\nReturns a vector that is the surface normal (perpendicular to the surface) where the touch event was triggered.</string>
-         </map>
-         <key>llDetectedTouchPos</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>Index</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the position, in region coordinates, where the object was touched in a triggered touch event.\nUnless it is a HUD, in which case it returns the position relative to the attach point.</string>
-         </map>
-         <key>llDetectedTouchST</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>Index</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns a vector that is the surface coordinates where the prim was touched.\nThe X and Y vector positions contain the horizontal (S) and vertical (T) face coordinates respectively.\nEach component is in the interval [0.0, 1.0].\nTOUCH_INVALID_TEXCOORD is returned if the surface coordinates cannot be determined (e.g. when the viewer does not support this function).</string>
-         </map>
-         <key>llDetectedTouchUV</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>Index</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns a vector that is the texture coordinates for where the prim was touched.\nThe X and Y vector positions contain the U and V face coordinates respectively.\nTOUCH_INVALID_TEXCOORD is returned if the touch UV coordinates cannot be determined (e.g. when the viewer does not support this function).</string>
-         </map>
-         <key>llDetectedType</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Number</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the type (AGENT, ACTIVE, PASSIVE, SCRIPTED) of detected object.\nReturns 0 if number is not a valid index.\nNote that number is a bit-field, so comparisons need to be a bitwise checked. e.g.:\ninteger iType = llDetectedType(0);\n{\n	// ...do stuff with the agent\n}</string>
-         </map>
-         <key>llDetectedVel</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>Number</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the velocity of the detected object Number.\nReturns&lt;0.0, 0.0, 0.0&gt; if Number is not a valid offset.</string>
-         </map>
-         <key>llDialog</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.1</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Buttons</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Channel</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Shows a dialog box on the avatar's screen with the message.\n
-				Up to 12 strings in the list form buttons.\n
-				If a button is clicked, the name is chatted on Channel.\nOpens a "notify box" in the given avatars screen displaying the message.\n
-			Up to twelve buttons can be specified in a list of strings. When the user clicks a button, the name of the button is said on the specified channel.\n
-			Channels work just like llSay(), so channel 0 can be heard by everyone.\n
-			The chat originates at the object's position, not the avatar's position, even though it is said as the avatar (uses avatar's UUID and Name etc.).\n
-			Examples:\n
-			llDialog(who, "Are you a boy or a girl?", [ "Boy", "Girl" ], -4913);\n
-			llDialog(who, "This shows only an OK button.", [], -192);\n
-			llDialog(who, "This chats so you can 'hear' it.", ["Hooray"], 0);</string>
-         </map>
-         <key>llDie</key>
-         <map>
-            <key>energy</key>
-            <real>0.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Deletes the object.\nDelete the object which holds the script.</string>
-         </map>
-         <key>llDumpList2String</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>Source</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Separator</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the list as a single string, using Separator between the entries.\nWrite the list out as a single string, using Separator between values.</string>
-         </map>
-         <key>llEdgeOfWorld</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Position</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Direction</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Checks to see whether the border hit by Direction from Position is the edge of the world (has no neighboring region).\nReturns TRUE if the line along Direction from Position hits the edge of the world in the current simulator, returns FALSE if that edge crosses into another simulator.</string>
-         </map>
-         <key>llEjectFromLand</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Ejects AvatarID from land that you own.\nEjects AvatarID from land that the object owner (group or resident) owns.</string>
-         </map>
-         <key>llEmail</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>20.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Address</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Subject</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sends email to Address with Subject and Message.\nSends an email to Address with Subject and Message.</string>
-         </map>
-         <key>llEscapeURL</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>URL</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns an escaped/encoded version of url, replacing spaces with %20 etc.\nReturns the string that is the URL-escaped version of URL (replacing spaces with %20, etc.).\n
-			This function returns the UTF-8 encoded escape codes for selected characters.</string>
-         </map>
-         <key>llEuler2Rot</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>rotation</string>
-            <key>arguments</key>
-            <map>
-               <key>Vector</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the rotation representation of the Euler angles.\nReturns the rotation represented by the Euler Angle.</string>
-         </map>
-         <key>llEvade</key>
-         <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real/>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>TargetID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Options</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Evade a specified target.\nCharacters will (roughly) try to hide from their pursuers if there is a good hiding spot along their fleeing path. Hiding means no direct line of sight from the head of the character (centre of the top of its physics bounding box) to the head of its pursuer and no direct path between the two on the navigation-mesh.</string>
-         </map>
-         <key>llExecCharacterCmd</key>
-         <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real/>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Command</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Options</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Execute a character command.\nSend a command to the path system.\n
-			Currently only supports stopping the current path-finding operation or causing the character to jump.</string>
-         </map>
-         <key>llFabs</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>Value</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the positive version of Value.\nReturns the absolute value of Value.</string>
-         </map>
-         <key>llFleeFrom</key>
-         <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real/>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Source</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Distance</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Options</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Flee from a point.\nDirects a character (llCreateCharacter) to keep away from a defined position in the region or adjacent regions.</string>
-         </map>
-         <key>llFloor</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Value</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns largest integer value &lt;= Value.</string>
-         </map>
-         <key>llForceMouselook</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Enable</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>If Enable is TRUE any avatar that sits on this object is forced into mouse-look mode.\nAfter calling this function with Enable set to TRUE, any agent sitting down on the prim will be forced into mouse-look.\n
-			Just like llSitTarget, this changes a permanent property of the prim (not the object) and needs to be reset by calling this function with Enable set to FALSE in order to disable it.</string>
-         </map>
-         <key>llFrand</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>Magnitude</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns a pseudo random number in the range [0, Magnitude] or [Magnitude, 0].\nReturns a pseudo-random number between [0, Magnitude].</string>
-         </map>
-         <key>llGenerateKey</key>
-         <map>
-            <key>energy</key>
-            <real>0</real>
-            <key>sleep</key>
-            <real>0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Generates a key (SHA-1 hash) using UUID generation to create a unique key.\nAs the UUID produced is versioned, it should never return a value of NULL_KEY.\nThe specific UUID version is an implementation detail that has changed in the past and may change again in the future. Do not depend upon the UUID that is returned to be version 5 SHA-1 hash.</string>
-         </map>
-         <key>llGetAccel</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the acceleration of the object relative to the region's axes.\nGets the acceleration of the object.</string>
-         </map>
-         <key>llGetAgentInfo</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns an integer bit-field containing the agent information about id.\n
-				Returns AGENT_FLYING, AGENT_ATTACHMENTS, AGENT_SCRIPTED, AGENT_SITTING, AGENT_ON_OBJECT, AGENT_MOUSELOOK, AGENT_AWAY, AGENT_BUSY, AGENT_TYPING, AGENT_CROUCHING, AGENT_ALWAYS_RUN, AGENT_WALKING and/or AGENT_IN_AIR.\nReturns information about the given agent ID as a bit-field of agent info constants.</string>
-         </map>
-         <key>llGetAgentLanguage</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the language code of the preferred interface language of the avatar.\nReturns a string that is the language code of the preferred interface language of the resident.</string>
-         </map>
-         <key>llGetAgentList</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>list</string>
-            <key>arguments</key>
-            <map>
-               <key>Scope</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Options</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Requests a list of agents currently in the region, limited by the scope parameter.\nReturns a list [key UUID-0, key UUID-1, ..., key UUID-n] or [string error_msg] - returns avatar keys for all agents in the region limited to the area(s) specified by scope</string>
-         </map>
-         <key>llGetAgentSize</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>If the avatar is in the same region, returns the size of the bounding box of the requested avatar by id, otherwise returns ZERO_VECTOR.\nIf the agent is in the same region as the object, returns the size of the avatar.</string>
-         </map>
-         <key>llGetAlpha</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>Face</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the alpha value of Face.\nReturns the 'alpha' of the given face. If face is ALL_SIDES the value returned is the mean average of all faces.</string>
-         </map>
-         <key>llGetAndResetTime</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the script time in seconds and then resets the script timer to zero.\nGets the time in seconds since starting and resets the time to zero.</string>
-         </map>
-         <key>llGetAnimation</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the name of the currently playing locomotion animation for the avatar id.\nReturns the currently playing animation for the specified avatar ID.</string>
-         </map>
-         <key>llGetAnimationList</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>list</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns a list of keys of playing animations for an avatar.\nReturns a list of keys of all playing animations for the specified avatar ID.</string>
-         </map>
-         <key>llGetAnimationOverride</key>
-         <map>
-            <key>energy</key>
-            <real>0</real>
-            <key>sleep</key>
-            <real>0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>AnimationState</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns a string that is the name of the animation that is used for the specified animation state\nTo use this function the script must obtain either the PERMISSION_OVERRIDE_ANIMATIONS or PERMISSION_TRIGGER_ANIMATION permission (automatically granted to attached objects).</string>
-         </map>
-         <key>llGetAttached</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the object's attachment point, or 0 if not attached.\nReturns the object attachment point, or 0 if not attached.</string>
-         </map>
-         <key>llGetBoundingBox</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>list</string>
-            <key>arguments</key>
-            <map>
-               <key>ID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the bounding box around the object (including any linked prims) relative to its root prim, as a list in the format [ (vector) min_corner, (vector) max_corner ].\nReturns the bounding box around the object or avatar with the specified key (including any linked prims) relative to the\n
-			root prim, as a list: [ (vector) min_corner, (vector) max_corner ]</string>
-         </map>
-         <key>llGetCameraPos</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the current camera position for the agent the task has permissions for.\nReturns the position of the camera, of the user that granted the script PERMISSION_TRACK_CAMERA. If no user has granted the permission, it returns ZERO_VECTOR.</string>
-         </map>
-         <key>llGetCameraRot</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>rotation</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the current camera orientation for the agent the task has permissions for.\nReturns the rotation of the camera, of the user who has granted this script PERMISSION_TRACK_CAMERA. If no user has granted the permission, it returns ZERO_ROTATION.\n
-			The key of the user whose camera is being tracked, can be obtained using llGetPermissionsKey.</string>
-         </map>
-         <key>llGetCenterOfMass</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the prim's centre of mass (unless called from the root prim, where it returns the object's centre of mass).</string>
-         </map>
-         <key>llGetClosestNavPoint</key>
-         <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real/>
-            <key>return</key>
-            <string>list</string>
-            <key>arguments</key>
-            <map>
-               <key>Point</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Options</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Get the closest navigable point to the point provided.\nThe function accepts a point in region-local space (like all the other path-finding methods) and returns either an empty list or a list containing a single vector which is the closest point on the navigation-mesh to the point provided.</string>
-         </map>
-         <key>llGetColor</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>Face</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the color on Face.\nReturns the colour of Face as a vector of red, green, and blue values between 0 and 1. If face is ALL_SIDES the colour returned is the mean average of each channel.</string>
-         </map>
-         <key>llGetCreator</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns a key for the creator of the prim.\nReturns the key of the object's original creator. Similar to llGetOwner.</string>
-         </map>
-         <key>llGetDate</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the current date in the UTC time zone in the format YYYY-MM-DD.\nReturns the current UTC date as YYYY-MM-DD.</string>
-         </map>
-         <key>llGetDisplayName</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the name of an avatar, if the avatar is in the current region, and the name has been cached, otherwise the same as llGetUsername.	Use llRequestDisplayName if you absolutely must have the display name.\nReturns a string that is the non-unique display name of the avatar specified by AvatarID.\n
-			AvatarID must specify a valid avatar key, present in or otherwise known to the region in which the script is running, otherwise an empty string is returned.\n
-			This function will still return a valid display name if the avatar is a child agent of the region (i.e., in an adjacent region, but presently able to see into the one the script is in), or for a short period after the avatar leaves the region (specifically, when the client completely disconnects from the region, either as a main or child agent).</string>
-         </map>
-         <key>llGetEnergy</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns how much energy is in the object as a percentage of maximum.</string>
-         </map>
-         <key>llGetEnv</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>DataRequest</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns a string with the requested data about the region.</string>
-         </map>
-         <key>llGetForce</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the force (if the script is physical).\nReturns the current force if the script is physical.</string>
-         </map>
-         <key>llGetFreeMemory</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the number of free bytes of memory the script can use.\nReturns the available free space for the current script. This is inaccurate with LSO.</string>
-         </map>
-         <key>llGetFreeURLs</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the number of available URLs for the current script.\nReturns an integer that is the number of available URLs.</string>
-         </map>
-         <key>llGetGeometricCenter</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the geometric center of the linked set the script is attached to.\nReturns the geometric centre of the linked set the script is in relative to the object's position (the position of the root prim of a linked set).\n
-			To get the object's position, use llGetPos.</string>
-         </map>
-         <key>llGetGMTclock</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the time in seconds since midnight GMT.\nGets the time in seconds since midnight in GMT/UTC.</string>
-         </map>
-         <key>llGetHTTPHeader</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>HTTPRequestID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Header</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the value for header for request_id.\nReturns a string that is the value of the Header for HTTPRequestID.</string>
-         </map>
-         <key>llGetInventoryCreator</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>arguments</key>
-            <map>
-               <key>InventoryItem</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns a key for the creator of the inventory item.\nThis function returns the UUID of the creator of item. If item is not found in inventory, the object says "No item named 'name' ".</string>
-         </map>
-         <key>llGetInventoryKey</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>arguments</key>
-            <map>
-               <key>InventoryItem</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the key that is the UUID of the inventory named.\nReturns the key of the inventory named.</string>
-         </map>
-         <key>llGetInventoryName</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>InventoryType</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Index</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the name of the inventory item number of a given type.\nGet the name of the inventory Index number of InventoryType.\n
-			Use the inventory constants INVENTORY_* to specify the type.</string>
-         </map>
-         <key>llGetInventoryNumber</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>InventoryType</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the number of items of a given type (INVENTORY_* flag) in the prim's inventory.\nGet the number of items of InventoryType in the object inventory.\n
-			Use the inventory constants INVENTORY_* to specify the type.</string>
-         </map>
-         <key>llGetInventoryPermMask</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>InventoryItem</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>BitMask</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the requested permission mask for the inventory item.\nReturns the requested permission mask for the inventory item defined by InventoryItem. If item is not in the object's inventory, llGetInventoryPermMask returns FALSE and causes the object to say "No item named '&lt;item&gt;'", where "&lt;item&gt;" is item.\n
-			If this is used to determine whether or not an inventory item exists within the object, it will have the side effect of spamming chat. So please don't ;-)</string>
-         </map>
-         <key>llGetInventoryType</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>InventoryItem</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the type of the inventory item named.\nReturns the type of the inventory item named.\n
-			Remember, like all inventory functions, llGetInventoryType is case-sensitive.</string>
-         </map>
-         <key>llGetKey</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the key of the prim the script is attached to.\nGet the key for the object which has this script.</string>
-         </map>
-         <key>llGetLandOwnerAt</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>arguments</key>
-            <map>
-               <key>Position</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the key of the land owner, returns NULL_KEY if public.\nReturns the key of the land owner at Position, or NULL_KEY if public.</string>
-         </map>
-         <key>llGetLinkKey</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>arguments</key>
-            <map>
-               <key>LinkNumber</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the key of the linked prim LinkNumber.\nReturns the key of LinkNumber in the link set.</string>
-         </map>
-         <key>llGetLinkMedia</key>
-         <map>
-            <key>energy</key>
-            <real>0.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>list</string>
-            <key>arguments</key>
-            <map>
-               <key>LinkNumber</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Face</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Parameters</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Get the media parameters for a particular face on linked prim, given the desired list of parameter names. Returns a list of values in the order requested.	Returns an empty list if no media exists on the face.\nGet the desired list of named media parameters, for a particular face, of a linked prim.\n
-				Returns a list of values in the order requested.</string>
-         </map>
-         <key>llGetLinkName</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>LinkNumber</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the name of LinkNumber in a link set.\nReturns the name of LinkNumber the link set.</string>
-         </map>
-         <key>llGetLinkNumber</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the link number of the prim containing the script (0 means not linked, 1 the prim is the root, 2 the prim is the first child, etc.).\nReturns the link number of the prim containing the script. 0 means no link, 1 the root, 2 for first child, etc.</string>
-         </map>
-         <key>llGetLinkNumberOfSides</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>LinkNumber</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the number of sides of the specified linked prim.\nReturns an integer that is the number of faces (or sides) of the prim link.</string>
-         </map>
-         <key>llGetLinkPrimitiveParams</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>list</string>
-            <key>arguments</key>
-            <map>
-               <key>LinkNumber</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Parameters</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Get primitive parameters for LinkNumber based on rules.\nIdentical to llGetPrimitiveParams except that it acts on the prim specified by the link number given.\n
-			Returns the list of primitive attributes requested in the Parameters list for link.\n
-			PRIM_* flags can be broken into three categories, face flags, prim flags, and object flags.\n
-			* Supplying a prim or object flag will return that flags attributes.\n
-			* Face flags require the user to also supply a side parameter.</string>
-         </map>
-         <key>llGetListEntryType</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>ListVariable</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Index</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the type of the index entry in the list (TYPE_INTEGER, TYPE_FLOAT, TYPE_STRING, TYPE_KEY, TYPE_VECTOR, TYPE_ROTATION, or TYPE_INVALID if index is off list).\nReturns the type of the variable at Index in ListVariable.</string>
-         </map>
-         <key>llGetListLength</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>ListVariable</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the number of elements in the list.\nReturns the number of elements in ListVariable.</string>
-         </map>
-         <key>llGetLocalPos</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the position relative to the root.\nReturns the local position of a child object relative to the root.</string>
-         </map>
-         <key>llGetLocalRot</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>rotation</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the rotation local to the root.\nReturns the local rotation of a child object relative to the root.</string>
-         </map>
-         <key>llGetMass</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the mass of object that the script is attached to.\nReturns the scripted object's mass. When called from a script in a link-set, the parent will return the sum of the link-set weights, while a child will return just its own mass. When called from a script inside an attachment, this function will return the mass of the avatar it's attached to, not its own.</string>
-         </map>
-         <key>llGetMassMKS</key>
-         <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Acts as llGetMass(), except that the units of the value returned are Kg.</string>
-         </map>
-         <key>llGetMemoryLimit</key>
-         <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Get the maximum memory a script can use, in bytes.\nGet the maximum memory a script can use.\n
-			Returns the integer amount of memory the script can use in bytes.</string>
-         </map>
-         <key>llGetNextEmail</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Address</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Subject</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Get the next waiting email with appropriate address and/or subject (if blank they are ignored).\nGet the next waiting email with appropriate address and/or subject.\n
-				If the parameters are blank, they are not used for filtering.</string>
-         </map>
-         <key>llGetNotecardLine</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.1</real>
-            <key>return</key>
-            <string>key</string>
-            <key>arguments</key>
-            <map>
-               <key>NotecardName</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>LineNumber</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns line from NotecardName via the dataserver event.\nThis function fetches LineNumber from NotecardName and returns the data through the dataserver event. The line count starts at zero.\n
-				If the requested line is passed the end of the note-card the dataserver event will return the constant EOF string.\n
-				The key returned by this function is a unique identifier which will be supplied to the dataserver event in the requested parameter.</string>
-         </map>
-         <key>llGetNumberOfNotecardLines</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.1</real>
-            <key>return</key>
-            <string>key</string>
-            <key>arguments</key>
-            <map>
-               <key>NotecardName</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns number of lines in NotecardName via the dataserver event (cast return value to integer).\nReturns the number of lines in the note-card sNotecardName via the dataserver event. (Cast the value returned by the dataserver to an integer.)\n
-			The key returned is a query ID for identifying the dataserver reply.</string>
-         </map>
-         <key>llGetNumberOfPrims</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the number of prims in a link set the script is attached to.\nReturns the number of prims in (and avatars seated on) the object the script is in.</string>
-         </map>
-         <key>llGetNumberOfSides</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the number of faces (or sides) of the prim.\nReturns the number of sides of the prim which has the script.</string>
-         </map>
-         <key>llGetObjectDesc</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the description of the prim the script is attached to.\nReturns the description of the scripted object/prim. You can set the description using llSetObjectDesc.</string>
-         </map>
-         <key>llGetObjectDetails</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>list</string>
-            <key>arguments</key>
-            <map>
-               <key>ID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Parameters</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the object details specified in Parameters for the object with key ID.\n
-				Parameters are OBJECT_NAME, _DESC, _POS, _ROT, _VELOCITY, _OWNER, _GROUP, _CREATOR.\nReturns a list of the details specified in Parameters for the object with key ID.</string>
-         </map>
-         <key>llGetObjectMass</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>ID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the mass of the avatar or object in the region.\nGets the mass of the object or avatar corresponding to ID.</string>
-         </map>
-         <key>llGetObjectName</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the name of the prim which the script is attached to.\nReturns the name of the prim (not object) which contains the script.</string>
-         </map>
-         <key>llGetObjectPermMask</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>PermissionMask</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the requested permission mask for the root object the task is attached to.</string>
-         </map>
-         <key>llGetObjectPrimCount</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>ObjectID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the total number of prims for an object in the region.\nReturns the prim count for any object id in the same region.</string>
-         </map>
-         <key>llGetOmega</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the rotation velocity in radians per second.\nReturns a vector that is the rotation velocity of the object in radians per second.</string>
-         </map>
-         <key>llGetOwner</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the object owner's UUID.\nReturns the key for the owner of the object.</string>
-         </map>
-         <key>llGetOwnerKey</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>arguments</key>
-            <map>
-               <key>ObjectID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the owner of ObjectID.\nReturns the key for the owner of object ObjectID.</string>
-         </map>
-         <key>llGetParcelDetails</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>list</string>
-            <key>arguments</key>
-            <map>
-               <key>Position</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>ParcelDetails</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the parcel details specified in ParcelDetails for the parcel at Position.\n
- 				Parameters is one or more of: PARCEL_DETAILS_NAME, _DESC, _OWNER, _GROUP, _AREA, _ID, _SEE_AVATARS.\nReturns a list that is the parcel details specified in ParcelDetails (in the same order) for the parcel at Position.</string>
-         </map>
-         <key>llGetParcelFlags</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Position</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns a mask of the parcel flags (PARCEL_FLAG_*) for the parcel that includes the point Position.\nReturns a bit-field specifying the parcel flags (PARCEL_FLAG_*) for the parcel at Position.</string>
-         </map>
-         <key>llGetParcelMaxPrims</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Position</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>SimWide</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the maximum number of prims allowed on the parcel at Position.\nReturns an integer that is the maximum number of prims allowed on the parcel at Position.</string>
-         </map>
-         <key>llGetParcelMusicURL</key>
-         <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real/>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Gets the streaming audio URL for the parcel object is on.\nReturns a string containing the parcel streaming audio URL.\n
-				The object owner, avatar or group, must also be the land owner.</string>
-         </map>
-         <key>llGetParcelPrimCount</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Position</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Category</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>SimWide</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the number of prims on the parcel at Position of the given category.
-				Categories: PARCEL_COUNT_TOTAL, _OWNER, _GROUP, _OTHER, _SELECTED, _TEMP.\nReturns the number of prims used on the parcel at Position which are in Category.\n
-				If SimWide is TRUE, it returns the number of objects for the entire region in the category specified.\n
-				If SimWide is FALSE, it returns the number of objects on this specific parcel in the category specified</string>
-         </map>
-         <key>llGetParcelPrimOwners</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>2.0</real>
-            <key>return</key>
-            <string>list</string>
-            <key>arguments</key>
-            <map>
-               <key>Position</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns a list of all residents who own objects on the parcel at Position, with individual prim counts.
-				Requires owner-like permissions for the parcel.\nReturns a strided list of keys and integers of up to 100 agents who own objects in the parcel at Position.\n
-				The list is formatted as [ key agentKey1, integer agentCount1, key agentKey2, integer agentCount2, ... ], sorted by agent key.\n
-				The integers are counts of the number of prims (not objects) owned by the corresponding agents.\n
-				Only works when the object owner is in the region (likely the reason it doesn't work when deeded to group).</string>
-         </map>
-         <key>llGetPermissions</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns an integer bit-field with the permissions that have been granted.\nReturns an integer bit-field with the script permissions granted. e.g.:\n
-				integer iPerms = llGetPermissions();\n
-				if (iPerms &amp; PERMISSION_DEBIT) {\n
-					llOwnerSay("Yay, I can steal your money!!");\n
-				} else {\n
-					llOwnerSay("Damn, your money is safe from me!");\n
-				}</string>
-         </map>
-         <key>llGetPermissionsKey</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the key of the avatar that last granted permissions to the script.\nReturns the key of the avatar that last granted or declined permissions to the script.\n
-				Returns NULL_KEY if permissions were never granted or declined.</string>
-         </map>
-         <key>llGetPhysicsMaterial</key>
-         <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real/>
-            <key>return</key>
-            <string>list</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns a list of the form [float gravity_multiplier, float restitution, float friction, float density].</string>
-         </map>
-         <key>llGetPos</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the position of the task in region coordinates.\nReturns the vector position of the task in region coordinates.</string>
-         </map>
-         <key>llGetPrimitiveParams</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.2</real>
-            <key>return</key>
-            <string>list</string>
-            <key>arguments</key>
-            <map>
-               <key>Parameters</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the primitive parameters specified in the parameters list.\nReturns primitive parameters specified in the Parameters list.</string>
-         </map>
-         <key>llGetPrimMediaParams</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.1</real>
-            <key>return</key>
-            <string>list</string>
-            <key>arguments</key>
-            <map>
-               <key>Face</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Parameters</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the media parameters for a particular face on an object, given the desired list of parameter names, in the order requested. Returns an empty list if no media exists on the face.\nGet the media parameters for a particular face on an object, given the desired list of Parameters.\n
-				Returns a list of values in the order requested.\n
-				Returns an empty list if no media exists on the face.</string>
-         </map>
-         <key>llGetRegionAgentCount</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the number of avatars in the region.\nReturns an integer that is the number of avatars in the region.</string>
-         </map>
-         <key>llGetRegionCorner</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns a vector, in meters, that is the global location of the south-west corner of the region which the object is in.\nReturns the Region-Corner of the simulator containing the task. The region-corner is a vector (values in meters) representing distance from the first region.</string>
-         </map>
-         <key>llGetRegionFlags</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the region flags (REGION_FLAG_*) for the region the object is in.\nReturns a bit-field specifying the region flags (REGION_FLAG_*) for the region the object is in.</string>
-         </map>
-         <key>llGetRegionFPS</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the mean region frames per second.</string>
-         </map>
-         <key>llGetRegionName</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the current region name.</string>
-         </map>
-         <key>llGetRegionTimeDilation</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the current time dilation as a float between 0.0 (full dilation) and 1.0 (no dilation).\nReturns the current time dilation as a float between 0.0 and 1.0.</string>
-         </map>
-         <key>llGetRootPosition</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the position (in region coordinates) of the root prim of the object which the script is attached to.\nGets the position (in region coordinates) of the root/parent prim of the object containing the script.\n
-			This is used to allow a child prim to determine where the root is.</string>
-         </map>
-         <key>llGetRootRotation</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>rotation</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the rotation (relative to the region) of the root prim of the object which the script is attached to.\nGets the global rotation of the root object of the object script is attached to.</string>
-         </map>
-         <key>llGetRot</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>rotation</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the rotation relative to the region's axes.\nReturns the rotation.</string>
-         </map>
-         <key>llGetScale</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the scale of the prim.\nReturns a vector that is the scale (dimensions) of the prim.</string>
-         </map>
-         <key>llGetScriptName</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the name of the script that this function is used in.\nReturns the name of this script.</string>
-         </map>
-         <key>llGetScriptState</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>ScriptName</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns TRUE if the script named is running.\nReturns TRUE if ScriptName is running.</string>
-         </map>
-         <key>llGetSimStats</key>
-         <map>
-            <key>energy</key>
-            <real>0</real>
-            <key>sleep</key>
-            <real>0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>StatType</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns a float that is the requested statistic.</string>
-         </map>
-         <key>llGetSimulatorHostname</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the host-name of the machine which the script is running on (same as string in viewer Help dialog).\nReturns the host name (server) of the region in which the scripted object is located.\n
-			For example, "sim225.agni.lindenlab.com".</string>
-         </map>
-         <key>llGetSPMaxMemory</key>
-         <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the maximum used memory for the current script. Only valid after using PROFILE_SCRIPT_MEMORY. Non-mono scripts always use 16k.\nReturns the integer of the most bytes used while llScriptProfiler was last active.</string>
-         </map>
-         <key>llGetStartParameter</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns an integer that is the script start parameter.\nReturns the start parameter passed to llRezObject.\n
-			If the object was created from agent inventory, this function returns 0.</string>
-         </map>
-         <key>llGetStatus</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>StatusFlag</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns value of status (STATUS_PHYSICS, STATUS_PHANTOM, STATUS_BLOCK_GRAB, STATUS_ROTATE_X, STATUS_ROTATE_Y, and/or STATUS_ROTATE_Z).\nReturns the value of specified status.</string>
-         </map>
-         <key>llGetSubString</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>String</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Start</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>End</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the indicated substring.\nReturns the indicated sub-string from String. The start and end are inclusive.\n
-				Using negative numbers for start and/or end causes the index to count backwards from the length of the string, so 0, -1 would capture the entire string.\n
-				If start is larger than end, the sub string is the exclusion of the entries, so 6, 4 would give the entire string except for the 5th. character.</string>
-         </map>
-         <key>llGetSunDirection</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns a normalized vector of the direction of the sun in the region.\nReturns the sun's direction on the simulator.</string>
-         </map>
-         <key>llGetTexture</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>Face</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns a string that is the texture on face (the inventory name if it is a texture in the prim's inventory, otherwise the key).\nReturns the texture of a face, if it is found in object inventory, its key otherwise.</string>
-         </map>
-         <key>llGetTextureOffset</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>Face</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the texture offset of face in the x and y components of a vector.</string>
-         </map>
-         <key>llGetTextureRot</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>Face</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the texture rotation of side.</string>
-         </map>
-         <key>llGetTextureScale</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>Face</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the texture scale of side in the x and y components of a vector.\nReturns the texture scale of a side in the x and y components of a vector.</string>
-         </map>
-         <key>llGetTime</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the time in seconds since the last region reset, script reset, or call to either llResetTime or llGetAndResetTime.</string>
-         </map>
-         <key>llGetTimeOfDay</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the time in seconds since [SECOND_LIFE] server midnight or since region up-time, whichever is smaller.\nGets the time in seconds since midnight in Second Life.</string>
-         </map>
-         <key>llGetTimestamp</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns a time-stamp (UTC time zone) in the format: YYYY-MM-DDThh:mm:ss.ff..fZ.\nReturns the current time-and-date (a time-stamp) in the format YYYY-MM-DDThh:mm:ss.ff..fZ, for example: 2004-08-27T00:56:21.785886Z\n
-				The letter Z is the zone designator for the zero UTC offset, and is why UTC is sometimes referred to as Zulu time (Zulu being the name of Z in the phonetic alphabet. T is just a separator between date and time.</string>
-         </map>
-         <key>llGetTorque</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the torque (if the script is physical).\nReturns a vector that is the torque (if the script is physical).</string>
-         </map>
-         <key>llGetUnixTime</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the number of seconds elapsed since 00:00 hours, Jan 1, 1970 UTC from the system clock.\nReturns the number of seconds elapsed since 00:00 hours, Jan 1, 1970 UTC from the system clock.\n
-				In UNIX terms, time_t. This is great for a monotonic source of time that ticks once a second.</string>
-         </map>
-         <key>llGetUsedMemory</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the current used memory for the current script. Non-mono scripts always use 16K.\nReturns the integer of the number of bytes of memory currently in use by the script. Non-mono scripts always use 16K.</string>
-         </map>
-         <key>llGetUsername</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the single-word user-name of an avatar, if the avatar is in the current region, otherwise the empty string.\nReturns a string that is the unique user-name of the avatar specified.\n
-				AvatarID must specify a valid avatar key present in, or otherwise known to, the region in which the script is running, otherwise an empty string is returned. This function will still return a valid user-name if the avatar is a child agent of the region (i.e., in an adjacent region, but presently able to see into the one the script is in), or for a short period after the avatar leaves the region (specifically, when the client completely disconnects from the region, either as a main or child agent).</string>
-         </map>
-         <key>llGetVel</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the velocity of the object.\nReturns a vector that is the velocity of the object.</string>
-         </map>
-         <key>llGetWallclock</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Returns the time in seconds since midnight California Pacific time (PST/PDT).\nReturns the time in seconds since simulator's time-zone midnight (Pacific Time).</string>
-         </map>
-         <key>llGiveInventory</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>TargetID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>InventoryItem</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Give InventoryItem to destination represented by TargetID.\nGive the named inventory item to the avatar or object in the same simulator as the giver.\n
-			If the recipient is an avatar, the avatar then follows the normal procedure of accepting or denying the offer. If the recipient is an object, the same permissions apply as if you were dragging inventory onto the object by hand, i.e. if llAllowInventoryDrop has been called with TRUE, any other object can pass objects to its inventory.</string>
-         </map>
-         <key>llGiveInventoryList</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>3.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>TargetID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>FolderName</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>InventoryItems</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Give InventoryItems to destination (represented by TargetID) as a new folder of items.\nGive the list of named inventory items to the keyed avatar or object in the same simulator as the giver.\n
-			If the recipient is an avatar, the avatar then follows the normal procedure of accepting or denying the offer. The offered inventory is then placed in a folder named category in the recipients inventory.\n
-			If the recipient is an object, the same permissions apply as if you were dragging inventory onto the object by hand, i.e. if llAllowInventoryDrop has been called with TRUE, any other object can pass objects to its inventory. If the recipient is an object, the sFolderName parameter is ignored.</string>
-         </map>
-         <key>llGiveMoney</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Amount</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Transfers Amount of L from script owner to AvatarID.\nTransfer Amount from the script owner to AvatarID.\n
-				This call will (silently) fail if PERMISSION_DEBIT has not been set.</string>
-         </map>
-         <key>llGodLikeRezObject</key>
-         <map>
-            <key>god-mode</key>
-            <boolean>true</boolean>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>InventoryItemID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Position</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Rez directly off of a UUID if owner has dog-bit set.</string>
-         </map>
-         <key>llGround</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>Offset</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the ground height at the object position + offset.\nReturns the ground height at the object's position + Offset.</string>
-         </map>
-         <key>llGroundContour</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>Offset</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the ground contour direction below the object position + Offset.\nReturns the ground contour at the object's position + Offset.</string>
-         </map>
-         <key>llGroundNormal</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>Offset</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the ground normal below the object position + offset.\nReturns the ground contour at the object's position + Offset.</string>
-         </map>
-         <key>llGroundRepel</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Height</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Water</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Tau</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Critically damps to height if within height * 0.5 of level (either above ground level or above the higher of land and water if water == TRUE).\nCritically damps to fHeight if within fHeight * 0.5 of ground or water level.\n
-				The height is above ground level if iWater is FALSE or above the higher of land and water if iWater is TRUE.\n
-				Do not use with vehicles. Only works in physics-enabled objects.</string>
-         </map>
-         <key>llGroundSlope</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>Offset</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the ground slope below the object position + Offset.\nReturns the ground slope at the object position + Offset.</string>
-         </map>
-         <key>llHTTPRequest</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>arguments</key>
-            <map>
-               <key>URL</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Parameters</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Body</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sends an HTTP request to the specified URL with the Body of the request and Parameters.\nSends an HTTP request to URL with the specified body and parameters.\n
-				Returns a key that is a handle identifying the HTTP request made.</string>
-         </map>
-         <key>llHTTPResponse</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>HTTPRequestID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Status</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Body</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Responds to HTTPRequestID with Status and Body.\nResponds to HTTPRequestID with Status code and Body.</string>
-         </map>
-         <key>llInsertString</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>TargetVariable</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Position</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>SourceVariable</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Inserts SourceVariable into TargetVariable at Position, and returns the result.\nInserts SourceVariable into TargetVariable at Position and returns the result. Note this does not alter TargetVariable.</string>
-         </map>
-         <key>llInstantMessage</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>2.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>IMs Text to the user identified.\nSend Text to the user as an instant message.</string>
-         </map>
-         <key>llIntegerToBase64</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>Value</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns a string that is a Base64 big endian encode of Value.\nEncodes the Value as an 8-character Base64 string.</string>
-         </map>
-         <key>llJson2List</key>
-         <map>
-            <key>energy</key>
-            <real>0.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>list</string>
-            <key>arguments</key>
-            <map>
-               <key>JSON</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Converts the top level of the JSON string to a list.</string>
-         </map>
-         <key>llJsonGetValue</key>
-         <map>
-            <key>energy</key>
-            <real>0.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>JSON</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Specifiers</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Gets the value indicated by Specifiers from the JSON string.</string>
-         </map>
-         <key>llJsonSetValue</key>
-         <map>
-            <key>energy</key>
-            <real>0.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>JSON</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Specifiers</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Value</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns a new JSON string that is the JSON given with the Value indicated by Specifiers set to Value.</string>
-         </map>
-         <key>llJsonValueType</key>
-         <map>
-            <key>energy</key>
-            <real>0.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>JSON</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Specifiers</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the type constant (JSON_*) for the value in JSON indicated by Specifiers.</string>
-         </map>
-         <key>llKey2Name</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>ID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the name of the prim or avatar specified by ID. The ID must be a valid rezzed prim or avatar key in the current simulator, otherwise an empty string is returned.\nReturns the name of a rezzed prim or avatar, present in or otherwise known, to the region in which the script is running. If the key is invalid (not in region, or not a prim or avatar's key), returns an empty string.</string>
-         </map>
-         <key>llLinkParticleSystem</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>LinkNumber</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Rules</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Creates a particle system based on Rules. An empty list removes a particle system from object.\n
-				List format is [ rule-1, data-1, rule-2, data-2 ... rule-n, data-n ].\nA particle system defined by a list of rules is set for the prim(s) link. This is identical to llParticleSystem except that it applies to a specified linked prim and not just the prim the script is in.</string>
-         </map>
-         <key>llLinkSitTarget</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>LinkNumber</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Offset</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Rotation</key>
-               <map>
-                  <key>type</key>
-                  <string>rotation</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Set the sit location for the linked prim(s). If Offset == &lt;0,0,0&gt; clear it.\nSet the sit location for the linked prim(s). The sit location is relative to the prim's position and rotation.</string>
-         </map>
-         <key>llList2CSV</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>ListVariable</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Creates a string of comma separated values from the list.\nCreate a string of comma separated values from the specified list.</string>
-         </map>
-         <key>llList2Float</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>ListVariable</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Index</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Copies the float at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to a float, then zero is returned.</string>
-         </map>
-         <key>llList2Integer</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>ListVariable</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Index</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Copies the integer at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to an integer, then zero is returned.</string>
-         </map>
-         <key>llList2Json</key>
-         <map>
-            <key>energy</key>
-            <real>0</real>
-            <key>sleep</key>
-            <real>0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>JsonType</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Values</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Converts either a strided list of key:value pairs to a JSON_OBJECT, or a list of values to a JSON_ARRAY.</string>
-         </map>
-         <key>llList2Key</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>arguments</key>
-            <map>
-               <key>ListVariable</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Index</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Copies the key at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to a key, then null string is returned.</string>
-         </map>
-         <key>llList2List</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>list</string>
-            <key>arguments</key>
-            <map>
-               <key>ListVariable</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Start</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>End</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Copies the slice of the list from Start to End.\nReturns the slice of the list from start to end from the list as a new list. The start and end parameters are inclusive.\n
-				Using negative numbers for start and/or end causes the index to count backwards from the length of the list, so 0, -1 would capture the entire list.\n
-				If start is larger than end the list returned is the exclusion of the entries, so 6, 4 would give the entire list except for the 5th. entry.</string>
-         </map>
-         <key>llList2ListStrided</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>list</string>
-            <key>arguments</key>
-            <map>
-               <key>ListVariable</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Start</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>End</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Stride</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Copies the strided slice of the list from Start to End.\nReturns a copy of the strided slice of the specified list from Start to End.</string>
-         </map>
-         <key>llList2Rot</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>rotation</string>
-            <key>arguments</key>
-            <map>
-               <key>ListVariable</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Index</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Copies the rotation at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to rotation, thenZERO_ROTATION is returned.</string>
-         </map>
-         <key>llList2String</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>ListVariable</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Index</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Copies the string at Index in the list.\nReturns the value at Index in the specified list as a string. If Index describes a location not in the list then null string is returned.</string>
-         </map>
-         <key>llList2Vector</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>ListVariable</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Index</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Copies the vector at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to a vector, then ZERO_VECTOR is returned.</string>
-         </map>
-         <key>llListen</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Channel</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>SpeakersName</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>SpeakersID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets a callback for Text on Channel from SpeakersName and SpeakersID (SpeakersName, SpeakersID, and/or Text can be empty) and returns an identifier that can be used to deactivate or remove the listen.\nSets a listen event callback on the specified channel. Specifying values for speakername, speakerID, and message will filter the results accordingly, which is advisable or your listen event will respond to every thing said on the channel potentially causing a great deal of lag.\n
-				Returns an identifier that can be used to deactivate or remove the listen. The name, id and/or msg parameters\n
-				Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 to 2,147,483,648 are hidden channels that are not sent to avatars.</string>
-         </map>
-         <key>llListenControl</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>ChannelHandle</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Active</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Makes a listen event callback active or inactive.\nMake a listen event callback active or inactive. Pass in the value returned from llListen to the iChannelHandle parameter to specify which event you are controlling.\n
-				Use boolean values to specify Active</string>
-         </map>
-         <key>llListenRemove</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>ChannelHandle</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Removes listen event callback number.\nRemoves a listen event callback. Pass in the value returned from llListen to the iChannelHandle parameter to specify which event to remove.</string>
-         </map>
-         <key>llListFindList</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>ListVariable</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Find</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the index of the first instance of Find in ListVariable. Returns -1 if not found.\nReturns the position of the first instance of the Find list in the ListVariable. Returns -1 if not found.</string>
-         </map>
-         <key>llListInsertList</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>list</string>
-            <key>arguments</key>
-            <map>
-               <key>Target</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>ListVariable</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Position</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns a list that contains all the elements from Target but with the elements from ListVariable inserted at Position start.\nReturns a new list, created by inserting ListVariable into the Target list at Position. Note this does not alter the Target.</string>
-         </map>
-         <key>llListRandomize</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>list</string>
-            <key>arguments</key>
-            <map>
-               <key>ListVariable</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Stride</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns a randomized list of blocks of size Stride.\nReturns the specified list randomized into blocks of size stride.\n
-				If the remainder from the length of the list, divided by the stride is non-zero, this function does not randomize the list.</string>
-         </map>
-         <key>llListReplaceList</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>list</string>
-            <key>arguments</key>
-            <map>
-               <key>Target</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>ListVariable</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Start</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>End</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns a list that is Target with Start through End removed and ListVariable inserted at Start.\nReturns a list replacing the slice of the Target list from Start to End with the specified ListVariable. Start and End are inclusive, so 0, 1 would replace the first two entries and 0, 0 would replace only the first list entry.</string>
-         </map>
-         <key>llListSort</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>list</string>
-            <key>arguments</key>
-            <map>
-               <key>ListVariable</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Stride</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Ascending</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sorts the list into blocks of stride, in Ascending order if Ascending == TRUE. The sort order is affected by type.\nReturns the specified list, sorted into blocks of stride in ascending order (if Ascending is TRUE, otherwise descending). Note that sort only works if the first entry of each block is the same type.</string>
-         </map>
-         <key>llListStatistics</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>Operation</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>ListVariable</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Performs statistical aggregate functions on ListVariable using LIST_STAT_* Operations.\nThis function allows a script to perform a statistical operation as defined by operation on a list composed of integers and floats.</string>
-         </map>
-         <key>llLoadURL</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>URL</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Shows dialog to avatar AvatarID offering to load web page at URL.	If user clicks yes, launches their web browser.\nllLoadURL displays a dialogue box to the user, offering to load the specified web page using the default web browser.</string>
-         </map>
-         <key>llLog</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>Value</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the natural logarithm of Value. Returns zero if Value &lt;= 0.\nReturns the base e (natural) logarithm of the specified Value.</string>
-         </map>
-         <key>llLog10</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>Value</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the base 10 logarithm of Value. Returns zero if Value &lt;= 0.\nReturns the base 10 (common) logarithm of the specified Value.</string>
-         </map>
-         <key>llLookAt</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Target</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Strength</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Damping</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Cause object name to point it's forward axis towards Target.\nCause object to point the forward axis toward Target.\n
-				Good Strength values are around half the mass of the object and good Damping values are less than 1/10th of the Strength.\n
-				Asymmetrical shapes require smaller Damping. A Strength of 0.0 cancels the look at.</string>
-         </map>
-         <key>llLoopSound</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Sound</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Volume</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Plays attached Sound, looping indefinitely, at Volume (0.0 - 1.0).\nSimilar to llPlaySound, this function plays a sound attached to an object, but will continuously repeat that sound until llStopSound or llPlaySound is called.\n
-			Only one sound may be attached to an object at a time. A second call to llLoopSound with the same key will not restart the sound, but the new volume will be used. This allows control over the volume of already playing sounds.\n
-			Setting the volume to 0 is not the same as calling llStopSound; a sound with 0 volume will continue to loop.\n
-			To restart the sound from the beginning, call llStopSound before calling llLoopSound again.</string>
-         </map>
-         <key>llLoopSoundMaster</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Sound</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Volume</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Plays attached Sound, looping at volume (0.0 - 1.0), and declares it a sync master.\nBehaviour is identical to llLoopSound, with the addition of marking the source as a "Sync Master", causing "Slave" sounds to sync to it. If there are multiple masters within a viewers interest area, the most audible one (a function of both distance and volume) will win out as the master.\n
-				The use of multiple masters within a small area is unlikely to produce the desired effect.</string>
-         </map>
-         <key>llLoopSoundSlave</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Sound</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Volume</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Plays attached sound looping at volume (0.0 - 1.0), synced to most audible sync master.\nBehaviour is identical to llLoopSound, unless there is a "Sync Master" present.\n
-				If a Sync Master is already playing the Slave sound will begin playing from the same point the master is in its loop synchronizing the loop points of both sounds.\n
-				If a Sync Master is started when the Slave is already playing, the Slave will skip to the correct position to sync with the Master.</string>
-         </map>
-         <key>llMakeExplosion</key>
-         <map>
-            <key>deprecated</key>
-            <boolean>true</boolean>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.1</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Particles</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Scale</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Velocity</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Lifetime</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Arc</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Texture</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Offset</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Make a round explosion of particles. Deprecated: Use llParticleSystem instead.\nMake a round explosion of particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.</string>
-         </map>
-         <key>llMakeFire</key>
-         <map>
-            <key>deprecated</key>
-            <boolean>true</boolean>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.1</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Particles</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Scale</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Velocity</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Lifetime</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Arc</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Texture</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Offset</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Make fire like particles. Deprecated: Use llParticleSystem instead.\nMake fire particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.</string>
-         </map>
-         <key>llMakeFountain</key>
-         <map>
-            <key>deprecated</key>
-            <boolean>true</boolean>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.1</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Particles</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Scale</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Velocity</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Lifetime</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Arc</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Texture</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Offset</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Make a fountain of particles. Deprecated: Use llParticleSystem instead.\nMake a fountain of particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.</string>
-         </map>
-         <key>llMakeSmoke</key>
-         <map>
-            <key>deprecated</key>
-            <boolean>true</boolean>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.1</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Particles</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Scale</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Velocity</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Lifetime</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Arc</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Texture</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Offset</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Make smoke like particles. Deprecated: Use llParticleSystem instead.\nMake smoky particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.</string>
-         </map>
-         <key>llManageEstateAccess</key>
-         <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real/>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Action</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Use to add or remove agents from the estate's agent access or ban lists or groups from the estate's group access list.\nUse to add or remove agents from the estate's agent access or ban lists or groups from the estate's group access list.\n
-			Returns an integer representing a boolean, TRUE if the call was successful; FALSE if throttled, invalid action, invalid or null id or object owner is not allowed to manage the estate.</string>
-         </map>
-         <key>llMapDestination</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>1.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>RegionName</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Position</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Direction</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Opens world map centred on region with Position highlighted. Only works for scripts attached to avatar, or during touch events. NOTE: Direction currently does nothing.\nShows a given location on the map, opening the map window whenever it is called.\n
-				There is no way to simply set the map position without opening the window.\n
-				Only works in attachments, or during touch events.</string>
-         </map>
-         <key>llMD5String</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Nonce</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns a string of 32 hex characters that is an RSA Data Security Inc., MD5 Message-Digest Algorithm of Text with Nonce.\nPerforms an RSA Data Security, Inc. MD5 Message-Digest Algorithm on the specified string using the nonce (also known as salt).\n
-				Returns a 32-character hex string. (128-bit in binary.)</string>
-         </map>
-         <key>llMessageLinked</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>LinkNumber</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Number</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>ID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sends Number, Text, and ID to members of the link set identified by LinkNumber (LINK_ROOT sends to root task in a linked set, LINK_SET sends to all tasks, LINK_ALL_OTHERS to all other tasks, LINK_ALL_CHILDREN to all children, LINK_THIS to the task the script it is in).\nSends the specified number, string, and key to members of the link set.\n
-				The LinkNumber parameter is either a linked number available through llGetLinkNumber or a LINK_* constant.</string>
-         </map>
-         <key>llMinEventDelay</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Delay</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Set the minimum time between events being handled.</string>
-         </map>
-         <key>llModifyLand</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Action</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Area</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Modify land with action (LAND_LEVEL, LAND_RAISE, LAND_LOWER, LAND_SMOOTH, LAND_NOISE, LAND_REVERT) on size (LAND_SMALL_BRUSH, LAND_MEDIUM_BRUSH, LAND_LARGE_BRUSH).\nModify land with action on size area. The parameters can be chosen from the land constants.</string>
-         </map>
-         <key>llModPow</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>1.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Value</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Power</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Modulus</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns a Value raised to the Power, mod Modulus. ((a**b)%c) b is capped at 0xFFFF (16 bits).\nReturns (Value ^ Power) % Modulus. (Value raised to the Power, Modulus). Value is capped at 0xFFFF (16 bits).</string>
-         </map>
-         <key>llMoveToTarget</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Target</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Tau</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Critically damp to Target in Tau seconds (if the script is physical).\nCritically damp to position target in tau-seconds if the script is physical. Good tau-values are greater than 0.2. A tau of 0.0 stops the critical damping.</string>
-         </map>
-         <key>llNavigateTo</key>
-         <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real/>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Location</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Options</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Navigate to destination.\nDirects an object to travel to a defined position in the region or adjacent regions.</string>
-         </map>
-         <key>llOffsetTexture</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.2</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>OffsetS</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>OffsetT</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Face</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the texture S and T offsets for the chosen Face.\nSets the texture s and t offsets of face.\n
-			If Face is ALL_SIDES this function sets the texture offsets for all faces.</string>
-         </map>
-         <key>llOpenRemoteDataChannel</key>
-         <map>
-            <key>deprecated</key>
-            <boolean>true</boolean>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>1.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Requests a channel to listen for XML-RPC calls. Will trigger a remote_data event with channel ID once it is available.\nRequests a channel to listen for XML-RPC calls. (Deprecated: XML-RPC should not be used. Use http-in instead.)\n
-				Will trigger a remote_data event with type = REMOTE_DATA_CHANNEL and a channel ID (key) once it is available.\n
-				This channel ID must be referenced in the XML-RPC call to the script (from the internet) -- so the key must somehow get to the scripter's XML-RPC client, most often via llEmail, llHttpRequest or llLoadUrl.</string>
-         </map>
-         <key>llOverMyLand</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>ID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns TRUE if id ID over land owned by the script owner, otherwise FALSE.\nReturns TRUE if key ID is over land owned by the object owner, FALSE otherwise.</string>
-         </map>
-         <key>llOwnerSay</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>says Text to owner only (if owner is in region).\nSays Text to the owner of the object running the script, if the owner has been within the object's simulator since logging into Second Life, regardless of where they may be in-world.</string>
-         </map>
-         <key>llParcelMediaCommandList</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>2.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>CommandList</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sends a list of commands, some with arguments, to a parcel.\nControls the playback of multimedia resources on a parcel or for an agent.</string>
-         </map>
-         <key>llParcelMediaQuery</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>2.0</real>
-            <key>return</key>
-            <string>list</string>
-            <key>arguments</key>
-            <map>
-               <key>QueryList</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns a list containing results of the sent query.\nQueries the texture and/or URL for QuickTime-playable video on the land parcel.\n
-				This function will only work if the script is contained within an object owned by the land-owner (or if the land is owned by a group, only if the object has been deeded to the group). It will not work for group land if the object owner is a member of the group. The object actually has to be owned by the group.</string>
-         </map>
-         <key>llParseString2List</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>list</string>
-            <key>arguments</key>
-            <map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Separators</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Spacers</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Breaks Text into a list, discarding Separators, keeping Spacers (Separators and Spacers must be lists of strings, maximum of 8 each).\nBreaks the Text into a list using Separators and Spacers to delimit entries. Separators are discarded, while Spacers are kept. Any empty entries are ignored.\n
-				The separators and spacers must be lists of strings with a maximum of 8 entries each. So, if you had made the call:\n
-				llParseString2List("Parsethisnow! I dare:you to.", ["this", "!", " "], [":"]);\n
-				You would get the list: ["Parse", "now", "I", "dare", ":", "you", "to"].</string>
-         </map>
-         <key>llParseStringKeepNulls</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>list</string>
-            <key>arguments</key>
-            <map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Separators</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Spacers</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Breaks Text into a list, discarding separators, keeping spacers, keeping any null values generated. (separators and spacers must be lists of strings, maximum of 8 each).\nllParseStringKeepNulls works almost exactly like llParseString2List, except that if a null is found it will add a null-string instead of discarding it like llParseString2List does.</string>
-         </map>
-         <key>llParticleSystem</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Parameters</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Creates a particle system based on Parameters.	An empty list removes particle system from object.
-				List format is [ rule-1, data-1, rule-2, data-2 . . . rule-n, data-n ].\nMakes a particle system based on the parameter list.\n
-				The parameters are specified as an ordered list of parameter and value. Valid parameters and their expected values can be found in the particle system constants.\n
-				Here is a simple example:\n
-				llParticleSystem([PSYS_PART_FLAGS, PSYS_PART_WIND_MASK, PSYS_PART_START_COLOR, &lt;1, 0, 0&gt;, PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_EXPLODE]);</string>
-         </map>
-         <key>llPassCollisions</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Pass</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>If Pass == TRUE, collisions are passed from children on to parents (default is FALSE).\nIf pass is TRUE, land and object collisions are passed from children on to parents.\n
-				The default is FALSE if there is no script to handle the collision events.</string>
-         </map>
-         <key>llPassTouches</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Pass</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>If pass == TRUE, touches are passed from children on to parents (default is FALSE).\nIf pass is TRUE, touches are passed from children on to parents.\n
-				The default is TRUE if there is no script to handle the touch events.</string>
-         </map>
-         <key>llPatrolPoints</key>
-         <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real/>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Points</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Options</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Patrol a list of points.\nSets the points for a character (llCreateCharacter) to patrol along.</string>
-         </map>
-         <key>llPlaySound</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Sound</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Volume</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Plays attached Sound once, at Volume (0.0 - 1.0).\nPlays a sound once. The sound will be attached to the object and follow object's movement. Only one sound may be attached to an object at a time, and attaching a new sound or calling llStopSound will stop the previously attached sound.\n
-				A second call to llPlaySound with the same sound will not restart the sound, but the new volume will be used, which allows control over the volume of already playing sounds.\n
-				To restart the sound from the beginning, call llStopSound before calling llPlaySound again.</string>
-         </map>
-         <key>llPlaySoundSlave</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Sound</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Volume</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Plays attached Sound once, at Volume (0.0 - 1.0), synced to next loop of most audible sync master.\nBehaviour is identical to llPlaySound, unless there is a "Sync Master" present. If a Sync Master is already playing, the Slave sound will not be played until the Master hits its loop point and returns to the beginning.\n
-				llPlaySoundSlave will play the sound exactly once; if it is desired to have the sound play every time the Master loops, either use llLoopSoundSlave with extra silence padded on the end of the sound or ensure that llPlaySoundSlave is called at least once per loop of the Master.</string>
-         </map>
-         <key>llPow</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Value</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Exponent</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the Value raised to the power Exponent, or returns 0 and triggers Math Error for imaginary results.\nReturns the Value raised to the Exponent.</string>
-         </map>
-         <key>llPreloadSound</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>1.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Sound</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Preloads a sound on viewers within range.\nCauses nearby viewers to preload the Sound from the object's inventory. This is intended to prevent delays in starting new sounds when called upon.</string>
-         </map>
-         <key>llPursue</key>
-         <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real/>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>TargetID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Options</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Chase after a target.\nCauses the character (llCharacter) to pursue the target defined by TargetID.</string>
-         </map>
-         <key>llPushObject</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>ObjectID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Impulse</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>AngularImpulse</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Local</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Applies Impulse and AngularImpulse to ObjectID.\nApplies the supplied impulse and angular impulse to the object specified.</string>
-         </map>
-         <key>llRefreshPrimURL</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>20.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Reloads the web page shown on the sides of the object.</string>
-         </map>
-         <key>llRegionSay</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Channel</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Broadcasts Text to entire region on Channel (not 0.).\nSays the Text on the specified non-zero Channel, so that it can be heard anywhere in the region by a script listening on that channel.</string>
-         </map>
-         <key>llRegionSayTo</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>TargetID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Channel</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Says Text, on Channel, to avatar or object indicated by TargetID (if within region).\nSays the Text on the supplied channel number, to the object or avatar specified.</string>
-         </map>
-         <key>llReleaseCamera</key>
-         <map>
-            <key>deprecated</key>
-            <boolean>true</boolean>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Return camera to agent.\nDeprecated: Use llClearCameraParams instead.</string>
-         </map>
-         <key>llReleaseControls</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Stop taking inputs.\nStop taking inputs from the avatar.</string>
-         </map>
-         <key>llReleaseURL</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>URL</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Releases the specified URL, it will no longer be usable.</string>
-         </map>
-         <key>llRemoteDataReply</key>
-         <map>
-            <key>deprecated</key>
-            <boolean>true</boolean>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>3.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>ChannelID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>MessageID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Data</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Data</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Send an XML-RPC reply to MessageID on ChannelID with payload of string sData and integer iData. Deprecated: Use HTTP functions/events instead.\nDeprecated: Use HTTP functions/events instead.\n
-				Send an XML-RPC reply to the request with kMessageID on kChannelID with payload of string sData and integer iData.\n
-				The size of sData is limited to 254 characters.</string>
-         </map>
-         <key>llRemoteDataSetRegion</key>
-         <map>
-            <key>deprecated</key>
-            <boolean>true</boolean>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Deprecated: Use HTTP functions/events instead.\n
-				If an object using remote data channels changes regions, you must call this function to re-register the remote data channels.
-				You do not need to make this call if you don't change regions.\nDeprecated: Use HTTP functions/events instead.\n
-				Does not work! Use llOpenRemoteDataChannel instead.</string>
-         </map>
-         <key>llRemoteLoadScriptPin</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>3.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>ObjectID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>ScriptName</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>PIN</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Running</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>StartParameter</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>If the owner of the object this script is attached to can modify ObjectID, they are in the same region, and the matching PIN is used, copy ScriptName into target, if Running == TRUE, start the script with StartParameter.\nIf the owner of the object containing this script can modify the object identified by the specified object key, and if the PIN matches the PIN previously set using llSetRemoteScriptAccessPin (on the target prim), then the script will be copied into target.</string>
-         </map>
-         <key>llRemoveFromLandBanList</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Remove avatar from the land ban list.\nRemove specified avatar from the land parcel ban list.</string>
-         </map>
-         <key>llRemoveFromLandPassList</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Remove avatar from the land pass list.\nRemove specified avatar from the land parcel pass list.</string>
-         </map>
-         <key>llRemoveInventory</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>InventoryItem</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Remove the named inventory item.\nRemove the named inventory item from the object inventory.</string>
-         </map>
-         <key>llRemoveVehicleFlags</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Vehiclelags</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Removes the enabled bits in 'flags'.\nSets the vehicle flags to FALSE. Valid parameters can be found in the vehicle flags constants section.</string>
-         </map>
-         <key>llRequestAgentData</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.1</real>
-            <key>return</key>
-            <string>key</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Data</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Requests data about AvatarID. When data is available the dataserver event will be raised.\nThis function requests data about an avatar. If and when the information is collected, the dataserver event is triggered with the key returned from this function passed in the requested parameter. See the agent data constants (DATA_*) for details about valid values of data and what each will return in the dataserver event.</string>
-         </map>
-         <key>llRequestDisplayName</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Requests name of an avatar. When data is available, the dataserver event will be raised.\nRequests the Display Name of the agent. When the Display Name is available the dataserver event will be raised.\n
-				The avatar identified does not need to be in the same region or online at the time of the request.\n
-				Returns a key that is used to identify the dataserver event when it is raised.</string>
-         </map>
-         <key>llRequestInventoryData</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>1.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>arguments</key>
-            <map>
-               <key>InventoryItem</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Requests data from object's inventory object. When data is available the dataserver event will be raised.\nRequests data for the object inventory item named.\n
-				When data is available the dataserver event will be raised with the key returned from this function in the requested parameter.\n
-				The only request currently implemented is to request data from landmarks, where the data returned is in the form "&lt;float, float, float&gt;" which can be cast to a vector. This position is in region local coordinates.</string>
-         </map>
-         <key>llRequestPermissions</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>PermmissionMask</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Ask AvatarID to allow the script to do PermmissionMask (NB: Debit, ownership, link, joint, and permission requests can only go to the task's owner).\nAsk avatar to allow the script to perform certain actions. The permission flag should be one or more PERMISSION_* constants.\n
-				Multiple permissions can be requested simultaneously by ORing the constants together. Many of the permissions requests can only go to object owner.\n
-				This call will not stop script execution. If the avatar grants the requested permissions, the run_time_permissions event will be called.\n
-				Permissions for a single avatar are granted to a script, not to an object. So multiple scripts can hold permissions for multiple avatars.</string>
-         </map>
-         <key>llRequestSecureURL</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Requests one HTTPS:// (SSL) URL for use by this object. An http_request event is triggered with the results.\nRequests one HTTPS:// (SSL) URL for use by this object. The http_request event is triggered with results.\n
-				Returns a key that is the handle used for identifying the request in the http_request event.</string>
-         </map>
-         <key>llRequestSimulatorData</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>1.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>arguments</key>
-            <map>
-               <key>RegionName</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Data</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Requests data about a simulator. When data is available the dataserver event will be raised.\nRequests data about the region named. Data should use one of the DATA_SIM_* constants.\n
-			Returns a dataserver query ID and triggers the dataserver event when data is found. The region name is usually not case-sensitive, but sometimes will return data for a similarly-named region if the supplied case doesn't match the intended region's actual name.</string>
-         </map>
-         <key>llRequestURL</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Requests one HTTP:// URL for use by this object. An http_request event is triggered with the results.\nRequests one HTTP:// URL for use by this script. The http_request event is triggered with the result of the request.\n
-				Returns a key that is the handle used for identifying the result in the http_request event.</string>
-         </map>
-         <key>llRequestUsername</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Requests single-word user-name of an avatar. When data is available the dataserver event will be raised.\nRequests the user-name of the identified agent. When the user-name is available the dataserver event is raised.\nThe agent identified does not need to be in the same region or online at the time of the request.\nReturns a key that is used to identify the dataserver event when it is raised.</string>
-         </map>
-         <key>llResetAnimationOverride</key>
-         <map>
-            <key>energy</key>
-            <real>0</real>
-            <key>sleep</key>
-            <real>0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>AnimationState</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Resets the animation of the specified animation state to the default value.\nIf animation state equals "ALL", then all animation states are reset.</string>
-         </map>
-         <key>llResetLandBanList</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Removes all residents from the land ban list.</string>
-         </map>
-         <key>llResetLandPassList</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Removes all residents from the land access/pass list.</string>
-         </map>
-         <key>llResetOtherScript</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>ScriptName</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Resets the named script.</string>
-         </map>
-         <key>llResetScript</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Resets the script.</string>
-         </map>
-         <key>llResetTime</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Sets the time to zero.\nSets the internal timer to zero.</string>
-         </map>
-         <key>llReturnObjectsByID</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>lObjectIDs</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Return objects using their UUIDs</string>
-         </map>
-         <key>llReturnObjectsByOwner</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>kID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>iScope</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Return objects based upon their owner and a scope of parcel, parcel owner, or region.</string>
-         </map>
-         <key>llRezAtRoot</key>
-         <map>
-            <key>energy</key>
-            <real>200.0</real>
-            <key>sleep</key>
-            <real>0.1</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>InventoryItem</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Position</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Velocity</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Rotation</key>
-               <map>
-                  <key>type</key>
-                  <string>rotation</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>StartParameter</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Instantiate owner's InventoryItem at Position with Velocity, Rotation and with StartParameter. The last selected root object's location will be set to Position.\nCreates object's inventory item at the given Position, with Velocity, Rotation, and StartParameter.</string>
-         </map>
-         <key>llRezObject</key>
-         <map>
-            <key>energy</key>
-            <real>200</real>
-            <key>sleep</key>
-            <real>0.1</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>InventoryItem</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Position</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Velocity</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Rotation</key>
-               <map>
-                  <key>type</key>
-                  <string>rotation</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>StartParameter</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Instantiate owners InventoryItem at Position with Velocity, Rotation and with start StartParameter.\nCreates object's inventory item at Position with Velocity and Rotation supplied. The StartParameter value will be available to the newly created object in the on_rez event or through the llGetStartParameter function.\nThe Velocity parameter is ignored if the rezzed object is not physical.</string>
-         </map>
-         <key>llRot2Angle</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>Rotation</key>
-               <map>
-                  <key>type</key>
-                  <string>rotation</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the rotation angle represented by Rotation.\nReturns the angle represented by the Rotation.</string>
-         </map>
-         <key>llRot2Axis</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>Rotation</key>
-               <map>
-                  <key>type</key>
-                  <string>rotation</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the rotation axis represented by Rotation.\nReturns the axis represented by the Rotation.</string>
-         </map>
-         <key>llRot2Euler</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>Rotation</key>
-               <map>
-                  <key>type</key>
-                  <string>rotation</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the Euler representation (roll, pitch, yaw) of Rotation.\nReturns the Euler Angle representation of the Rotation.</string>
-         </map>
-         <key>llRot2Fwd</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>Rotation</key>
-               <map>
-                  <key>type</key>
-                  <string>rotation</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the forward vector defined by Rotation.\nReturns the forward axis represented by the Rotation.</string>
-         </map>
-         <key>llRot2Left</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>Rotation</key>
-               <map>
-                  <key>type</key>
-                  <string>rotation</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the left vector defined by Rotation.\nReturns the left axis represented by the Rotation.</string>
-         </map>
-         <key>llRot2Up</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>Rotation</key>
-               <map>
-                  <key>type</key>
-                  <string>rotation</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the up vector defined by Rotation.\nReturns the up axis represented by the Rotation.</string>
-         </map>
-         <key>llRotateTexture</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.2</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Radians</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Face</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the texture rotation for the chosen face.\nSets the rotation of the texture on the given side.\n
-				If face is ALL_SIDES, rotates the texture of all sides.</string>
-         </map>
-         <key>llRotBetween</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>rotation</string>
-            <key>arguments</key>
-            <map>
-               <key>Vector1</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Vector2</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the rotation to rotate Vector1 to Vector2.\nReturns the rotation needed to rotate Vector1 to Vector2.</string>
-         </map>
-         <key>llRotLookAt</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Rotation</key>
-               <map>
-                  <key>type</key>
-                  <string>rotation</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Strength</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Damping</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Cause object to point it's forward axis towards Rotation.\nCause object to rotate to Rotation. Good strength values are around half the mass of the object and good damping values are less than 1/10th of the strength.\n
-				Asymmetrical shapes require smaller damping.\n
-				A strength of 0.0 cancels the look at.</string>
-         </map>
-         <key>llRotTarget</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Rotation</key>
-               <map>
-                  <key>type</key>
-                  <string>rotation</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>LeeWay</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Set rotations with error of LeeWay as a rotational target and return an ID for the rotational target.\nSet object rotation within the given lee way of rotation as a rotational target and return an integer number for the target.\n
-				The returned number is a handle that can be used in llRotTargetRemove.</string>
-         </map>
-         <key>llRotTargetRemove</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Handle</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Removes rotational target number.\nRemove rotational target indicated by the handle.</string>
-         </map>
-         <key>llRound</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Value</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns Value rounded to the nearest integer.\nReturns the Value rounded to the nearest integer.</string>
-         </map>
-         <key>llSameGroup</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>ID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns TRUE if avatar ID is in the same region and has the same active group, otherwise FALSE.\nReturns TRUE if the object or agent identified is in the same simulator and has the same active group as this object. Otherwise, returns FALSE.</string>
-         </map>
-         <key>llSay</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Channel</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Says Text on Channel.\nSay Text on channel.\n
-			Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 to 2,147,483,648 are private channels that are not sent to avatars but other scripts can listen for through the llListen/listen event system.</string>
-         </map>
-         <key>llScaleTexture</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.2</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Horizontal</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Vertical</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Face</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the texture's S and T scales for the chosen Face.\nSets the Horizontal and Vertical repeats per Face on Face.\n
-				If Face == ALL_SIDES, all sides are set in one call.\n
-				Negative values for horizontal and vertical will flip the texture.</string>
-         </map>
-         <key>llScriptDanger</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Position</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns TRUE if Position is over public land, sandbox land, land that doesn't allow everyone to edit and build, or land that doesn't allow outside scripts.\nReturns true if the position is over public land, land that doesn't allow everyone to edit and build, or land that doesn't allow outside scripts.</string>
-         </map>
-         <key>llScriptProfiler</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>State</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Enables or disables script profiling options. Currently only supports PROFILE_SCRIPT_MEMORY (Mono only) and PROFILE_NONE.\n
-				MAY SIGNIFICANTLY REDUCE SCRIPT PERFORMANCE!.\nEnables or disables the scripts profiling state.. Currently only supports PROFILE_SCRIPT_MEMORY (Mono only) and PROFILE_NONE.\n
-				MAY SIGNIFICANTLY REDUCE SCRIPT PERFORMANCE!.</string>
-         </map>
-         <key>llSendRemoteData</key>
-         <map>
-            <key>deprecated</key>
-            <boolean>true</boolean>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>3.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>arguments</key>
-            <map>
-               <key>ChannelID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Destination</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Value</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Deprecated: use HTTP instead.\n
-				Sends an XML-RPC request to Destination through ChannelID with payload of ChannelID (in a string), integer Value and string Text.
-				Returns a key that is the message_id for the resulting remote_data events.\nSend an XML-RPC request to the Destination (probably an URL) through the ChannelID, with a payload of ChannelID (in a string), integer Value and string Text.</string>
-         </map>
-         <key>llSensor</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Name</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>ID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Type</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Range</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Arc</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Performs a single scan for Name and ID with Type (AGENT, ACTIVE, PASSIVE, and/or SCRIPTED) within Range meters and Arc radians of forward vector (Name, ID, and/or Type can be empty or 0).\nPerforms a single scan for Name and ID with Type within Range meters and Arc radians of the forward vector.\n
-				Specifying a blank Name or NULL_KEY ID will prevent filtering results for a particular Name or ID. A range of 0.0 does not perform a scan. The Type parameter should be an object type constant value.</string>
-         </map>
-         <key>llSensorRemove</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>removes sensor.\nRemoves the sensor set by llSensorRepeat.</string>
-         </map>
-         <key>llSensorRepeat</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Name</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>ID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Type</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Range</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Arc</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Rate</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets a callback for Name and ID with Type (AGENT, ACTIVE, PASSIVE, and/or SCRIPTED) within Range meters and Arc radians of forward vector (Name, ID, and/or Type can be empty or 0) and repeats every Rate seconds.\nPerforms a repeating sensor scan for Name and ID with Type within Range meters and Arc radians of the forward vector (Name and/or ID can be empty or NULL_KEY).\n
-				A range of 0.0m does not perform a scan. The parameters have the same function as llSensor, except Rate, which defines the number of seconds between repeated scans and subsequent sensor or no_sensor events.</string>
-         </map>
-         <key>llSetAlpha</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Opacity</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Face</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the alpha (opacity) of Face.\nSets the alpha (opacity) value for Face. If Face is ALL_SIDES, sets the alpha for all faces. The alpha value is interpreted as an opacity percentage (1.0 is fully opaque, and 0.2 is mostly transparent). This function will clamp alpha values less than 0.1 to 0.1 and greater than 1.0 to 1.</string>
-         </map>
-         <key>llSetAngularVelocity</key>
-         <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Force</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Local</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets an object's angular velocity, in local coordinates if local == TRUE (if the script is physical).\nApplies angular (rotational) velocity to a physical object. Has no effect on non-physical objects.</string>
-         </map>
-         <key>llSetAnimationOverride</key>
-         <map>
-            <key>energy</key>
-            <real>0</real>
-            <key>sleep</key>
-            <real>0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>AnimationState</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>AnimationName</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the animation (in object inventory) that will play for the given animation state.\nTo use this function the script must obtain the PERMISSION_OVERRIDE_ANIMATIONS permission.</string>
-         </map>
-         <key>llSetBuoyancy</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Buoyancy</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Set the tasks buoyancy (0 is none, &lt; 1.0 sinks, 1.0 floats, &gt; 1.0 rises).\nSet the object buoyancy. A value of 0 is none, less than 1.0 sinks, 1.0 floats, and greater than 1.0 rises.</string>
-         </map>
-         <key>llSetCameraAtOffset</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Offset</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the camera used in this object, at offset, if an avatar sits on it.\nSets the offset that an avatar's camera will be moved to if the avatar sits on the object.</string>
-         </map>
-         <key>llSetCameraEyeOffset</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Offset</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the camera eye offset used in this object if an avatar sits on it.</string>
-         </map>
-         <key>llSetCameraParams</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Parameters</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets multiple camera parameters at once. List format is [ rule-1, data-1, rule-2, data-2 . . . rule-n, data-n ].\nSets multiple camera parameters at once.\n
-				List format is [rule-1, value-1, rule-2, value-2 ... rule-N, value-N]</string>
-         </map>
-         <key>llSetClickAction</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Action</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the action performed when a prim is clicked upon.</string>
-         </map>
-         <key>llSetColor</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Colour</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Face</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the color, for the face.\nSets the colour of the side specified. If Face is ALL_SIDES, sets the colour on all faces.</string>
-         </map>
-         <key>llSetContentType</key>
-         <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real/>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>HTTPRequestID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>ContentType</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Set the media type of an LSL HTTP server response.</string>
-         </map>
-         <key>llSetDamage</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Damage</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the amount of damage that will be done to an avatar that this task hits.	Task will be killed.\nSets the amount of damage that will be done to an avatar that this object hits. This object will be destroyed on damaging an avatar, and no collision event is triggered.</string>
-         </map>
-         <key>llSetForce</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Force</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Local</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets Force on object, in local coordinates if Local == TRUE (if the script is physical).\nIf the object is physical, this function sets the force.\n
-				The vector is in local coordinates if local is TRUE, global if FALSE.</string>
-         </map>
-         <key>llSetForceAndTorque</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Force</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Torque</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Local</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the Force and Torque of object, in local coordinates if Local == TRUE (if the script is physical).\nIf the object is physical, this function sets the Force and Torque. The vectors are in local coordinates if Local is TRUE, global if FALSE.</string>
-         </map>
-         <key>llSetHoverHeight</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Height</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Water</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Tau</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Critically damps to a Height (either above ground level or above the higher of land and water if water == TRUE).\nCritically damps to a Height. The height is above ground and water (which ever is greater) if water is TRUE. Only works with physics-enabled objects.\n
-				Do not use with vehicles. Use llStopHover to stop hovering.</string>
-         </map>
-         <key>llSetInventoryPermMask</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>InventoryItem</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>PermissionFlag</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>PermissionMask</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the given permission mask to the new value on the inventory item.</string>
-         </map>
-         <key>llSetKeyframedMotion</key>
-         <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real/>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Keyframes</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Options</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Requests that a non-physical object be key-framed according to key-frame list.\nSpecify a list of times, positions, and orientations to be followed by an object. The object will be smoothly moved between key-frames by the simulator. Collisions with other non-physical or key-framed objects will be ignored (no script events will fire and collision processing will not occur). Collisions with physical objects will be computed and reported, but the key-framed object will be unaffected by those collisions.</string>
-         </map>
-         <key>llSetLinkAlpha</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>LinkNumber</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Opacity</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Face</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>If a prim exists in the link chain at LinkNumber, set Face to Opacity.\nSets the Face, on the linked prim specified, to the Opacity.</string>
-         </map>
-         <key>llSetLinkCamera</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>LinkNumber</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>EyeOffset</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>LookOffset</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the camera eye offset, and the offset that camera is looking at, for avatars that sit on the linked prim.</string>
-         </map>
-         <key>llSetLinkColor</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>LinkNumber</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Colour</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Face</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>If a task exists in the link chain at LinkNumber, set the Face to color.\nSets the colour of the linked child's side, specified by LinkNumber.</string>
-         </map>
-         <key>llSetLinkMedia</key>
-         <map>
-            <key>energy</key>
-            <real>0.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Link</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Face</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Parameters</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Set the media parameters for a particular face on linked prim.	Parameters is a list of name/value pairs (in no particular order). If media is not already on this object, add it. Parameters not specified are unchanged, or if new media is added set to the default specified.\nSet the media parameters for a particular face on the linked prim(s) without a delay.\n
-				Returns an integer that is a STATUS_* flag which details the success/failure of the operation(s).</string>
-         </map>
-         <key>llSetLinkPrimitiveParams</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.2</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>LinkNumber</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Parameters</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Set primitive parameters for LinkNumber based on Parameters.\nSets the parameters (or properties) of any linked prim in one step.</string>
-         </map>
-         <key>llSetLinkPrimitiveParamsFast</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>LinkNumber</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Parameters</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Set primitive parameters for LinkNumber based on Parameters, without a delay.\nSet parameters for link number, from the list of Parameters, with no built-in script sleep. This function is identical to llSetLinkPrimitiveParams, except without the delay.</string>
-         </map>
-         <key>llSetLinkTexture</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.2</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>LinkNumber</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Texture</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Face</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the Texture of Face for LinkNumber.\nSets the Texture of linked prims.</string>
-         </map>
-         <key>llSetLinkTextureAnim</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>LinkNumber</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Mode</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Face</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>SizeX</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>SizeY</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Start</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Length</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Rate</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Animate the texture on the specified prim's face/faces.\nAnimate the texture on the specified face/faces of the specified prim/prims by setting the texture scale and offset.\n
-				Identical to llSetTextureAnim except able to modify any prim in the link set.</string>
-         </map>
-         <key>llSetLocalRot</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.2</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Rotation</key>
-               <map>
-                  <key>type</key>
-                  <string>rotation</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the rotation of a child prim relative to the root prim.</string>
-         </map>
-         <key>llSetMemoryLimit</key>
-         <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Limit</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Request Limit bytes to be reserved for this script. This function has no effect if the script is running in the LSO VM.\nRequest Limit bytes to be reserved for this script. This function has no effect if the script is running in the LSO VM.\n
-				Return TRUE or FALSE indicating whether the limit was set successfully.</string>
-         </map>
-         <key>llSetObjectDesc</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Description</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the object's description.\nSets the description of the scripted prim. You can get the description using llGetObjectDesc.\n
-				The description is limited to 127 characters.</string>
-         </map>
-         <key>llSetObjectName</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Name</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the object's name.</string>
-         </map>
-         <key>llSetObjectPermMask</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>PermissionFlag</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>PermissionMask</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the given permission mask to the new value on the root object the task is attached to.</string>
-         </map>
-         <key>llSetParcelMusicURL</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>2.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>URL</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the streaming audio URL for the parcel object is on.\nSets the streaming audio URL for the parcel the scripted object is on (the object must be owned by the owner of the parcel, if the parcel is group owned the object must be owned by that group).</string>
-         </map>
-         <key>llSetPayPrice</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Price</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>QuickButtons</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the default amount when someone chooses to pay this object.\nSets the values of the buttons and the text box default for the Pay dialogue, when a user right-clicks on the object and selects "Pay".\n
-				llSetPayPrice will affect what buttons exist, what their values are, and whether or not there is a manual payment text entry box.</string>
-         </map>
-         <key>llSetPhysicsMaterial</key>
-         <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real/>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>MaterialBits</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>GravityMultiplier</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Restitution</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Friction</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Density</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the requested attributes of the root object's physics material.</string>
-         </map>
-         <key>llSetPos</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.2</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Position</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the position (if the script isn't physical).\nIf the object is not physical, this function sets the position in region coordinates. If the object is a child prim, the position is treated as root relative and the link-set is adjusted.</string>
-         </map>
-         <key>llSetPrimitiveParams</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.2</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Parameters</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Set primitive parameters.\nThis function changes the many properties (or "parameters") of a prim in one operation. The Parameters are a list of changes.</string>
-         </map>
-         <key>llSetPrimMediaParams</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.1</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Face</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>MediaParameters</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the MediaParameters for a particular Face on an object. If media is not already on this object, add it.
-				MediaParameters is a set of name/value pairs in no particular order. Parameters not specified are unchanged, or if new media is added then set to the default specified.\nSet the MediaParameters for a particular face.\n
-				Returns an integer that is a STATUS_* flag which details the success/failure of the operation(s).</string>
-         </map>
-         <key>llSetPrimURL</key>
-         <map>
-            <key>deprecated</key>
-            <boolean>true</boolean>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>20.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>URL</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Deprecated: Use llSetPrimMediaParams instead.\nDeprecated: Use llSetPrimMediaParams instead. Updates the URL for the web page shown on the sides of the object.</string>
-         </map>
-         <key>llSetRegionPos</key>
-         <map>
-            <key>energy</key>
-            <real>0.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Position</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the Position anywhere within the region (if the object isn't physical).\nTries to moves the entire object so that the root prim is within 0.1m of Position.\n
-				Returns an integer boolean, TRUE if the object is successfully placed within 0.1 m of Position, FALSE otherwise.\n
-				The object with the script will move the root prim position to the given location. The position is any position within the region. If the position is below ground, it will be set to the ground level at that x,y location. The function has no delay or throttle.</string>
-         </map>
-         <key>llSetRemoteScriptAccessPin</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.2</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>PIN</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>If PIN is set to a non-zero number, the task will accept remote script loads via llRemoteLoadScriptPin if it passes in the correct PIN. Othersise, llRemoteLoadScriptPin is ignored.\nIf PIN is set to a non-zero number, the task will accept remote script loads via llRemoteLoadScriptPin if passed the matching PIN. Otherwise llRemoteLoadScriptPin is ignored</string>
-         </map>
-         <key>llSetRot</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.2</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Rotation</key>
-               <map>
-                  <key>type</key>
-                  <string>rotation</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the rotation (if the script isn't physical).\nIf the object is not physical, this function sets the rotation.\n
-				If the script is in a child prim, the position is treated as root relative and the linked set is adjusted.</string>
-         </map>
-         <key>llSetScale</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Scale</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the scale.\nSets the prim's scale (size).</string>
-         </map>
-         <key>llSetScriptState</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>ScriptName</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Running</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Control the state of a named script.\nControl the state of a script in the prim.</string>
-         </map>
-         <key>llSetSitText</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Displays Text rather than "Sit" in context menu.\nDisplays Text rather than 'Sit' in the viewer's menu.</string>
-         </map>
-         <key>llSetSoundQueueing</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>QueueEnable</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Determines whether attached sound calls wait for the current sound to finish (0 = no [default], non-zero = yes).\nSets whether successive calls to llPlaySound, llLoopSound, etc., (attached sounds) interrupt the playing sound.\n
-				The default for objects is FALSE. Setting this value to TRUE will make the sound wait until the current playing sound reaches its end. The queue is one level deep.</string>
-         </map>
-         <key>llSetSoundRadius</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Radius</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Establishes a hard cut-off radius for audibility of scripted sounds (both attached and triggered).</string>
-         </map>
-         <key>llSetStatus</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Status</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Value</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets status (STATUS_PHYSICS, STATUS_PHANTOM, STATUS_BLOCK_GRAB, STATUS_ROTATE_X, STATUS_ROTATE_Y, and/or STATUS_ROTATE_Z) to value.\nSets the Status to Value. Use STATUS_* constants for the values of status.</string>
-         </map>
-         <key>llSetText</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Colour</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Opacity</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Set text floating over object.\nSets the text that floats above the object, using the specified colour and opacity level.</string>
-         </map>
-         <key>llSetTexture</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.2</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Texture</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Face</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the Texture of Face.\nSets the Texture of Face. If Face is ALL_SIDES, set the texture on all faces.</string>
-         </map>
-         <key>llSetTextureAnim</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Mode</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Face</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>SizeX</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>SizeY</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Start</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Length</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Rate</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Animate the texture on the specified face/faces.\nAnimates a texture by setting the texture scale and offset.</string>
-         </map>
-         <key>llSetTimerEvent</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Rate</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Cause the timer event to be triggered every Rate seconds.\nSets the timer event to be triggered at the specified Rate, in seconds.\n
-				Passing in 0.0 stops further timer events.</string>
-         </map>
-         <key>llSetTorque</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Torque</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Local</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the Torque of object, in local coordinates if Local == TRUE (if the script is physical).\nIf the object is physical, this function sets the torque.\n
-			The vector is in local coordinates if Local is TRUE, global if FALSE.</string>
-         </map>
-         <key>llSetTouchText</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Displays Text in the menu that acts on a touch.\nDisplays Text in the viewer context menu that acts on a touch.</string>
-         </map>
-         <key>llSetVehicleFlags</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Flags</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the enabled bits in 'flags'.\nSets the vehicle flags to TRUE.\nValid parameters can be found in the vehicle flags constants section.</string>
-         </map>
-         <key>llSetVehicleFloatParam</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>ParameterName</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>ParameterValue</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the specified vehicle float parameter.\nSets the vehicle floating point parameter.\n
-				Valid parameters and their expected values can be found in the vehicle parameter constants section.</string>
-         </map>
-         <key>llSetVehicleRotationParam</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>ParameterName</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>ParameterValue</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the specified vehicle rotation parameter.\nSets the vehicle rotation parameter.\n
-				Valid parameters can be found in the vehicle parameter constants section.</string>
-         </map>
-         <key>llSetVehicleType</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Type</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets vehicle to one of the default types.\nActivates the vehicle action and choose vehicle Type.\n
-				Valid Types and an explanation of their characteristics can be found in the vehicle type constants section.</string>
-         </map>
-         <key>llSetVehicleVectorParam</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>ParameterName</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>ParameterValue</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets the specified vehicle vector parameter.\nSets the vehicle vector parameter.\nValid parameters can be found in the vehicle parameter constants section.</string>
-         </map>
-         <key>llSetVelocity</key>
-         <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Force</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Local</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets an objects velocity, in local coordinates if Local == TRUE (if the script is physical).\nApplies Force to a physical object.</string>
-         </map>
-         <key>llSHA1String</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns a string of 40 hex characters that is the SHA1 security Hash of Text.\nReturns a string of 40 hex characters that is the SHA1 security hash of the supplied string.</string>
-         </map>
-         <key>llShout</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Channel</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>shouts Text on Channel.\nShout Text on Channel. Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 to 2,147,483,648 are private channels that are not sent to avatars but other scripts can listen for through the llListen function.</string>
-         </map>
-         <key>llSin</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>Theta</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the sine of Theta (Theta in radians).\nReturns the sine of Theta in radians.</string>
-         </map>
-         <key>llSitTarget</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Offset</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Rotation</key>
-               <map>
-                  <key>type</key>
-                  <string>rotation</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Set the sit location for this object (if offset == &lt;0,0,0&gt; clear it).\nSet the sit location for this object. If offset == ZERO_VECTOR, clears the sit target.</string>
-         </map>
-         <key>llSleep</key>
-         <map>
-            <key>energy</key>
-            <real>0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Time</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Put script to sleep for Time seconds.\nPuts the script to sleep for time specified, in seconds.</string>
-         </map>
-         <key>llSound</key>
-         <map>
-            <key>deprecated</key>
-            <boolean>true</boolean>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Sound</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Volume</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Queue</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Loop</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Deprecated: Use llPlaySound instead.\nDeprecated: Use llPlaySound instead.\nPlays Sound at Volume and specifies whether it should loop or not.</string>
-         </map>
-         <key>llSoundPreload</key>
-         <map>
-            <key>deprecated</key>
-            <boolean>true</boolean>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Sound</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Deprecated: Use llPreloadSound instead.\nDeprecated: Use llPreloadSound instead.\nPreloads a sound on viewers within range.</string>
-         </map>
-         <key>llSqrt</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>Value</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the square root of Value, or returns 0 and triggers a Math Error for imaginary results.\nReturns the square root of the value. If the value is less than 0.0, this function returns 0.0 and raises a maths runtime error.</string>
-         </map>
-         <key>llStartAnimation</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Animation</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Start Animation for agent that owns object.\nThis function starts the animation for the last avatar that granted the object PERMISSION_TRIGGER_ANIMATION permission.</string>
-         </map>
-         <key>llStopAnimation</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Animation</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Stop Animation for agent that owns object.\nThis function stops the animation for the last avatar that granted the object PERMISSION_TRIGGER_ANIMATION permission.</string>
-         </map>
-         <key>llStopHover</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Stop hovering to a height.\nStop hovering at a height.</string>
-         </map>
-         <key>llStopLookAt</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Stop causing object to point at a target.\nStop causing object to look at target.</string>
-         </map>
-         <key>llStopMoveToTarget</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Stops critically damped motion.</string>
-         </map>
-         <key>llStopSound</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Stops currently attached sound.\nStops the currently playing attached sound started with llPlaySound or llLoopSound. Has no effect on sounds started with llTriggerSound.</string>
-         </map>
-         <key>llStringLength</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the length of string.\nReturns the number of characters in the specified text.</string>
-         </map>
-         <key>llStringToBase64</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Converts a string to the Base64 representation of the string.\nConverts a string to the Base 64 representation of the string.</string>
-         </map>
-         <key>llStringTrim</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>TrimType</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Trims the leading and/or trailing white spaces from a string.\n
-				TrimType can be STRING_TRIM, STRING_TRIM_HEAD or STRING_TRIM_TAIL.\nOutputs a string, eliminating white-space from the start and/or end of the specified string.\n
-				Constants for trim_type:\n
-				STRING_TRIM_HEAD: trim all leading spaces in text\n
-				STRING_TRIM_TAIL: trim all trailing spaces in text\n
-				STRING_TRIM: trim all leading and trailing spaces in text</string>
-         </map>
-         <key>llSubStringIndex</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Sequence</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns an integer that is the index in source where pattern first appears. Returns -1 if not found.\nReturns an index of the text where the sequence of characters first appears.\n
-				Returns -1 if no match is found.</string>
-         </map>
-         <key>llTakeCamera</key>
-         <map>
-            <key>deprecated</key>
-            <boolean>true</boolean>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Deprecated: Use llSetCameraParams instead.\nDeprecated: Use llSetCameraParams instead. Move avatar's viewpoint to task.</string>
-         </map>
-         <key>llTakeControls</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Controls</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Accept</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>PassOn</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Take controls from agent task has permissions for.	If (Accept == (controls &amp; input)), send input to task.	If PassOn send to agent also.\nRequires the PERMISSION_TAKE_CONTROLS permission to run.</string>
-         </map>
-         <key>llTan</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>Theta</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the tangent of Theta (Theta in radians).\nReturns the tangent of Theta radians.</string>
-         </map>
-         <key>llTarget</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Position</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Range</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Sets positions within range of position as a target and return an ID for the target.\nSet object position, within range of position, as a target and returns an integer ID for the target.</string>
-         </map>
-         <key>llTargetOmega</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Axis</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>SpinRate</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Gain</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Attempt to spin at SpinRate with strength Gain.\nAttempt to spin at SpinRate with strength Gain on axis.\n
-			A spin-rate of 0.0 cancels the spin. This function always works in object local coordinates.</string>
-         </map>
-         <key>llTargetRemove</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Target</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Removes target number.\nRemove target number.</string>
-         </map>
-         <key>llTeleportAgent</key>
-         <map>
-            <key>energy</key>
-            <real>0</real>
-            <key>sleep</key>
-            <real>0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>LandmarkName</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Position</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>LookAtPoint</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Requests a teleport of avatar to a landmark stored in the object's inventory. If no landmark is provided (an empty string), the avatar is teleported to the location position in the current region. In either case, the avatar is turned to face the position given by look_at in local coordinates.
-				Requires the PERMISSION_TELEPORT permission. This function can only teleport the owner of the object.</string>
-         </map>
-         <key>llTeleportAgentGlobalCoords</key>
-         <map>
-            <key>energy</key>
-            <real>0</real>
-            <key>sleep</key>
-            <real>0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>GlobalPosition</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>RegionPosition</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>LookAtPoint</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Teleports an agent to set of a region_coordinates within a region at the specified global_coordinates. The agent lands facing the position defined by look_at local coordinates.</string>
-         </map>
-         <key>llTeleportAgentHome</key>
-         <map>
-            <key>energy</key>
-            <real>100.0</real>
-            <key>sleep</key>
-            <real>5.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Teleports agent on owner's land to agent's home location.\nTeleport agent over the owner's land to agent's home location.</string>
-         </map>
-         <key>llTextBox</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>1.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Channel</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Shows a dialog box on the avatar's screen with the message. A text box asks for input, and if entered the Text is chatted on Channel.\nShows a dialogue box on avatar's screen with the text message.\n
-				It contains a text box for input. Any text that is entered is said on the specified channel (as if by the avatar) when the "OK" button is clicked.</string>
-         </map>
-         <key>llToLower</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns a string that is Text with all lower-case characters.\nReturns Text in all lower case.</string>
-         </map>
-         <key>llToUpper</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns a string that is Text with all upper-case characters.\nReturns Text in all upper case.</string>
-         </map>
-         <key>llTransferLindenDollars</key>
-         <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Amount</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Transfer Amount of linden dollars (L$) from script owner to AvatarID. Returns a key to a corresponding transaction_result event for the success of the transfer.\nAttempts to send the amount of money to the specified avatar, and trigger a transaction_result event identified by the returned key.</string>
-         </map>
-         <key>llTriggerSound</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Sound</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Volume</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Plays Sound at Volume (0.0 - 1.0), centered at but not attached to object.\nPlays a transient sound NOT attached to an object.\n
-				The sound plays from a stationary position located at the centre of the object at the time of the triggering.\n
-				There is no limit to the number of triggered sounds which can be generated by an object, and calling llTriggerSound does not affect the attached sounds created by llPlaySound and llLoopSound. This is very useful for things like collision noises, explosions, etc. There is no way to stop or alter the volume of a sound triggered by this function.</string>
-         </map>
-         <key>llTriggerSoundLimited</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Sound</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Volume</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>TNE</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>BSW</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Plays Sound at Volume (0.0 - 1.0), centered at but not attached to object, limited to axis-aligned bounding box defined by vectors top-north-east (TNE) and bottom-south-west (BSW).\nPlays a transient sound NOT attached to an object, with its audible range limited by the axis-aligned bounding box define by TNE (top-north-east) and BSW (bottom-south-west).\n
-				The sound plays from a stationary position located at the centre of the object at the time of the triggering.\n
-				There is no limit to the number of triggered sounds which can be generated by an object, and calling llTriggerSound does not affect the attached sounds created by llPlaySound and llLoopSound. This is very useful for things like collision noises, explosions, etc. There is no way to stop or alter the volume of a sound triggered by this function.</string>
-         </map>
-         <key>llUnescapeURL</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>URL</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns an unescaped/ unencoded version of URL, replacing %20 with spaces etc.\nReturns the string that is the URL unescaped, replacing "%20" with spaces, etc., version of URL.\n
-				The function can output raw UTF-8 strings.</string>
-         </map>
-         <key>llUnSit</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>If agent identified by AvatarID is sitting on the object the script is attached to or is over land owned by the objects owner, the agent is forced to stand up.\nIf the agent identified is sitting on the object the script is attached to or is over land owned by the objects owner, the agent is forced to stand up.</string>
-         </map>
-         <key>llUpdateCharacter</key>
-         <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real/>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Options</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Change the character's settings.\nUpdates settings for a character.</string>
-         </map>
-         <key>llVecDist</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>Location1</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Location2</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the 3D distance between Location1 and Location2.\nReturns the distance from location 1 to location 2.</string>
-         </map>
-         <key>llVecMag</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>Vector</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the magnitude of Vector.\nReturns the magnitude of the vector.</string>
-         </map>
-         <key>llVecNorm</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>Vector</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the v normalized.\nReturns normalized vector.</string>
-         </map>
-         <key>llVolumeDetect</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>DetectEnabled</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>If DetectEnabled = TRUE, object becomes phantom but triggers collision_start and collision_end events when other objects start and stop interpenetrating. Must be applied to the root object.\nWhen detect = TRUE, this makes the entire link set the script is attached to phantom. If another object (including avatars) interpenetrates it, it will get a collision_start event.\n
-				When an object stops interpenetrating, a collision_end event is generated. While the other is inter-penetrating, collision events are NOT generated. The script must be applied to the root object of the link set to get the collision events.\n
-				Collision filters work normally.</string>
-         </map>
-         <key>llWanderWithin</key>
-         <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real/>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Origin</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Area</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Options</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Wander within a specified volume.\nSets a character to wander about a central spot within a specified area.</string>
-         </map>
-         <key>llWater</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>Offset</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the water height below the object position + offset.\nReturns the water height at the object's position + offset.</string>
-         </map>
-         <key>llWhisper</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Channel</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Whispers Text on Channel.\nWhisper Text on Channel. Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 to 2,147,483,648 are private channels that are not sent to avatars but other scripts can listen for through the llListen function.</string>
-         </map>
-         <key>llWind</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>Offset</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Returns the wind velocity at the object position + offset.\nReturns the wind velocity at the object's position + offset.</string>
-         </map>
-         <key>llXorBase64Strings</key>
-         <map>
-            <key>deprecated</key>
-            <boolean>true</boolean>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.3</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>Text1</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Text2</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Deprecated: Please use llXorBase64StringsCorrect instead.\n
-				Incorrectly performs an exclusive OR on two Base64 strings and returns a Base64 string.	Text2 repeats if it is shorter than Text1.	Retained for backwards compatibility.\nDeprecated: Use llXorBase64StringsCorrect instead.\nIncorrectly performs an exclusive OR on two Base64 strings and returns a Base64 string.</string>
-         </map>
-         <key>llXorBase64StringsCorrect</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>Text1</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Text2</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
-            <key>tooltip</key>
-            <string>Correctly performs an exclusive OR on two Base64 strings and returns a Base64 string.\n
-				Text2 repeats if it is shorter than Text1.\nPerforms an exclusive-OR on two Base64 strings and returns a Base64 string. text-2 repeats if it is shorter than text-1.\n
-				This function is for encrypting data. Put your data in text-1 and your key in text-2 to encrypt or put the encrypted data into text-1 with the same key in text-2 to decrypt again.</string>
-         </map>
-      </map>
-   </map>
-</llsd>
\ No newline at end of file
-- 
cgit v1.2.3


From 92f1f7a525c3a550575050ca00b10924fdf4dce1 Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Fri, 18 Oct 2013 17:37:40 +0100
Subject: storm-1831 Fixing colors xml broken by me during last merge :-(

---
 indra/newview/skins/default/colors.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'indra')

diff --git a/indra/newview/skins/default/colors.xml b/indra/newview/skins/default/colors.xml
index d01e228638..105d4be7d8 100755
--- a/indra/newview/skins/default/colors.xml
+++ b/indra/newview/skins/default/colors.xml
@@ -915,7 +915,7 @@
   <color
     name="ResizebarBody"
     value="0.208 0.208 0.208 1"/>
-    
+ <color
     name="SyntaxLslConstantKey"
     value=".1 .3 .5 1.0" />
   <color
-- 
cgit v1.2.3


From 4027486dbbe18c644eb679a49259ce201a5f9f59 Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Fri, 18 Oct 2013 17:38:31 +0100
Subject: storm-1831 Incorporating Oz's changes to update libxml on linux to
 libxml2

---
 indra/cmake/GStreamer010Plugin.cmake |  4 ++--
 indra/cmake/LLPrimitive.cmake        | 15 ++++++++++++---
 2 files changed, 14 insertions(+), 5 deletions(-)

(limited to 'indra')

diff --git a/indra/cmake/GStreamer010Plugin.cmake b/indra/cmake/GStreamer010Plugin.cmake
index d2d0699bcd..d1c99d5409 100755
--- a/indra/cmake/GStreamer010Plugin.cmake
+++ b/indra/cmake/GStreamer010Plugin.cmake
@@ -8,8 +8,8 @@ if (STANDALONE)
   pkg_check_modules(GSTREAMER010_PLUGINS_BASE REQUIRED gstreamer-plugins-base-0.10)
 elseif (LINUX)
   use_prebuilt_binary(gstreamer)
-  # possible libxml should have its own .cmake file instead
-  use_prebuilt_binary(libxml)
+  # possible libxml2 should have its own .cmake file instead
+  use_prebuilt_binary(libxml2)
   set(GSTREAMER010_FOUND ON FORCE BOOL)
   set(GSTREAMER010_PLUGINS_BASE_FOUND ON FORCE BOOL)
   set(GSTREAMER010_INCLUDE_DIRS
diff --git a/indra/cmake/LLPrimitive.cmake b/indra/cmake/LLPrimitive.cmake
index 0d87ff579a..67c2115237 100755
--- a/indra/cmake/LLPrimitive.cmake
+++ b/indra/cmake/LLPrimitive.cmake
@@ -6,21 +6,30 @@ include(Boost)
 
 use_prebuilt_binary(colladadom)
 use_prebuilt_binary(pcre)
-use_prebuilt_binary(libxml)
 
 set(LLPRIMITIVE_INCLUDE_DIRS
     ${LIBS_OPEN_DIR}/llprimitive
     )
 if (WINDOWS)
-    set(LLPRIMITIVE_LIBRARIES 
+    set(LLPRIMITIVE_LIBRARIES
         debug llprimitive
         optimized llprimitive
         debug libcollada14dom22-d
         optimized libcollada14dom22
         ${BOOST_SYSTEM_LIBRARIES}
         )
+elseif (LINUX)
+    use_prebuilt_binary(libxml2)
+    set(LLPRIMITIVE_LIBRARIES
+        llprimitive
+        collada14dom
+        minizip
+        xml2
+        pcrecpp
+        pcre
+        )
 else (WINDOWS)
-    set(LLPRIMITIVE_LIBRARIES 
+    set(LLPRIMITIVE_LIBRARIES
         llprimitive
         collada14dom
         minizip
-- 
cgit v1.2.3


From 79645e6981a97224024c5226d8713dce9569d54a Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Mon, 21 Oct 2013 04:09:20 +0100
Subject: STORM-1831 First attempt at using SyntaxIdLSL capability.
 (incomplete)

---
 indra/llui/llkeywords.cpp         |  6 +++---
 indra/llui/llkeywords.h           |  3 ++-
 indra/newview/CMakeLists.txt      |  2 ++
 indra/newview/llpreviewscript.cpp | 10 +++++++++-
 indra/newview/llpreviewscript.h   |  2 ++
 5 files changed, 18 insertions(+), 5 deletions(-)

(limited to 'indra')

diff --git a/indra/llui/llkeywords.cpp b/indra/llui/llkeywords.cpp
index 33a8cc947d..687c2fb31d 100755
--- a/indra/llui/llkeywords.cpp
+++ b/indra/llui/llkeywords.cpp
@@ -29,7 +29,6 @@
 #include <iostream>
 #include <fstream>
 
-#include "lldir.h"
 #include "llkeywords.h"
 #include "llsdserialize.h"
 #include "lltexteditor.h"
@@ -70,7 +69,7 @@ inline BOOL LLKeywordToken::isTail(const llwchar* s) const
 
 LLKeywords::LLKeywords() : mLoaded(FALSE)
 {
-	setFilenameSyntax( gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS,"keywords_lsl_default.xml") );
+	//setFilenameSyntax( gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS,"keywords_lsl_default.xml") );
 }
 
 LLKeywords::~LLKeywords()
@@ -199,9 +198,10 @@ LLColor4 LLKeywords::getColorGroup(const std::string key_in)
 	return LLUIColorTable::instance().getColor(ColourGroup);
 }
 
-BOOL LLKeywords::initialise()
+BOOL LLKeywords::initialise(ELLPath path, const std::string filename)
 {
 	mReady = false;
+	setFilenameSyntax( gDirUtilp->getExpandedFilename(path, filename) );
 
 	if (! loadIntoLLSD(mFilenameSyntax, mSyntax) )
 	{
diff --git a/indra/llui/llkeywords.h b/indra/llui/llkeywords.h
index 77a12bc1e5..1bd23549d2 100755
--- a/indra/llui/llkeywords.h
+++ b/indra/llui/llkeywords.h
@@ -28,6 +28,7 @@
 #define LL_LLKEYWORDS_H
 
 
+#include "lldir.h"
 #include "llstring.h"
 #include "v3color.h"
 #include "v4color.h"
@@ -116,7 +117,7 @@ public:
 	void		setFilenameSyntax(const std::string filename) { mFilenameSyntax = filename; }
 
 	void		findSegments(std::vector<LLTextSegmentPtr> *seg_list, const LLWString& text, const LLColor4 &defaultColor, class LLTextEditor& editor );
-	BOOL		initialise();
+	BOOL		initialise(ELLPath path, const std::string filename);
 	std::string	processColors();
 	std::string	processColors(LLSD &data, const std::string strGroup);
 	void		processTokens();
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index 97243bc8b1..b7627f2eb0 100755
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -519,6 +519,7 @@ set(viewer_SOURCE_FILES
     llstylemap.cpp
     llsurface.cpp
     llsurfacepatch.cpp
+    llsyntaxid.cpp
     llsyswellitem.cpp
     llsyswellwindow.cpp
     llteleporthistory.cpp
@@ -1093,6 +1094,7 @@ set(viewer_HEADER_FILES
     llstylemap.h
     llsurface.h
     llsurfacepatch.h
+    llsyntaxid.h
     llsyswellitem.h
     llsyswellwindow.h
     lltable.h
diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp
index 2e9907fcd2..62e1d765b3 100755
--- a/indra/newview/llpreviewscript.cpp
+++ b/indra/newview/llpreviewscript.cpp
@@ -406,7 +406,15 @@ BOOL LLScriptEdCore::postBuild()
 
 	initMenu();
 
-	mEditor->mKeywords.initialise();
+// Make this work ;-)
+	mSyntaxLSL = LLSyntaxIdLSL();
+
+//	mSyntaxLSL.initialise();
+//	mSyntaxLSL.mKeywords = &mEditor->mKeywords;
+	// ...
+//	mSyntaxLSL->mKeywords.initialise();
+// Move into the SyntaxIdLSL class
+	mEditor->mKeywords.initialise(mSyntaxLSL.filenamePath(), mSyntaxLSL.filenameCurrent());
 
 	// FIX: Refactor LLTextEditor::loadKeywords so these can be removed.
 	std::vector<std::string> funcs;
diff --git a/indra/newview/llpreviewscript.h b/indra/newview/llpreviewscript.h
index 9fb0a4fb63..21e33f30d5 100755
--- a/indra/newview/llpreviewscript.h
+++ b/indra/newview/llpreviewscript.h
@@ -35,6 +35,7 @@
 #include "lliconctrl.h"
 #include "llframetimer.h"
 #include "llfloatergotoline.h"
+#include "llsyntaxid.h"
 
 class LLLiveLSLFile;
 class LLMessageSystem;
@@ -149,6 +150,7 @@ private:
 	BOOL			mEnableSave;
 	BOOL			mHasScriptData;
 	LLLiveLSLFile*	mLiveFile;
+	LLSyntaxIdLSL	mSyntaxLSL;
 
 	LLScriptEdContainer* mContainer; // parent view
 };
-- 
cgit v1.2.3


From 9430cc75467eaeb99e3133d9442d2b13e2cdcc4e Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Mon, 21 Oct 2013 19:09:11 +0100
Subject: STROM-1831 Updating keywords default file. Adding several new
 constants, functions and adds two missing god-mode tags.

---
 .../newview/app_settings/keywords_lsl_default.xml  | 181 ++++++++++++++++++++-
 1 file changed, 174 insertions(+), 7 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/app_settings/keywords_lsl_default.xml b/indra/newview/app_settings/keywords_lsl_default.xml
index 6806f80169..c1e15045a7 100644
--- a/indra/newview/app_settings/keywords_lsl_default.xml
+++ b/indra/newview/app_settings/keywords_lsl_default.xml
@@ -701,6 +701,15 @@
             <key>tooltip</key>
             <string/>
          </map>
+         <key>AVOID_NONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
          <key>CAMERA_ACTIVE</key>
          <map>
             <key>type</key>
@@ -1061,6 +1070,15 @@
             <key>tooltip</key>
             <string>Set collision capsule radius.</string>
          </map>
+         <key>CHARACTER_STAY_WITHIN_PARCEL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>15</integer>
+            <key>tooltip</key>
+            <string>Determines whether a character can leave its starting parcel.\nTakes a boolean parameter. If TRUE, the character cannot voluntarilly leave the parcel, but can return to it.</string>
+         </map>
          <key>CHARACTER_TYPE</key>
          <map>
             <key>type</key>
@@ -1797,6 +1815,15 @@
             <key>tooltip</key>
             <string/>
          </map>
+         <key>JSON_APPEND</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
          <key>JSON_ARRAY</key>
          <map>
             <key>type</key>
@@ -1806,6 +1833,15 @@
             <key>tooltip</key>
             <string/>
          </map>
+         <key>JSON_DELETE</key>
+         <map>
+            <key>type</key>
+            <string>string</string>
+            <key>value</key>
+            <string>U+FDD8</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
          <key>JSON_FALSE</key>
          <map>
             <key>type</key>
@@ -2373,6 +2409,33 @@
             <key>tooltip</key>
             <string/>
          </map>
+         <key>OBJECT_RETURN_PARCEL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>OBJECT_RETURN_PARCEL_OWNER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>OBJECT_RETURN_REGION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
          <key>OBJECT_ROOT</key>
          <map>
             <key>type</key>
@@ -3111,6 +3174,15 @@
             <key>tooltip</key>
             <string>(not yet implemented)</string>
          </map>
+         <key>PERMISSION_RETURN_OBJECTS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>65536</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
          <key>PERMISSION_TAKE_CONTROLS</key>
          <map>
             <key>type</key>
@@ -4458,6 +4530,15 @@
             <key>tooltip</key>
             <string>Triggered when an llEvade character switches from hiding to running</string>
          </map>
+         <key>PU_FAILURE_DYNAMIC_PATHFINDING_DISABLED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>10</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
          <key>PU_FAILURE_INVALID_GOAL</key>
          <map>
             <key>type</key>
@@ -4503,6 +4584,15 @@
             <key>tooltip</key>
             <string/>
          </map>
+         <key>PU_FAILURE_PARCEL_UNREACHABLE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>11</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
          <key>PU_FAILURE_TARGET_GONE</key>
          <map>
             <key>type</key>
@@ -10041,6 +10131,48 @@
             <string>Returns an integer that is the script start parameter.\nReturns the start parameter passed to llRezObject.\n
 			If the object was created from agent inventory, this function returns 0.</string>
          </map>
+         <key>llGetStaticPath</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <map>
+               <key>Start</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>End</key>
+               <map>
+                  <key>type</key>
+                  <string>vector</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Radius</key>
+               <map>
+                  <key>type</key>
+                  <string>float</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Parameters</key>
+               <map>
+                  <key>type</key>
+                  <string>list</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string/>
+         </map>
          <key>llGetStatus</key>
          <map>
             <key>energy</key>
@@ -10095,8 +10227,8 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Returns the indicated substring.\nReturns the indicated sub-string from String. The start and end are inclusive.\n
-				Using negative numbers for start and/or end causes the index to count backwards from the length of the string, so 0, -1 would capture the entire string.\n
+            <string>Returns the indicated substring.\nReturns the indicated sub-string from String. The Start and End are inclusive.\n
+				Using negative numbers for Start and/or End causes the index to count backwards from the length of the string, so 0, -1 would capture the entire string.\n
 				If start is larger than end, the sub string is the exclusion of the entries, so 6, 4 would give the entire string except for the 5th. character.</string>
          </map>
          <key>llGetSunDirection</key>
@@ -13354,7 +13486,7 @@
             <string>integer</string>
             <key>arguments</key>
             <map>
-               <key>lObjectIDs</key>
+               <key>ObjectIDs</key>
                <map>
                   <key>type</key>
                   <string>list</string>
@@ -13375,14 +13507,14 @@
             <string>integer</string>
             <key>arguments</key>
             <map>
-               <key>kID</key>
+               <key>ID</key>
                <map>
                   <key>type</key>
                   <string>key</string>
                   <key>tooltip</key>
                   <string/>
                </map>
-               <key>iScope</key>
+               <key>Scope</key>
                <map>
                   <key>type</key>
                   <string>integer</string>
@@ -14448,6 +14580,8 @@
          </map>
          <key>llSetInventoryPermMask</key>
          <map>
+            <key>god-mode</key>
+            <boolean>true</boolean>
             <key>energy</key>
             <real>10.0</real>
             <key>sleep</key>
@@ -14900,6 +15034,8 @@
          </map>
          <key>llSetObjectPermMask</key>
          <map>
+            <key>god-mode</key>
+            <boolean>true</boolean>
             <key>energy</key>
             <real>10.0</real>
             <key>sleep</key>
@@ -16799,6 +16935,34 @@
             <key>tooltip</key>
             <string>Returns the wind velocity at the object position + offset.\nReturns the wind velocity at the object's position + offset.</string>
          </map>
+         <key>llXorBase64</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.3</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <map>
+               <key>Text1</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+               <key>Text2</key>
+               <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+               </map>
+            </map>
+            <key>tooltip</key>
+            <string>Performs an exclusive OR on two Base64 strings and returns a Base64 string.	Text2 repeats if it is shorter than Text1.	Retained for backwards compatibility.\nDeprecated: Use llXorBase64StringsCorrect instead.\nIncorrectly performs an exclusive OR on two Base64 strings and returns a Base64 string.</string>
+         </map>
          <key>llXorBase64Strings</key>
          <map>
             <key>deprecated</key>
@@ -16827,11 +16991,13 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Deprecated: Please use llXorBase64StringsCorrect instead.\n
+            <string>Deprecated: Please use llXorBase64 instead.\n
 				Incorrectly performs an exclusive OR on two Base64 strings and returns a Base64 string.	Text2 repeats if it is shorter than Text1.	Retained for backwards compatibility.\nDeprecated: Use llXorBase64StringsCorrect instead.\nIncorrectly performs an exclusive OR on two Base64 strings and returns a Base64 string.</string>
          </map>
          <key>llXorBase64StringsCorrect</key>
          <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
             <key>energy</key>
             <real>10.0</real>
             <key>sleep</key>
@@ -16856,7 +17022,8 @@
                </map>
             </map>
             <key>tooltip</key>
-            <string>Correctly performs an exclusive OR on two Base64 strings and returns a Base64 string.\n
+            <string>Deprecated: Please use llXorBase64 instead.\n
+				Correctly (unless nulls are present) performs an exclusive OR on two Base64 strings and returns a Base64 string.\n
 				Text2 repeats if it is shorter than Text1.\nPerforms an exclusive-OR on two Base64 strings and returns a Base64 string. text-2 repeats if it is shorter than text-1.\n
 				This function is for encrypting data. Put your data in text-1 and your key in text-2 to encrypt or put the encrypted data into text-1 with the same key in text-2 to decrypt again.</string>
          </map>
-- 
cgit v1.2.3


From 389e302f85bc21526a577ca4d3259b378a6402cc Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Mon, 21 Oct 2013 19:13:08 +0100
Subject: Fixing typo in colors.xml pointed out by Kireji2 Haiku

---
 indra/newview/skins/default/colors.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'indra')

diff --git a/indra/newview/skins/default/colors.xml b/indra/newview/skins/default/colors.xml
index 105d4be7d8..77a8fc7e22 100755
--- a/indra/newview/skins/default/colors.xml
+++ b/indra/newview/skins/default/colors.xml
@@ -56,7 +56,7 @@
 	<color
 	 name="Black"
 	 value="0 0 0 1" />
-	<colork
+	<color
 	 name="Black_10"
 	 value="0 0 0 0.1" />
 	<color
-- 
cgit v1.2.3


From a0607d45ca12c930b9fb8018243e62aed0e09dc9 Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Mon, 21 Oct 2013 22:20:33 +0100
Subject: STORM-1831 Adding the llsyntaxid.* files let were left out of commit
 7c74a59eeee4 OOPS

---
 indra/newview/llsyntaxid.cpp | 226 +++++++++++++++++++++++++++++++++++++++++++
 indra/newview/llsyntaxid.h   |  65 +++++++++++++
 2 files changed, 291 insertions(+)
 create mode 100644 indra/newview/llsyntaxid.cpp
 create mode 100644 indra/newview/llsyntaxid.h

(limited to 'indra')

diff --git a/indra/newview/llsyntaxid.cpp b/indra/newview/llsyntaxid.cpp
new file mode 100644
index 0000000000..9ecbe8698d
--- /dev/null
+++ b/indra/newview/llsyntaxid.cpp
@@ -0,0 +1,226 @@
+/**
+ * @file LLSyntaxId
+ * @author Ima Mechanique
+ * @brief Handles downloading, saving, and checking of LSL keyword/syntax files
+ *		for each region.
+ *
+ * $LicenseInfo:firstyear=2013&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2013, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
+ * $/LicenseInfo$
+ */
+
+#include "llviewerprecompiledheaders.h"
+
+#include "llhttpclient.h"
+#include "llagent.h"
+#include "llappviewer.h"
+#include "llcurl.h"
+#include "llenvmanager.h"
+#include "llsdserialize.h"
+#include "llsyntaxid.h"
+
+//-----------------------------------------------------------------------------
+// fetchKeywordsFileResponder
+//-----------------------------------------------------------------------------
+class fetchKeywordsFileResponder : public LLCurl::Responder
+{
+	std::string	mFileSpec;
+public:
+	fetchKeywordsFileResponder(std::string filespec)
+	{
+		mFileSpec = filespec;
+	}
+
+	void errorWithContent(U32 status, const std::string& reason, const LLSD& content)
+	{
+		LL_WARNS("")
+				<< "fetchKeywordsFileResponder error [status:"
+				<< status
+				<< "]: "
+				<< content
+				<< LL_ENDL;
+	}
+
+	void result(LLSD& content_ref)
+	{
+		LLSyntaxIdLSL::setKeywordsXml(content_ref);
+
+		std::stringstream str;
+		LLSDSerialize::toPrettyXML(content_ref, str);
+		LL_WARNS("")
+				<< "fetchKeywordsFileResponder result:"
+				<< str.str()
+				<< "filename: '" << mFileSpec << "'"
+				<< LL_ENDL;
+
+		// TODO save the damn str to disc
+		//llofstream file(mFileSpec, std::ios_base::out);
+		//file.write(str.str(), str.str().size());
+		//file.close();
+	}
+};
+
+//-----------------------------------------------------------------------------
+// LLSyntaxIdLSL
+//-----------------------------------------------------------------------------
+LLSyntaxIdLSL::LLSyntaxIdLSL() :
+	// Move these to signature?
+	mFilenameDefault("keywords_lsl_default.xml"),
+	mSimulatorFeature("LSLSyntaxId"),
+	mCapabilityName("LSLSyntax")
+{
+	mCurrentSyntaxId = LLUUID();
+	mFilenameCurrent = mFilenameDefault;
+	mFilenameLocation = LL_PATH_APP_SETTINGS;
+	checkSyntaxIdChange();
+	//LLEnvManagerNew::instance().setRegionChangeCallback(boost::bind(&LLSyntaxIdLSL::checkSyntaxIdChange(), this));
+}
+
+std::string LLSyntaxIdLSL::buildFilename(LLUUID& SyntaxId)
+{
+	std::string filename = "keywords_lsl_" + SyntaxId.asString() + "_" + gLastVersionChannel + ".llsd.xml";
+	return filename;
+}
+
+//-----------------------------------------------------------------------------
+// checkSyntaxIdChange()
+//-----------------------------------------------------------------------------
+bool LLSyntaxIdLSL::checkSyntaxIdChange()
+{
+	bool changed = false;
+	if (mRegion)
+	{
+		LL_WARNS("LSLSyntax")
+			<< "REGION is '"
+			<< mRegion->getName()
+			<< "'"
+			<< LL_ENDL;
+
+		if (!mRegion->capabilitiesReceived())
+		{   // Shouldn't be possible, but experience shows that it's needed
+//				mRegion->setCapabilitiesReceivedCallback(boost::bind(&LLSyntaxIdLSL::checkSyntaxIdChange, this));
+			LL_WARNS("LSLSyntax")
+				<< "mRegion '"
+				<< mRegion->getName()
+				<< "' has not received capabilities yet! Setting a callback for when they arrive."
+				<< LL_ENDL;
+		} else {
+			// get and check the hash
+			LLSD simFeatures;
+			mRegion->getSimulatorFeatures(simFeatures);
+			if (simFeatures.has("LSLSyntaxId"))
+			{
+				LLUUID SyntaxId = simFeatures["LSLSyntaxId"].asUUID();
+				if (mCurrentSyntaxId != SyntaxId)
+				{
+					// set the properties for the fetcher to use
+					mFilenameCurrent = buildFilename(SyntaxId);
+					mFilenameLocation = LL_PATH_CACHE;
+					mCurrentSyntaxId = SyntaxId;
+
+					LL_WARNS("LSLSyntax")
+						<< "Region changed to '"
+						<< mRegion->getName()
+						<< "' it has LSLSyntaxId capability, and the new hash is '"
+						<< SyntaxId
+						<< "'"
+						<< LL_ENDL;
+
+					changed = true;
+				} else {
+					LL_WARNS("LSLSyntax")
+						<< "Region changed to '"
+						<< mRegion->getName()
+						<< "' it has the same LSLSyntaxId! Leaving hash as '"
+						<< mCurrentSyntaxId
+						<< "'"
+						<< LL_ENDL;
+				}
+			} else {
+				// Set the hash to NULL_KEY to indicate use of default keywords file
+				if ( mCurrentSyntaxId.isNull() )
+				{
+					LL_WARNS("LSLSyntax")
+						<< "Region does not have LSLSyntaxId capability, remaining with default keywords file!"
+						<< LL_ENDL;
+				} else {
+					mCurrentSyntaxId = LLUUID();
+					mFilenameCurrent = mFilenameDefault;
+					mFilenameLocation = LL_PATH_APP_SETTINGS;
+
+					LL_WARNS("LSLSyntax")
+						<< "Region does not have LSLSyntaxId capability, using default keywords file!"
+						<< LL_ENDL;
+
+					changed = true;
+				}
+			}
+		}
+	}
+	return changed;
+}
+
+//-----------------------------------------------------------------------------
+// fetchKeywordsFile
+//-----------------------------------------------------------------------------
+bool LLSyntaxIdLSL::fetchKeywordsFile()
+{
+	bool fetched = false;
+	std::string cap_url = mRegion->getCapability(mCapabilityName);
+//	mResponder->setFileSpec(mFilenameSpec);
+	if ( !cap_url.empty() )
+	{
+		LLHTTPClient::get(cap_url, mResponder);
+	}
+
+	return fetched;
+}
+
+void LLSyntaxIdLSL::initialise()
+{
+	mRegion = gAgent.getRegion();
+	if (checkSyntaxIdChange())
+	{
+		mFilenameFull = gDirUtilp->getExpandedFilename(
+					mFilenameLocation,
+					mFilenameCurrent
+					);
+		if ( !mCurrentSyntaxId.isNull() )
+		{
+			bool success = true;
+			if (!gDirUtilp->fileExists(mFilenameSpec))
+			{
+				mResponder = new fetchKeywordsFileResponder(mFilenameSpec);
+				success = fetchKeywordsFile();
+			}
+		}
+		// TODO add a signal here to tell the editor the hash has changed?
+	}
+
+	mRegion = NULL;
+}
+
+//-----------------------------------------------------------------------------
+// openKeywordsFile
+//-----------------------------------------------------------------------------
+void openKeywordsFile()
+{
+	;
+}
diff --git a/indra/newview/llsyntaxid.h b/indra/newview/llsyntaxid.h
new file mode 100644
index 0000000000..6e5a97fd31
--- /dev/null
+++ b/indra/newview/llsyntaxid.h
@@ -0,0 +1,65 @@
+
+#ifndef LLSYSNTAXIDLSL_H
+#define LLSYSNTAXIDLSL_H
+
+#endif // LLSYSNTAXIDLSL_H
+
+#include "llviewerprecompiledheaders.h"
+
+#include "llagent.h"
+#include "llenvmanager.h"
+#include "llhttpclient.h"
+#include "llviewerregion.h"
+
+
+//class LLKeywords;
+
+
+/**
+ * @file llsyntaxid.h
+ * @brief The LLSyntaxIdLSL class
+ */
+class LLSyntaxIdLSL
+{
+public:
+	/**
+	 * @brief LLSyntaxIdLSL constructor
+	 */
+	LLSyntaxIdLSL();
+
+	LLUUID		getSyntaxId() const { return mCurrentSyntaxId; }
+
+	bool		checkSyntaxIdChange();
+	std::string	filenameCurrent() { return mFilenameCurrent; }
+	ELLPath		filenamePath() { return mFilenameLocation; }
+	void		initialise();
+	static void	setKeywordsXml(LLSD& content) { LLSyntaxIdLSL::mKeywordsXml = content; }
+
+protected:
+	std::string	buildFilename(LLUUID& SyntaxId);
+	bool		fetchKeywordsFile();
+	void		openKeywordsFile();
+	void		setSyntaxId(LLUUID SyntaxId) { mCurrentSyntaxId = SyntaxId; }
+	void		setFilenameCurrent(std::string& name) { mFilenameCurrent = name; }
+	void		setFilenameDefault(std::string& name) { mFilenameDefault = name; }
+	void		setSimulatorFeatureName(const std::string& name) { mSimulatorFeature = name; }
+
+public:
+	static LLHTTPClient::ResponderPtr	mResponder;
+
+
+protected:
+//	LLKeywords&							mKeywords;
+	LLViewerRegion*						mRegion;
+
+private:
+	std::string							mCapabilityName;
+	LLUUID								mCurrentSyntaxId;
+	std::string							mFilenameCurrent;
+	std::string							mFilenameDefault;
+	std::string							mFilenameFull;
+	ELLPath								mFilenameLocation;
+	std::string							mFilenameSpec;
+	static LLSD							mKeywordsXml;
+	std::string							mSimulatorFeature;
+};
-- 
cgit v1.2.3


From dfa8a78c2895e16a4887786d522a70cae59b081e Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Tue, 22 Oct 2013 22:41:08 +0100
Subject: STORM-1831 Style cleanup/fixes

---
 indra/newview/llsyntaxid.cpp | 20 ++++++++++++++------
 indra/newview/llsyntaxid.h   |  5 +++--
 2 files changed, 17 insertions(+), 8 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llsyntaxid.cpp b/indra/newview/llsyntaxid.cpp
index 9ecbe8698d..deaa64c0e7 100644
--- a/indra/newview/llsyntaxid.cpp
+++ b/indra/newview/llsyntaxid.cpp
@@ -121,7 +121,9 @@ bool LLSyntaxIdLSL::checkSyntaxIdChange()
 				<< mRegion->getName()
 				<< "' has not received capabilities yet! Setting a callback for when they arrive."
 				<< LL_ENDL;
-		} else {
+		}
+		else
+		{
 			// get and check the hash
 			LLSD simFeatures;
 			mRegion->getSimulatorFeatures(simFeatures);
@@ -144,7 +146,9 @@ bool LLSyntaxIdLSL::checkSyntaxIdChange()
 						<< LL_ENDL;
 
 					changed = true;
-				} else {
+				}
+				else
+				{
 					LL_WARNS("LSLSyntax")
 						<< "Region changed to '"
 						<< mRegion->getName()
@@ -153,14 +157,18 @@ bool LLSyntaxIdLSL::checkSyntaxIdChange()
 						<< "'"
 						<< LL_ENDL;
 				}
-			} else {
+			}
+			else
+			{
 				// Set the hash to NULL_KEY to indicate use of default keywords file
 				if ( mCurrentSyntaxId.isNull() )
 				{
 					LL_WARNS("LSLSyntax")
 						<< "Region does not have LSLSyntaxId capability, remaining with default keywords file!"
 						<< LL_ENDL;
-				} else {
+				}
+				else
+				{
 					mCurrentSyntaxId = LLUUID();
 					mFilenameCurrent = mFilenameDefault;
 					mFilenameLocation = LL_PATH_APP_SETTINGS;
@@ -187,7 +195,7 @@ bool LLSyntaxIdLSL::fetchKeywordsFile()
 //	mResponder->setFileSpec(mFilenameSpec);
 	if ( !cap_url.empty() )
 	{
-		LLHTTPClient::get(cap_url, mResponder);
+		LLHTTPClient::get(cap_url, new fetchKeywordsFileResponder(mFilenameSpec));
 	}
 
 	return fetched;
@@ -207,7 +215,7 @@ void LLSyntaxIdLSL::initialise()
 			bool success = true;
 			if (!gDirUtilp->fileExists(mFilenameSpec))
 			{
-				mResponder = new fetchKeywordsFileResponder(mFilenameSpec);
+				//mResponder = new fetchKeywordsFileResponder(mFilenameSpec);
 				success = fetchKeywordsFile();
 			}
 		}
diff --git a/indra/newview/llsyntaxid.h b/indra/newview/llsyntaxid.h
index 6e5a97fd31..e32fcf209e 100644
--- a/indra/newview/llsyntaxid.h
+++ b/indra/newview/llsyntaxid.h
@@ -33,7 +33,7 @@ public:
 	std::string	filenameCurrent() { return mFilenameCurrent; }
 	ELLPath		filenamePath() { return mFilenameLocation; }
 	void		initialise();
-	static void	setKeywordsXml(LLSD& content) { LLSyntaxIdLSL::mKeywordsXml = content; }
+	static void	setKeywordsXml(const LLSD& content) { LLSyntaxIdLSL::sKeywordsXml = content; }
 
 protected:
 	std::string	buildFilename(LLUUID& SyntaxId);
@@ -60,6 +60,7 @@ private:
 	std::string							mFilenameFull;
 	ELLPath								mFilenameLocation;
 	std::string							mFilenameSpec;
-	static LLSD							mKeywordsXml;
 	std::string							mSimulatorFeature;
+
+	static LLSD							sKeywordsXml;
 };
-- 
cgit v1.2.3


From bad5179f276f6913bfb9a313d25d02d0e883d678 Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Fri, 25 Oct 2013 14:42:04 +0100
Subject: storm-1831 Fixing viewer crash and clean up. No idea why storing the
 region pointer in mRegion causes crashes, when doing it locally in each
 method doesn't.

---
 indra/newview/llpreviewscript.cpp |  10 +---
 indra/newview/llpreviewscript.h   |   2 +-
 indra/newview/llsyntaxid.cpp      | 113 +++++++++++++++++++++-----------------
 indra/newview/llsyntaxid.h        |  63 ++++++++++-----------
 4 files changed, 96 insertions(+), 92 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp
index 62e1d765b3..5f23249c8d 100755
--- a/indra/newview/llpreviewscript.cpp
+++ b/indra/newview/llpreviewscript.cpp
@@ -407,14 +407,10 @@ BOOL LLScriptEdCore::postBuild()
 	initMenu();
 
 // Make this work ;-)
-	mSyntaxLSL = LLSyntaxIdLSL();
-
-//	mSyntaxLSL.initialise();
-//	mSyntaxLSL.mKeywords = &mEditor->mKeywords;
+	mSyntaxIdLSL.initialise();
 	// ...
-//	mSyntaxLSL->mKeywords.initialise();
-// Move into the SyntaxIdLSL class
-	mEditor->mKeywords.initialise(mSyntaxLSL.filenamePath(), mSyntaxLSL.filenameCurrent());
+	mEditor->mKeywords.initialise(LL_PATH_APP_SETTINGS, "keywords_lsl_default.xml");
+//	mEditor->mKeywords.initialise(mSyntaxIdLSL.getFullFileSpec());
 
 	// FIX: Refactor LLTextEditor::loadKeywords so these can be removed.
 	std::vector<std::string> funcs;
diff --git a/indra/newview/llpreviewscript.h b/indra/newview/llpreviewscript.h
index 21e33f30d5..73ccaab0b8 100755
--- a/indra/newview/llpreviewscript.h
+++ b/indra/newview/llpreviewscript.h
@@ -150,7 +150,7 @@ private:
 	BOOL			mEnableSave;
 	BOOL			mHasScriptData;
 	LLLiveLSLFile*	mLiveFile;
-	LLSyntaxIdLSL	mSyntaxLSL;
+	LLSyntaxIdLSL	mSyntaxIdLSL;
 
 	LLScriptEdContainer* mContainer; // parent view
 };
diff --git a/indra/newview/llsyntaxid.cpp b/indra/newview/llsyntaxid.cpp
index deaa64c0e7..442793bff1 100644
--- a/indra/newview/llsyntaxid.cpp
+++ b/indra/newview/llsyntaxid.cpp
@@ -41,14 +41,17 @@
 //-----------------------------------------------------------------------------
 class fetchKeywordsFileResponder : public LLCurl::Responder
 {
-	std::string	mFileSpec;
 public:
+	std::string	mFileSpec;
+
 	fetchKeywordsFileResponder(std::string filespec)
 	{
 		mFileSpec = filespec;
 	}
 
-	void errorWithContent(U32 status, const std::string& reason, const LLSD& content)
+	void errorWithContent(U32 status,
+						  const std::string& reason,
+						  const LLSD& content)
 	{
 		LL_WARNS("")
 				<< "fetchKeywordsFileResponder error [status:"
@@ -58,15 +61,14 @@ public:
 				<< LL_ENDL;
 	}
 
-	void result(LLSD& content_ref)
+	void result(const LLSD& content_ref)
 	{
-		LLSyntaxIdLSL::setKeywordsXml(content_ref);
+		//LLSyntaxIdLSL::setKeywordsXml(content_ref);
 
 		std::stringstream str;
 		LLSDSerialize::toPrettyXML(content_ref, str);
 		LL_WARNS("")
-				<< "fetchKeywordsFileResponder result:"
-				<< str.str()
+				<< "fetchKeywordsFileResponder result:" << str.str()
 				<< "filename: '" << mFileSpec << "'"
 				<< LL_ENDL;
 
@@ -80,20 +82,21 @@ public:
 //-----------------------------------------------------------------------------
 // LLSyntaxIdLSL
 //-----------------------------------------------------------------------------
+/**
+ * @brief LLSyntaxIdLSL constructor
+ */
 LLSyntaxIdLSL::LLSyntaxIdLSL() :
 	// Move these to signature?
-	mFilenameDefault("keywords_lsl_default.xml"),
+	mFileNameDefault("keywords_lsl_default.xml"),
 	mSimulatorFeature("LSLSyntaxId"),
-	mCapabilityName("LSLSyntax")
+	mCapabilityName("LSLSyntax"),
+	mFilePath(LL_PATH_APP_SETTINGS)
 {
 	mCurrentSyntaxId = LLUUID();
-	mFilenameCurrent = mFilenameDefault;
-	mFilenameLocation = LL_PATH_APP_SETTINGS;
-	checkSyntaxIdChange();
-	//LLEnvManagerNew::instance().setRegionChangeCallback(boost::bind(&LLSyntaxIdLSL::checkSyntaxIdChange(), this));
+	mFileNameCurrent = mFileNameDefault;
 }
 
-std::string LLSyntaxIdLSL::buildFilename(LLUUID& SyntaxId)
+std::string LLSyntaxIdLSL::buildFileName(LLUUID& SyntaxId)
 {
 	std::string filename = "keywords_lsl_" + SyntaxId.asString() + "_" + gLastVersionChannel + ".llsd.xml";
 	return filename;
@@ -102,23 +105,24 @@ std::string LLSyntaxIdLSL::buildFilename(LLUUID& SyntaxId)
 //-----------------------------------------------------------------------------
 // checkSyntaxIdChange()
 //-----------------------------------------------------------------------------
-bool LLSyntaxIdLSL::checkSyntaxIdChange()
+bool LLSyntaxIdLSL::checkSyntaxIdChanged()
 {
 	bool changed = false;
-	if (mRegion)
+	LLViewerRegion* region = gAgent.getRegion();
+
+	if (region)
 	{
+		/*
 		LL_WARNS("LSLSyntax")
-			<< "REGION is '"
-			<< mRegion->getName()
-			<< "'"
+			<< "REGION is '" << region->getName() << "'"
 			<< LL_ENDL;
+			*/
 
-		if (!mRegion->capabilitiesReceived())
+		if (!region->capabilitiesReceived())
 		{   // Shouldn't be possible, but experience shows that it's needed
-//				mRegion->setCapabilitiesReceivedCallback(boost::bind(&LLSyntaxIdLSL::checkSyntaxIdChange, this));
+//				region->setCapabilitiesReceivedCallback(boost::bind(&LLSyntaxIdLSL::checkSyntaxIdChange, this));
 			LL_WARNS("LSLSyntax")
-				<< "mRegion '"
-				<< mRegion->getName()
+				<< "region '" << region->getName()
 				<< "' has not received capabilities yet! Setting a callback for when they arrive."
 				<< LL_ENDL;
 		}
@@ -126,23 +130,21 @@ bool LLSyntaxIdLSL::checkSyntaxIdChange()
 		{
 			// get and check the hash
 			LLSD simFeatures;
-			mRegion->getSimulatorFeatures(simFeatures);
+			region->getSimulatorFeatures(simFeatures);
 			if (simFeatures.has("LSLSyntaxId"))
 			{
 				LLUUID SyntaxId = simFeatures["LSLSyntaxId"].asUUID();
 				if (mCurrentSyntaxId != SyntaxId)
 				{
 					// set the properties for the fetcher to use
-					mFilenameCurrent = buildFilename(SyntaxId);
-					mFilenameLocation = LL_PATH_CACHE;
+					mFileNameCurrent = buildFileName(SyntaxId);
+					mFilePath = LL_PATH_CACHE;
 					mCurrentSyntaxId = SyntaxId;
 
 					LL_WARNS("LSLSyntax")
-						<< "Region changed to '"
-						<< mRegion->getName()
+						<< "Region changed to '" << region->getName()
 						<< "' it has LSLSyntaxId capability, and the new hash is '"
-						<< SyntaxId
-						<< "'"
+						<< SyntaxId << "'"
 						<< LL_ENDL;
 
 					changed = true;
@@ -150,11 +152,9 @@ bool LLSyntaxIdLSL::checkSyntaxIdChange()
 				else
 				{
 					LL_WARNS("LSLSyntax")
-						<< "Region changed to '"
-						<< mRegion->getName()
+						<< "Region changed to '" << region->getName()
 						<< "' it has the same LSLSyntaxId! Leaving hash as '"
-						<< mCurrentSyntaxId
-						<< "'"
+						<< mCurrentSyntaxId << "'"
 						<< LL_ENDL;
 				}
 			}
@@ -164,17 +164,19 @@ bool LLSyntaxIdLSL::checkSyntaxIdChange()
 				if ( mCurrentSyntaxId.isNull() )
 				{
 					LL_WARNS("LSLSyntax")
-						<< "Region does not have LSLSyntaxId capability, remaining with default keywords file!"
+						<< "Region changed to '" << region->getName()
+						<< " it does not have LSLSyntaxId capability, remaining with default keywords file!"
 						<< LL_ENDL;
 				}
 				else
 				{
 					mCurrentSyntaxId = LLUUID();
-					mFilenameCurrent = mFilenameDefault;
-					mFilenameLocation = LL_PATH_APP_SETTINGS;
+					mFileNameCurrent = mFileNameDefault;
+					mFilePath = LL_PATH_APP_SETTINGS;
 
 					LL_WARNS("LSLSyntax")
-						<< "Region does not have LSLSyntaxId capability, using default keywords file!"
+						<< "Region changed to '" << region->getName()
+						<< " it does not have LSLSyntaxId capability, using default keywords file!"
 						<< LL_ENDL;
 
 					changed = true;
@@ -190,12 +192,13 @@ bool LLSyntaxIdLSL::checkSyntaxIdChange()
 //-----------------------------------------------------------------------------
 bool LLSyntaxIdLSL::fetchKeywordsFile()
 {
+	LLViewerRegion* region = gAgent.getRegion();
 	bool fetched = false;
-	std::string cap_url = mRegion->getCapability(mCapabilityName);
-//	mResponder->setFileSpec(mFilenameSpec);
+
+	std::string cap_url = region->getCapability(mCapabilityName);
 	if ( !cap_url.empty() )
 	{
-		LLHTTPClient::get(cap_url, new fetchKeywordsFileResponder(mFilenameSpec));
+		LLHTTPClient::get(cap_url, new fetchKeywordsFileResponder(mFullFileSpec));
 	}
 
 	return fetched;
@@ -203,26 +206,34 @@ bool LLSyntaxIdLSL::fetchKeywordsFile()
 
 void LLSyntaxIdLSL::initialise()
 {
-	mRegion = gAgent.getRegion();
-	if (checkSyntaxIdChange())
+	if (checkSyntaxIdChanged())
 	{
-		mFilenameFull = gDirUtilp->getExpandedFilename(
-					mFilenameLocation,
-					mFilenameCurrent
-					);
+		LL_WARNS("LSLSyntax")
+				<< "Change to syntax, setting up new file."
+				<< LL_ENDL;
+
+		setFileNameNew(gDirUtilp->getExpandedFilename(
+					mFilePath,
+					mFileNameCurrent
+					));
 		if ( !mCurrentSyntaxId.isNull() )
 		{
-			bool success = true;
-			if (!gDirUtilp->fileExists(mFilenameSpec))
-			{
-				//mResponder = new fetchKeywordsFileResponder(mFilenameSpec);
+			bool success = false;
+			if ( !gDirUtilp->fileExists(mFullFileSpec) )
+			{ // Does not exist, so fetch it from the capability
 				success = fetchKeywordsFile();
 			}
 		}
 		// TODO add a signal here to tell the editor the hash has changed?
 	}
+	else
+	{
+		LL_WARNS("LSLSyntax")
+				<< "Apparently there is no change to Syntax!"
+				<< LL_ENDL;
 
-	mRegion = NULL;
+	}
+	//LLEnvManagerNew::instance().setRegionChangeCallback(boost::bind(&LLSyntaxIdLSL::checkSyntaxIdChange(), this));
 }
 
 //-----------------------------------------------------------------------------
diff --git a/indra/newview/llsyntaxid.h b/indra/newview/llsyntaxid.h
index e32fcf209e..f7e3d6896e 100644
--- a/indra/newview/llsyntaxid.h
+++ b/indra/newview/llsyntaxid.h
@@ -12,9 +12,6 @@
 #include "llviewerregion.h"
 
 
-//class LLKeywords;
-
-
 /**
  * @file llsyntaxid.h
  * @brief The LLSyntaxIdLSL class
@@ -22,45 +19,45 @@
 class LLSyntaxIdLSL
 {
 public:
-	/**
-	 * @brief LLSyntaxIdLSL constructor
-	 */
 	LLSyntaxIdLSL();
 
-	LLUUID		getSyntaxId() const { return mCurrentSyntaxId; }
+	bool			checkSyntaxIdChanged();
+	std::string		getFileNameCurrent()	const { return mFileNameCurrent; }
+	ELLPath			getFilePath()			const { return mFilePath; }
+	LLUUID			getSyntaxId()			const { return mCurrentSyntaxId; }
+
+	void			initialise();
+
+	static void		setKeywordsXml(const LLSD& content) { sKeywordsXml = content; }
 
-	bool		checkSyntaxIdChange();
-	std::string	filenameCurrent() { return mFilenameCurrent; }
-	ELLPath		filenamePath() { return mFilenameLocation; }
-	void		initialise();
-	static void	setKeywordsXml(const LLSD& content) { LLSyntaxIdLSL::sKeywordsXml = content; }
 
 protected:
-	std::string	buildFilename(LLUUID& SyntaxId);
-	bool		fetchKeywordsFile();
-	void		openKeywordsFile();
-	void		setSyntaxId(LLUUID SyntaxId) { mCurrentSyntaxId = SyntaxId; }
-	void		setFilenameCurrent(std::string& name) { mFilenameCurrent = name; }
-	void		setFilenameDefault(std::string& name) { mFilenameDefault = name; }
-	void		setSimulatorFeatureName(const std::string& name) { mSimulatorFeature = name; }
+	std::string		buildFileName(LLUUID& SyntaxId);
+	bool			fetchKeywordsFile();
+	void			openKeywordsFile();
+	void			setSyntaxId(LLUUID SyntaxId) { mCurrentSyntaxId = SyntaxId; }
+	void			setFileNameCurrent(std::string& name) { mFileNameCurrent = name; }
+	void			setFileNameDefault(std::string& name) { mFileNameDefault = name; }
+	void			setFileNameNew(std::string& name) { mFileNameNew = name; }
+	void			setSimulatorFeatureName(const std::string& name) { mSimulatorFeature = name; }
 
-public:
-	static LLHTTPClient::ResponderPtr	mResponder;
+
+//public:
 
 
 protected:
-//	LLKeywords&							mKeywords;
-	LLViewerRegion*						mRegion;
+	LLViewerRegion*	region;
+
 
 private:
-	std::string							mCapabilityName;
-	LLUUID								mCurrentSyntaxId;
-	std::string							mFilenameCurrent;
-	std::string							mFilenameDefault;
-	std::string							mFilenameFull;
-	ELLPath								mFilenameLocation;
-	std::string							mFilenameSpec;
-	std::string							mSimulatorFeature;
-
-	static LLSD							sKeywordsXml;
+	std::string		mCapabilityName;
+	LLUUID			mCurrentSyntaxId;
+	std::string		mFileNameCurrent;
+	std::string		mFileNameDefault;
+	std::string		mFileNameNew;
+	ELLPath			mFilePath;
+	std::string		mFullFileSpec;
+	std::string		mSimulatorFeature;
+
+	static LLSD		sKeywordsXml;
 };
-- 
cgit v1.2.3


From 87978dc481b54b0b5528949e291c5fe06e5e10eb Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Fri, 25 Oct 2013 16:30:33 +0100
Subject: storm-1831 fixes for setKeywordsXml

---
 indra/newview/llsyntaxid.cpp | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

(limited to 'indra')

diff --git a/indra/newview/llsyntaxid.cpp b/indra/newview/llsyntaxid.cpp
index 442793bff1..4b7a420384 100644
--- a/indra/newview/llsyntaxid.cpp
+++ b/indra/newview/llsyntaxid.cpp
@@ -64,9 +64,12 @@ public:
 	void result(const LLSD& content_ref)
 	{
 		//LLSyntaxIdLSL::setKeywordsXml(content_ref);
-
 		std::stringstream str;
 		LLSDSerialize::toPrettyXML(content_ref, str);
+
+		LLSD& xml = LLSD::emptyMap();
+		LLSDSerialize::deserialize(xml, str, 10485760);
+		//LLSyntaxIdLSL::setKeywordsXml(xml);
 		LL_WARNS("")
 				<< "fetchKeywordsFileResponder result:" << str.str()
 				<< "filename: '" << mFileSpec << "'"
-- 
cgit v1.2.3


From bf2aad25f4db1564483f3450623775e53822346d Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Fri, 25 Oct 2013 19:29:06 +0100
Subject: cleaning out extra (commented) setKeywordsXml call

---
 indra/newview/llsyntaxid.cpp | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llsyntaxid.cpp b/indra/newview/llsyntaxid.cpp
index 4b7a420384..b917134037 100644
--- a/indra/newview/llsyntaxid.cpp
+++ b/indra/newview/llsyntaxid.cpp
@@ -69,11 +69,10 @@ public:
 
 		LLSD& xml = LLSD::emptyMap();
 		LLSDSerialize::deserialize(xml, str, 10485760);
-		//LLSyntaxIdLSL::setKeywordsXml(xml);
 		LL_WARNS("")
-				<< "fetchKeywordsFileResponder result:" << str.str()
-				<< "filename: '" << mFileSpec << "'"
-				<< LL_ENDL;
+			<< "fetchKeywordsFileResponder result:" << str.str()
+			<< "filename: '" << mFileSpec << "'"
+			<< LL_ENDL;
 
 		// TODO save the damn str to disc
 		//llofstream file(mFileSpec, std::ios_base::out);
-- 
cgit v1.2.3


From 5301bd38deee7e2c443b4cfba19f9c595747c20a Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Thu, 7 Nov 2013 00:23:24 +0000
Subject: STORM-1831 Increasing source text buffer to 256 KB (As discussed in
 Server/Scripting and Open Source User Groups).

This change also addresses/closes: VWR-22401
---
 indra/newview/skins/default/xui/en/panel_script_ed.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'indra')

diff --git a/indra/newview/skins/default/xui/en/panel_script_ed.xml b/indra/newview/skins/default/xui/en/panel_script_ed.xml
index bcdef96138..d1b35dce9d 100755
--- a/indra/newview/skins/default/xui/en/panel_script_ed.xml
+++ b/indra/newview/skins/default/xui/en/panel_script_ed.xml
@@ -157,7 +157,7 @@
      height="376"
      ignore_tab="false"
      layout="topleft"
-     max_length="65536"
+     max_length="262144"
      name="Script Editor"
      text_readonly_color="DkGray"
      width="487"
-- 
cgit v1.2.3


From 9ec7c9e8afaadbe91d888e588ebfcf7cba44dfdc Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Thu, 7 Nov 2013 00:24:51 +0000
Subject: STORM-1831 Adding "LSLSyntax" to list of capabilities the region
 keeps track of.

---
 indra/newview/llviewerregion.cpp | 1 +
 1 file changed, 1 insertion(+)

(limited to 'indra')

diff --git a/indra/newview/llviewerregion.cpp b/indra/newview/llviewerregion.cpp
index 678f24fb3c..854f05f116 100755
--- a/indra/newview/llviewerregion.cpp
+++ b/indra/newview/llviewerregion.cpp
@@ -1614,6 +1614,7 @@ void LLViewerRegionImpl::buildCapabilityNames(LLSD& capabilityNames)
 	capabilityNames.append("GroupProposalBallot");
 	capabilityNames.append("HomeLocation");
 	capabilityNames.append("LandResources");
+	capabilityNames.append("LSLSyntax");
 	capabilityNames.append("MapLayer");
 	capabilityNames.append("MapLayerGod");
 	capabilityNames.append("MeshUploadFlag");
-- 
cgit v1.2.3


From 0ce27cfdebfd7722bb51c229abf26a5ee1c11d43 Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Thu, 7 Nov 2013 18:12:45 +0000
Subject: storm-1831 General cleanup of cruft created during caps experiments
 ;-)

---
 indra/newview/llsyntaxid.cpp | 191 ++++++++++++++++++++++++++-----------------
 indra/newview/llsyntaxid.h   |  31 +++++--
 2 files changed, 142 insertions(+), 80 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llsyntaxid.cpp b/indra/newview/llsyntaxid.cpp
index 442793bff1..7d0c7e376a 100644
--- a/indra/newview/llsyntaxid.cpp
+++ b/indra/newview/llsyntaxid.cpp
@@ -31,53 +31,54 @@
 #include "llhttpclient.h"
 #include "llagent.h"
 #include "llappviewer.h"
-#include "llcurl.h"
-#include "llenvmanager.h"
 #include "llsdserialize.h"
 #include "llsyntaxid.h"
 
+
 //-----------------------------------------------------------------------------
 // fetchKeywordsFileResponder
 //-----------------------------------------------------------------------------
-class fetchKeywordsFileResponder : public LLCurl::Responder
+fetchKeywordsFileResponder::fetchKeywordsFileResponder(std::string filespec)
 {
-public:
-	std::string	mFileSpec;
+	mFileSpec = filespec;
+	LL_WARNS("")
+			<< "Instantiating with file saving to: '" << filespec << "'"
+			<< LL_ENDL;
+}
 
-	fetchKeywordsFileResponder(std::string filespec)
-	{
-		mFileSpec = filespec;
-	}
 
-	void errorWithContent(U32 status,
+void fetchKeywordsFileResponder::errorWithContent(U32 status,
 						  const std::string& reason,
 						  const LLSD& content)
-	{
-		LL_WARNS("")
-				<< "fetchKeywordsFileResponder error [status:"
-				<< status
-				<< "]: "
-				<< content
-				<< LL_ENDL;
-	}
+{
+	LL_WARNS("")
+			<< "fetchKeywordsFileResponder error [status:"
+			<< status
+			<< "]: "
+			<< content
+			<< LL_ENDL;
+}
 
-	void result(const LLSD& content_ref)
-	{
-		//LLSyntaxIdLSL::setKeywordsXml(content_ref);
+void fetchKeywordsFileResponder::result(const LLSD& content_ref)
+{
+	LLSyntaxIdLSL::setKeywordsXml(content_ref);
 
-		std::stringstream str;
-		LLSDSerialize::toPrettyXML(content_ref, str);
-		LL_WARNS("")
-				<< "fetchKeywordsFileResponder result:" << str.str()
-				<< "filename: '" << mFileSpec << "'"
-				<< LL_ENDL;
+	std::stringstream str;
+	LLSDSerialize::toPrettyXML(content_ref, str);
+	const std::string xml = str.str();
 
-		// TODO save the damn str to disc
-		//llofstream file(mFileSpec, std::ios_base::out);
-		//file.write(str.str(), str.str().size());
-		//file.close();
-	}
-};
+	// save the str to disc
+	llofstream file(mFileSpec, std::ios_base::out);
+	file.write(xml.c_str(), str.str().size());
+	file.close();
+
+	LL_WARNS("")
+		<< "Syntax file received, saving as: '" << mFileSpec << "'"
+		<< LL_ENDL;
+}
+
+
+LLSD LLSyntaxIdLSL::sKeywordsXml;
 
 //-----------------------------------------------------------------------------
 // LLSyntaxIdLSL
@@ -90,16 +91,34 @@ LLSyntaxIdLSL::LLSyntaxIdLSL() :
 	mFileNameDefault("keywords_lsl_default.xml"),
 	mSimulatorFeature("LSLSyntaxId"),
 	mCapabilityName("LSLSyntax"),
+	mCapabilityURL(""),
 	mFilePath(LL_PATH_APP_SETTINGS)
 {
-	mCurrentSyntaxId = LLUUID();
+	mSyntaxIdCurrent = LLUUID();
 	mFileNameCurrent = mFileNameDefault;
 }
 
-std::string LLSyntaxIdLSL::buildFileName(LLUUID& SyntaxId)
+std::string LLSyntaxIdLSL::buildFileNameNew()
 {
-	std::string filename = "keywords_lsl_" + SyntaxId.asString() + "_" + gLastVersionChannel + ".llsd.xml";
-	return filename;
+	std::string filename = "keywords_lsl_";
+	if (!mSyntaxIdNew.isNull())
+	{
+		filename += gLastVersionChannel + "_" + mSyntaxIdNew.asString();
+	}
+	else
+	{
+		filename += mFileNameDefault;
+	}
+	mFileNameNew = filename + ".llsd.xml";
+	return mFileNameNew;
+}
+
+std::string LLSyntaxIdLSL::buildFullFileSpec()
+{
+	ELLPath path = mSyntaxIdNew.isNull() ? LL_PATH_APP_SETTINGS : LL_PATH_CACHE;
+	buildFileNameNew();
+	mFullFileSpec = gDirUtilp->getExpandedFilename(path, mFileNameNew);
+	return mFullFileSpec;
 }
 
 //-----------------------------------------------------------------------------
@@ -112,15 +131,9 @@ bool LLSyntaxIdLSL::checkSyntaxIdChanged()
 
 	if (region)
 	{
-		/*
-		LL_WARNS("LSLSyntax")
-			<< "REGION is '" << region->getName() << "'"
-			<< LL_ENDL;
-			*/
-
 		if (!region->capabilitiesReceived())
 		{   // Shouldn't be possible, but experience shows that it's needed
-//				region->setCapabilitiesReceivedCallback(boost::bind(&LLSyntaxIdLSL::checkSyntaxIdChange, this));
+			//region->setCapabilitiesReceivedCallback(boost::bind(&LLSyntaxIdLSL::checkSyntaxIdChange, this));
 			LL_WARNS("LSLSyntax")
 				<< "region '" << region->getName()
 				<< "' has not received capabilities yet! Setting a callback for when they arrive."
@@ -133,18 +146,18 @@ bool LLSyntaxIdLSL::checkSyntaxIdChanged()
 			region->getSimulatorFeatures(simFeatures);
 			if (simFeatures.has("LSLSyntaxId"))
 			{
-				LLUUID SyntaxId = simFeatures["LSLSyntaxId"].asUUID();
-				if (mCurrentSyntaxId != SyntaxId)
+				mSyntaxIdNew = simFeatures["LSLSyntaxId"].asUUID();
+				mCapabilityURL = region->getCapability(mCapabilityName);
+				if (mSyntaxIdCurrent != mSyntaxIdNew)
 				{
 					// set the properties for the fetcher to use
-					mFileNameCurrent = buildFileName(SyntaxId);
-					mFilePath = LL_PATH_CACHE;
-					mCurrentSyntaxId = SyntaxId;
+					//mFileNameNew = buildFileNameNew(mSyntaxIdNew);
+					//mFilePath = LL_PATH_CACHE;
 
 					LL_WARNS("LSLSyntax")
 						<< "Region changed to '" << region->getName()
 						<< "' it has LSLSyntaxId capability, and the new hash is '"
-						<< SyntaxId << "'"
+						<< mSyntaxIdNew << "'"
 						<< LL_ENDL;
 
 					changed = true;
@@ -154,14 +167,14 @@ bool LLSyntaxIdLSL::checkSyntaxIdChanged()
 					LL_WARNS("LSLSyntax")
 						<< "Region changed to '" << region->getName()
 						<< "' it has the same LSLSyntaxId! Leaving hash as '"
-						<< mCurrentSyntaxId << "'"
+						<< mSyntaxIdCurrent << "'"
 						<< LL_ENDL;
 				}
 			}
 			else
 			{
 				// Set the hash to NULL_KEY to indicate use of default keywords file
-				if ( mCurrentSyntaxId.isNull() )
+				if ( mSyntaxIdCurrent.isNull() )
 				{
 					LL_WARNS("LSLSyntax")
 						<< "Region changed to '" << region->getName()
@@ -170,9 +183,9 @@ bool LLSyntaxIdLSL::checkSyntaxIdChanged()
 				}
 				else
 				{
-					mCurrentSyntaxId = LLUUID();
-					mFileNameCurrent = mFileNameDefault;
-					mFilePath = LL_PATH_APP_SETTINGS;
+					mSyntaxIdNew = LLUUID();
+					//mFileNameNew = mFileNameDefault;
+					//mFilePath = LL_PATH_APP_SETTINGS;
 
 					LL_WARNS("LSLSyntax")
 						<< "Region changed to '" << region->getName()
@@ -190,18 +203,27 @@ bool LLSyntaxIdLSL::checkSyntaxIdChanged()
 //-----------------------------------------------------------------------------
 // fetchKeywordsFile
 //-----------------------------------------------------------------------------
-bool LLSyntaxIdLSL::fetchKeywordsFile()
+void LLSyntaxIdLSL::fetchKeywordsFile()
 {
-	LLViewerRegion* region = gAgent.getRegion();
-	bool fetched = false;
-
-	std::string cap_url = region->getCapability(mCapabilityName);
-	if ( !cap_url.empty() )
+	if ( !mCapabilityURL.empty() )
 	{
-		LLHTTPClient::get(cap_url, new fetchKeywordsFileResponder(mFullFileSpec));
+		//buildFullFileSpec();
+		LLHTTPClient::get(mCapabilityURL,
+						  new fetchKeywordsFileResponder(mFullFileSpec),
+						  LLSD(), 30.f
+						  );
+		LL_WARNS("LSLSyntax")
+				<< "LSLSyntaxId capability URL is: " << mCapabilityURL
+				<< ". Filename to use is: '" << mFullFileSpec << "'."
+				<< LL_ENDL;
+	}
+	else
+	{
+		LL_WARNS("LSLSyntax")
+				<< "LSLSyntaxId capability URL is empty using capability: '"
+				<< mCapabilityName << "'"
+				<< LL_ENDL;
 	}
-
-	return fetched;
 }
 
 void LLSyntaxIdLSL::initialise()
@@ -212,24 +234,42 @@ void LLSyntaxIdLSL::initialise()
 				<< "Change to syntax, setting up new file."
 				<< LL_ENDL;
 
-		setFileNameNew(gDirUtilp->getExpandedFilename(
-					mFilePath,
-					mFileNameCurrent
-					));
-		if ( !mCurrentSyntaxId.isNull() )
+		// Need a full spec built regardless of file source
+		buildFullFileSpec();
+		if ( !mSyntaxIdNew.isNull() )
 		{
-			bool success = false;
+			LL_WARNS("LSLSyntax")
+					<< "ID is not null so must be processed!"
+					<< LL_ENDL;
+
 			if ( !gDirUtilp->fileExists(mFullFileSpec) )
 			{ // Does not exist, so fetch it from the capability
-				success = fetchKeywordsFile();
+				fetchKeywordsFile();
+				LL_WARNS("LSLSyntax")
+						<< "Filename is not cached, we will try to download it!"
+						<< LL_ENDL;
+			}
+			else
+			{
+				LL_WARNS("LSLSyntax")
+						<< "Filename is cached, no need to download!"
+						<< LL_ENDL;
+				openKeywordsFile();
 			}
 		}
+		else
+		{ // Need to open the default
+			LL_WARNS("LSLSyntax")
+					<< "ID is null so SyntaxID does not need to be processed!"
+					<< LL_ENDL;
+			openKeywordsFile();
+		}
 		// TODO add a signal here to tell the editor the hash has changed?
 	}
 	else
 	{
 		LL_WARNS("LSLSyntax")
-				<< "Apparently there is no change to Syntax!"
+				<< "No change to Syntax! Nothing to see here. Move along now!"
 				<< LL_ENDL;
 
 	}
@@ -239,7 +279,10 @@ void LLSyntaxIdLSL::initialise()
 //-----------------------------------------------------------------------------
 // openKeywordsFile
 //-----------------------------------------------------------------------------
-void openKeywordsFile()
+void LLSyntaxIdLSL::openKeywordsFile()
 {
-	;
+	LL_WARNS("LSLSyntax")
+			<< "Trying to open default or cached keyword file ;-)"
+			<< LL_ENDL;
+	// TODO Open the file and load LLSD into sKeywordsXml
 }
diff --git a/indra/newview/llsyntaxid.h b/indra/newview/llsyntaxid.h
index f7e3d6896e..d9f2572863 100644
--- a/indra/newview/llsyntaxid.h
+++ b/indra/newview/llsyntaxid.h
@@ -12,6 +12,21 @@
 #include "llviewerregion.h"
 
 
+class fetchKeywordsFileResponder : public LLHTTPClient::Responder
+{
+public:
+	std::string	mFileSpec;
+
+	fetchKeywordsFileResponder(std::string filespec);
+
+	void errorWithContent(U32 status,
+						const std::string& reason,
+						const LLSD& content);
+
+	void result(const LLSD& content_ref);
+};
+
+
 /**
  * @file llsyntaxid.h
  * @brief The LLSyntaxIdLSL class
@@ -24,7 +39,7 @@ public:
 	bool			checkSyntaxIdChanged();
 	std::string		getFileNameCurrent()	const { return mFileNameCurrent; }
 	ELLPath			getFilePath()			const { return mFilePath; }
-	LLUUID			getSyntaxId()			const { return mCurrentSyntaxId; }
+	LLUUID			getSyntaxId()			const { return mSyntaxIdCurrent; }
 
 	void			initialise();
 
@@ -32,13 +47,14 @@ public:
 
 
 protected:
-	std::string		buildFileName(LLUUID& SyntaxId);
-	bool			fetchKeywordsFile();
+	std::string		buildFileNameNew();
+	std::string		buildFullFileSpec();
+	void			fetchKeywordsFile();
 	void			openKeywordsFile();
-	void			setSyntaxId(LLUUID SyntaxId) { mCurrentSyntaxId = SyntaxId; }
+	void			setSyntaxId(LLUUID SyntaxId) { mSyntaxIdCurrent = SyntaxId; }
 	void			setFileNameCurrent(std::string& name) { mFileNameCurrent = name; }
 	void			setFileNameDefault(std::string& name) { mFileNameDefault = name; }
-	void			setFileNameNew(std::string& name) { mFileNameNew = name; }
+	void			setFileNameNew(std::string name) { mFileNameNew = name; }
 	void			setSimulatorFeatureName(const std::string& name) { mSimulatorFeature = name; }
 
 
@@ -51,13 +67,16 @@ protected:
 
 private:
 	std::string		mCapabilityName;
-	LLUUID			mCurrentSyntaxId;
+	std::string		mCapabilityURL;
 	std::string		mFileNameCurrent;
 	std::string		mFileNameDefault;
 	std::string		mFileNameNew;
 	ELLPath			mFilePath;
 	std::string		mFullFileSpec;
 	std::string		mSimulatorFeature;
+	LLUUID			mSyntaxIdCurrent;
+	LLUUID			mSyntaxIdNew;
 
 	static LLSD		sKeywordsXml;
+
 };
-- 
cgit v1.2.3


From c8b8c29371a0eb4d53537030d0b007afcc500b3d Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Thu, 7 Nov 2013 18:31:05 +0000
Subject: Fixing LL_WARNS without labels and removing some crufty comments
 missed before

---
 indra/newview/llsyntaxid.cpp | 12 +++---------
 1 file changed, 3 insertions(+), 9 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llsyntaxid.cpp b/indra/newview/llsyntaxid.cpp
index 7d0c7e376a..0249607834 100644
--- a/indra/newview/llsyntaxid.cpp
+++ b/indra/newview/llsyntaxid.cpp
@@ -41,7 +41,7 @@
 fetchKeywordsFileResponder::fetchKeywordsFileResponder(std::string filespec)
 {
 	mFileSpec = filespec;
-	LL_WARNS("")
+	LL_WARNS("LSLSyntax")
 			<< "Instantiating with file saving to: '" << filespec << "'"
 			<< LL_ENDL;
 }
@@ -51,7 +51,7 @@ void fetchKeywordsFileResponder::errorWithContent(U32 status,
 						  const std::string& reason,
 						  const LLSD& content)
 {
-	LL_WARNS("")
+	LL_WARNS("LSLSyntax")
 			<< "fetchKeywordsFileResponder error [status:"
 			<< status
 			<< "]: "
@@ -72,7 +72,7 @@ void fetchKeywordsFileResponder::result(const LLSD& content_ref)
 	file.write(xml.c_str(), str.str().size());
 	file.close();
 
-	LL_WARNS("")
+	LL_WARNS("LSLSyntax")
 		<< "Syntax file received, saving as: '" << mFileSpec << "'"
 		<< LL_ENDL;
 }
@@ -150,10 +150,6 @@ bool LLSyntaxIdLSL::checkSyntaxIdChanged()
 				mCapabilityURL = region->getCapability(mCapabilityName);
 				if (mSyntaxIdCurrent != mSyntaxIdNew)
 				{
-					// set the properties for the fetcher to use
-					//mFileNameNew = buildFileNameNew(mSyntaxIdNew);
-					//mFilePath = LL_PATH_CACHE;
-
 					LL_WARNS("LSLSyntax")
 						<< "Region changed to '" << region->getName()
 						<< "' it has LSLSyntaxId capability, and the new hash is '"
@@ -184,8 +180,6 @@ bool LLSyntaxIdLSL::checkSyntaxIdChanged()
 				else
 				{
 					mSyntaxIdNew = LLUUID();
-					//mFileNameNew = mFileNameDefault;
-					//mFilePath = LL_PATH_APP_SETTINGS;
 
 					LL_WARNS("LSLSyntax")
 						<< "Region changed to '" << region->getName()
-- 
cgit v1.2.3


From e988fffbca2199156ed656a091409394246f929d Mon Sep 17 00:00:00 2001
From: Jonathan Yap <none@none>
Date: Thu, 7 Nov 2013 16:27:38 -0500
Subject: STORM-68 Add initial support to use a capability for setting default
 object permissions on the server.

---
 indra/newview/llfloaterperms.cpp                   | 45 ++++++++++++++++++++--
 indra/newview/llfloaterperms.h                     |  1 +
 indra/newview/llviewerregion.cpp                   |  4 ++
 .../newview/skins/default/xui/en/notifications.xml | 11 ++++++
 4 files changed, 58 insertions(+), 3 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llfloaterperms.cpp b/indra/newview/llfloaterperms.cpp
index 4e9acfc780..c167c03c30 100644
--- a/indra/newview/llfloaterperms.cpp
+++ b/indra/newview/llfloaterperms.cpp
@@ -32,7 +32,9 @@
 #include "llviewerwindow.h"
 #include "lluictrlfactory.h"
 #include "llpermissions.h"
-
+#include "llagent.h"
+#include "llviewerregion.h"
+#include "llnotificationsutil.h"
 
 LLFloaterPerms::LLFloaterPerms(const LLSD& seed)
 : LLFloater(seed)
@@ -96,7 +98,7 @@ U32 LLFloaterPerms::getNextOwnerPermsInverted(std::string prefix)
 }
 
 LLFloaterPermsDefault::LLFloaterPermsDefault(const LLSD& seed)
-: LLFloater(seed)
+	: LLFloater(seed)
 {
 	mCommitCallbackRegistrar.add("PermsDefault.Copy", boost::bind(&LLFloaterPermsDefault::onCommitCopy, this, _2));
 	mCommitCallbackRegistrar.add("PermsDefault.OK", boost::bind(&LLFloaterPermsDefault::onClickOK, this));
@@ -145,9 +147,46 @@ void LLFloaterPermsDefault::onCommitCopy(const LLSD& user_data)
 	xfer->setEnabled(copyable);
 }
 
+class LLFloaterPermsResponder : public LLHTTPClient::Responder
+{
+public:
+	LLFloaterPermsResponder(): LLHTTPClient::Responder()  {}
+
+	void error(U32 status, const std::string& reason)
+	{
+		LLSD args;
+		args["REASON"] = reason;
+		LLNotificationsUtil::add("DefaultObjectPermissions", args);
+	}
+	void result(const LLSD& content)
+	{
+		LL_INFOS("FloaterPermsResponder") << "Set new values" << LL_ENDL;
+	}
+};
+
+void LLFloaterPermsDefault::updateCap()
+{
+	std::string object_url = gAgent.getRegion()->getCapability("DefaultObjectPermissions");
+
+	if(!object_url.empty())
+	{
+		LLSD report = LLSD::emptyMap();
+		report["Group"] = (LLSD::Integer)LLFloaterPerms::getGroupPerms("Objects");
+		report["Everyone"] = (LLSD::Integer)LLFloaterPerms::getEveryonePerms("Objects");
+		report["NextOwner"] = (LLSD::Integer)LLFloaterPerms::getNextOwnerPerms("Objects");
+		LLHTTPClient::post(object_url, report, new LLFloaterPermsResponder());
+	}
+}
+
 void LLFloaterPermsDefault::ok()
 {
-	refresh(); // Changes were already applied to saved settings. Refreshing internal values makes it official.
+//	Changes were already applied automatically to saved settings.
+//	Refreshing internal values makes it official.
+	refresh();
+
+// We know some setting has changed but not which one.  Just in case it was a setting for
+// object permissions tell the server what the values are.
+	updateCap();
 }
 
 void LLFloaterPermsDefault::cancel()
diff --git a/indra/newview/llfloaterperms.h b/indra/newview/llfloaterperms.h
index bb4a6f9702..5fe39a2c1b 100644
--- a/indra/newview/llfloaterperms.h
+++ b/indra/newview/llfloaterperms.h
@@ -59,6 +59,7 @@ public:
 	void onClickOK();
 	void onClickCancel();
 	void onCommitCopy(const LLSD& user_data);
+	static void updateCap();
 
 enum Categories
 {
diff --git a/indra/newview/llviewerregion.cpp b/indra/newview/llviewerregion.cpp
index e3cb985ddb..7b5721cb39 100644
--- a/indra/newview/llviewerregion.cpp
+++ b/indra/newview/llviewerregion.cpp
@@ -70,6 +70,7 @@
 #include "stringize.h"
 #include "llviewercontrol.h"
 #include "llsdserialize.h"
+#include "llfloaterperms.h"
 
 #ifdef LL_WINDOWS
 	#pragma warning(disable:4355)
@@ -1485,6 +1486,8 @@ void LLViewerRegion::unpackRegionHandshake()
 	msg->nextBlock("RegionInfo");
 	msg->addU32("Flags", 0x0 );
 	msg->sendReliable(host);
+
+	LLFloaterPermsDefault::updateCap();
 }
 
 void LLViewerRegionImpl::buildCapabilityNames(LLSD& capabilityNames)
@@ -1494,6 +1497,7 @@ void LLViewerRegionImpl::buildCapabilityNames(LLSD& capabilityNames)
 	capabilityNames.append("ChatSessionRequest");
 	capabilityNames.append("CopyInventoryFromNotecard");
 	capabilityNames.append("CreateInventoryCategory");
+	capabilityNames.append("DefaultObjectPermissions");
 	capabilityNames.append("DispatchRegionInfo");
 	capabilityNames.append("EstateChangeInfo");
 	capabilityNames.append("EventQueueGet");
diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml
index afc5b916e7..a46cce996b 100644
--- a/indra/newview/skins/default/xui/en/notifications.xml
+++ b/indra/newview/skins/default/xui/en/notifications.xml
@@ -7722,5 +7722,16 @@ Disabling future updates for this file.
 Attempted to add an invalid or unreadable image file [FNAME] which could not be opened or decoded.
 Attempt cancelled.
   </notification>
+
+  <notification
+   icon="alertmodal.tga"
+   name="DefaultObjectPermissions"
+   type="alert">
+	There was a problem saving the default permissions due to the following reason: [REASON].  Please try setting the default permissions later.
+	<tag>fail</tag>
+   <usetemplate
+     name="okbutton"
+     yestext="OK"/>
+  </notification>
   
 </notifications>
-- 
cgit v1.2.3


From 4af21580297dd85727ffdc5d4eee89ad58ead271 Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Sat, 9 Nov 2013 11:31:32 +0000
Subject: Adding method to load cached/default syntax file and method to access
 sKeyWordsXML.

---
 indra/llui/llkeywords.cpp         | 12 +++++-----
 indra/llui/llkeywords.h           | 20 ++++++++---------
 indra/newview/llpreviewscript.cpp | 15 ++++++++-----
 indra/newview/llpreviewscript.h   |  1 +
 indra/newview/llsyntaxid.cpp      | 47 ++++++++++++++++++++++++++++++++-------
 indra/newview/llsyntaxid.h        |  4 +++-
 6 files changed, 69 insertions(+), 30 deletions(-)

(limited to 'indra')

diff --git a/indra/llui/llkeywords.cpp b/indra/llui/llkeywords.cpp
index 687c2fb31d..832264f074 100755
--- a/indra/llui/llkeywords.cpp
+++ b/indra/llui/llkeywords.cpp
@@ -34,7 +34,7 @@
 #include "lltexteditor.h"
 #include "llstl.h"
 
-inline BOOL LLKeywordToken::isHead(const llwchar* s) const
+inline bool LLKeywordToken::isHead(const llwchar* s) const
 {
 	// strncmp is much faster than string compare
 	BOOL res = TRUE;
@@ -51,7 +51,7 @@ inline BOOL LLKeywordToken::isHead(const llwchar* s) const
 	return res;
 }
 
-inline BOOL LLKeywordToken::isTail(const llwchar* s) const
+inline bool LLKeywordToken::isTail(const llwchar* s) const
 {
 	BOOL res = TRUE;
 	const llwchar* t = mDelimiter.c_str();
@@ -198,7 +198,7 @@ LLColor4 LLKeywords::getColorGroup(const std::string key_in)
 	return LLUIColorTable::instance().getColor(ColourGroup);
 }
 
-BOOL LLKeywords::initialise(ELLPath path, const std::string filename)
+bool LLKeywords::initialise(ELLPath path, const std::string filename)
 {
 	mReady = false;
 	setFilenameSyntax( gDirUtilp->getExpandedFilename(path, filename) );
@@ -214,7 +214,7 @@ BOOL LLKeywords::initialise(ELLPath path, const std::string filename)
 	return mReady;
 }
 
-BOOL LLKeywords::loadFromFile()
+bool LLKeywords::loadFromFile()
 {
 	processTokens();
 	return true;
@@ -226,14 +226,14 @@ BOOL LLKeywords::loadFromFile()
  *			contained data to the specified LLSD object.
  * @return	Returns boolean true/false indicating success or failure.
  */
-BOOL LLKeywords::loadIntoLLSD(const std::string& filename, LLSD& data)
+bool LLKeywords::loadIntoLLSD(const std::string& filename, LLSD& data)
 {
 	mLoaded = false;
 	llifstream file;
 	file.open(filename);
 	if(file.is_open())
 	{
-		mLoaded = (BOOL)LLSDSerialize::fromXML(data, file);
+		mLoaded = (bool)LLSDSerialize::fromXML(data, file);
 		if (!mLoaded)
 		{
 			LL_WARNS("") << "Unable to deserialise file: " << filename << LL_ENDL;
diff --git a/indra/llui/llkeywords.h b/indra/llui/llkeywords.h
index 1bd23549d2..f98453405d 100755
--- a/indra/llui/llkeywords.h
+++ b/indra/llui/llkeywords.h
@@ -83,8 +83,8 @@ public:
 
 	S32					getLengthHead() const	{ return mToken.size(); }
 	S32					getLengthTail() const	{ return mDelimiter.size(); }
-	BOOL				isHead(const llwchar* s) const;
-	BOOL				isTail(const llwchar* s) const;
+	bool				isHead(const llwchar* s) const;
+	bool				isTail(const llwchar* s) const;
 	const LLWString&	getToken() const		{ return mToken; }
 	const LLColor4&		getColor() const		{ return mColor; }
 	TOKEN_TYPE			getType()  const		{ return mType; }
@@ -111,13 +111,13 @@ public:
 
 	void		addColorGroup(const std::string key_in, const LLColor4 color);
 	LLColor4	getColorGroup(const std::string key_in);
-	BOOL		loadFromFile();
-	BOOL		loadFromFile(const std::string& filename);
-	BOOL		isLoaded() const	{ return mLoaded; }
+	bool		loadFromFile();
+	bool		loadFromFile(const std::string& filename);
+	bool		isLoaded() const	{ return mLoaded; }
 	void		setFilenameSyntax(const std::string filename) { mFilenameSyntax = filename; }
 
 	void		findSegments(std::vector<LLTextSegmentPtr> *seg_list, const LLWString& text, const LLColor4 &defaultColor, class LLTextEditor& editor );
-	BOOL		initialise(ELLPath path, const std::string filename);
+	bool		initialise(ELLPath path, const std::string filename);
 	std::string	processColors();
 	std::string	processColors(LLSD &data, const std::string strGroup);
 	void		processTokens();
@@ -176,10 +176,10 @@ protected:
 	LLColor4	readColor(LLSD& sd);
 	void		insertSegment(std::vector<LLTextSegmentPtr>& seg_list, LLTextSegmentPtr new_segment, S32 text_len, const LLColor4 &defaultColor, class LLTextEditor& editor);
 	void		insertSegments(const LLWString& wtext, std::vector<LLTextSegmentPtr>& seg_list, LLKeywordToken* token, S32 text_len, S32 seg_start, S32 seg_end, const LLColor4 &defaultColor, LLTextEditor& editor);
-	BOOL		loadIntoLLSD( const std::string& filename, LLSD& data );
+	bool		loadIntoLLSD( const std::string& filename, LLSD& data );
 
 	LLSD		mColors;
-	BOOL		mLoaded;
+	bool		mLoaded;
 	LLSD		mSyntax;
 	word_token_map_t mWordTokenMap;
 	typedef std::deque<LLKeywordToken*> token_list_t;
@@ -194,8 +194,8 @@ protected:
 	std::string	getArguments(LLSD& args);
 
 private:
-	BOOL		ready() { return mReady; }
-	BOOL		mReady;
+	bool		ready() { return mReady; }
+	bool		mReady;
 	std::string	mFilenameSyntax;
 };
 
diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp
index 5f23249c8d..705872328a 100755
--- a/indra/newview/llpreviewscript.cpp
+++ b/indra/newview/llpreviewscript.cpp
@@ -406,11 +406,7 @@ BOOL LLScriptEdCore::postBuild()
 
 	initMenu();
 
-// Make this work ;-)
-	mSyntaxIdLSL.initialise();
-	// ...
-	mEditor->mKeywords.initialise(LL_PATH_APP_SETTINGS, "keywords_lsl_default.xml");
-//	mEditor->mKeywords.initialise(mSyntaxIdLSL.getFullFileSpec());
+	LLEnvManagerNew::instance().setRegionChangeCallback(boost::bind(&LLScriptEdCore::initKeywords(), this));
 
 	// FIX: Refactor LLTextEditor::loadKeywords so these can be removed.
 	std::vector<std::string> funcs;
@@ -456,6 +452,15 @@ BOOL LLScriptEdCore::postBuild()
 	return TRUE;
 }
 
+void LLScriptEdCore::initKeywords()
+{
+	// Make this work ;-)
+		mSyntaxIdLSL.initialise();
+		// ...
+		mEditor->mKeywords.initialise(LL_PATH_APP_SETTINGS, "keywords_lsl_default.xml");
+	//	mEditor->mKeywords.initialise(mSyntaxIdLSL.getKeywordsXML());
+}
+
 void LLScriptEdCore::initMenu()
 {
 	// *TODO: Skinning - make these callbacks data driven
diff --git a/indra/newview/llpreviewscript.h b/indra/newview/llpreviewscript.h
index 73ccaab0b8..149c27461e 100755
--- a/indra/newview/llpreviewscript.h
+++ b/indra/newview/llpreviewscript.h
@@ -78,6 +78,7 @@ public:
 	~LLScriptEdCore();
 	
 	void			initMenu();
+	void			initKeywords();
 
 	virtual void	draw();
 	/*virtual*/	BOOL	postBuild();
diff --git a/indra/newview/llsyntaxid.cpp b/indra/newview/llsyntaxid.cpp
index 0249607834..00e6086546 100644
--- a/indra/newview/llsyntaxid.cpp
+++ b/indra/newview/llsyntaxid.cpp
@@ -248,7 +248,7 @@ void LLSyntaxIdLSL::initialise()
 				LL_WARNS("LSLSyntax")
 						<< "Filename is cached, no need to download!"
 						<< LL_ENDL;
-				openKeywordsFile();
+				loadKeywordsFileIntoLLSD();
 			}
 		}
 		else
@@ -256,27 +256,58 @@ void LLSyntaxIdLSL::initialise()
 			LL_WARNS("LSLSyntax")
 					<< "ID is null so SyntaxID does not need to be processed!"
 					<< LL_ENDL;
-			openKeywordsFile();
+			loadKeywordsFileIntoLLSD();
 		}
-		// TODO add a signal here to tell the editor the hash has changed?
+		mFileNameCurrent = mFileNameNew;
+		mSyntaxIdCurrent = mSyntaxIdNew;
 	}
 	else
 	{
 		LL_WARNS("LSLSyntax")
 				<< "No change to Syntax! Nothing to see here. Move along now!"
 				<< LL_ENDL;
-
 	}
-	//LLEnvManagerNew::instance().setRegionChangeCallback(boost::bind(&LLSyntaxIdLSL::checkSyntaxIdChange(), this));
 }
 
 //-----------------------------------------------------------------------------
-// openKeywordsFile
+// loadKeywordsFileIntoLLSD
 //-----------------------------------------------------------------------------
-void LLSyntaxIdLSL::openKeywordsFile()
+/**
+ * @brief	Load xml serialised LLSD
+ * @desc	Opens the specified filespec and attempts to deserialise the
+ *			contained data to the specified LLSD object.
+ * @return	Returns boolean true/false indicating success or failure.
+ */
+bool LLSyntaxIdLSL::loadKeywordsFileIntoLLSD()
 {
 	LL_WARNS("LSLSyntax")
 			<< "Trying to open default or cached keyword file ;-)"
 			<< LL_ENDL;
-	// TODO Open the file and load LLSD into sKeywordsXml
+
+	bool loaded = false;
+	LLSD content;
+	llifstream file;
+	file.open(mFullFileSpec);
+	if (file.is_open())
+	{
+		loaded = (bool)LLSDSerialize::fromXML(content, file);
+		if (!loaded)
+		{
+			LL_WARNS("LSLSyntax") << "Unable to deserialise file: " << filename << LL_ENDL;
+
+			// Is this the right thing to do, or should we leave the old content
+			// even if it isn't entirely accurate anymore?
+			sKeywordsXml = LLSD.emptyMap();
+		}
+		else
+		{
+			sKeywordsXml = content;
+			LL_INFOS("LSLSyntax") << "Deserialised file: " << filename << LL_ENDL;
+		}
+	}
+	else
+	{
+		LL_WARNS("LSLSyntax") << "Unable to open file: " << filename << LL_ENDL;
+	}
+	return loaded;
 }
diff --git a/indra/newview/llsyntaxid.h b/indra/newview/llsyntaxid.h
index d9f2572863..50013a8380 100644
--- a/indra/newview/llsyntaxid.h
+++ b/indra/newview/llsyntaxid.h
@@ -39,6 +39,7 @@ public:
 	bool			checkSyntaxIdChanged();
 	std::string		getFileNameCurrent()	const { return mFileNameCurrent; }
 	ELLPath			getFilePath()			const { return mFilePath; }
+	LLSD			getKeywordsXML()		const { return sKeywordsXml; }
 	LLUUID			getSyntaxId()			const { return mSyntaxIdCurrent; }
 
 	void			initialise();
@@ -50,7 +51,8 @@ protected:
 	std::string		buildFileNameNew();
 	std::string		buildFullFileSpec();
 	void			fetchKeywordsFile();
-	void			openKeywordsFile();
+	//void			openKeywordsFile();
+	bool			loadKeywordsFileIntoLLSD();
 	void			setSyntaxId(LLUUID SyntaxId) { mSyntaxIdCurrent = SyntaxId; }
 	void			setFileNameCurrent(std::string& name) { mFileNameCurrent = name; }
 	void			setFileNameDefault(std::string& name) { mFileNameDefault = name; }
-- 
cgit v1.2.3


From 29b2129e1eec0dbbb909422e82766a58f14c5da3 Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Sat, 9 Nov 2013 11:32:08 +0000
Subject: Backed out changeset: e82d9467bec8

---
 indra/llui/llkeywords.cpp         | 12 +++++-----
 indra/llui/llkeywords.h           | 20 ++++++++---------
 indra/newview/llpreviewscript.cpp | 15 +++++--------
 indra/newview/llpreviewscript.h   |  1 -
 indra/newview/llsyntaxid.cpp      | 47 +++++++--------------------------------
 indra/newview/llsyntaxid.h        |  4 +---
 6 files changed, 30 insertions(+), 69 deletions(-)

(limited to 'indra')

diff --git a/indra/llui/llkeywords.cpp b/indra/llui/llkeywords.cpp
index 832264f074..687c2fb31d 100755
--- a/indra/llui/llkeywords.cpp
+++ b/indra/llui/llkeywords.cpp
@@ -34,7 +34,7 @@
 #include "lltexteditor.h"
 #include "llstl.h"
 
-inline bool LLKeywordToken::isHead(const llwchar* s) const
+inline BOOL LLKeywordToken::isHead(const llwchar* s) const
 {
 	// strncmp is much faster than string compare
 	BOOL res = TRUE;
@@ -51,7 +51,7 @@ inline bool LLKeywordToken::isHead(const llwchar* s) const
 	return res;
 }
 
-inline bool LLKeywordToken::isTail(const llwchar* s) const
+inline BOOL LLKeywordToken::isTail(const llwchar* s) const
 {
 	BOOL res = TRUE;
 	const llwchar* t = mDelimiter.c_str();
@@ -198,7 +198,7 @@ LLColor4 LLKeywords::getColorGroup(const std::string key_in)
 	return LLUIColorTable::instance().getColor(ColourGroup);
 }
 
-bool LLKeywords::initialise(ELLPath path, const std::string filename)
+BOOL LLKeywords::initialise(ELLPath path, const std::string filename)
 {
 	mReady = false;
 	setFilenameSyntax( gDirUtilp->getExpandedFilename(path, filename) );
@@ -214,7 +214,7 @@ bool LLKeywords::initialise(ELLPath path, const std::string filename)
 	return mReady;
 }
 
-bool LLKeywords::loadFromFile()
+BOOL LLKeywords::loadFromFile()
 {
 	processTokens();
 	return true;
@@ -226,14 +226,14 @@ bool LLKeywords::loadFromFile()
  *			contained data to the specified LLSD object.
  * @return	Returns boolean true/false indicating success or failure.
  */
-bool LLKeywords::loadIntoLLSD(const std::string& filename, LLSD& data)
+BOOL LLKeywords::loadIntoLLSD(const std::string& filename, LLSD& data)
 {
 	mLoaded = false;
 	llifstream file;
 	file.open(filename);
 	if(file.is_open())
 	{
-		mLoaded = (bool)LLSDSerialize::fromXML(data, file);
+		mLoaded = (BOOL)LLSDSerialize::fromXML(data, file);
 		if (!mLoaded)
 		{
 			LL_WARNS("") << "Unable to deserialise file: " << filename << LL_ENDL;
diff --git a/indra/llui/llkeywords.h b/indra/llui/llkeywords.h
index f98453405d..1bd23549d2 100755
--- a/indra/llui/llkeywords.h
+++ b/indra/llui/llkeywords.h
@@ -83,8 +83,8 @@ public:
 
 	S32					getLengthHead() const	{ return mToken.size(); }
 	S32					getLengthTail() const	{ return mDelimiter.size(); }
-	bool				isHead(const llwchar* s) const;
-	bool				isTail(const llwchar* s) const;
+	BOOL				isHead(const llwchar* s) const;
+	BOOL				isTail(const llwchar* s) const;
 	const LLWString&	getToken() const		{ return mToken; }
 	const LLColor4&		getColor() const		{ return mColor; }
 	TOKEN_TYPE			getType()  const		{ return mType; }
@@ -111,13 +111,13 @@ public:
 
 	void		addColorGroup(const std::string key_in, const LLColor4 color);
 	LLColor4	getColorGroup(const std::string key_in);
-	bool		loadFromFile();
-	bool		loadFromFile(const std::string& filename);
-	bool		isLoaded() const	{ return mLoaded; }
+	BOOL		loadFromFile();
+	BOOL		loadFromFile(const std::string& filename);
+	BOOL		isLoaded() const	{ return mLoaded; }
 	void		setFilenameSyntax(const std::string filename) { mFilenameSyntax = filename; }
 
 	void		findSegments(std::vector<LLTextSegmentPtr> *seg_list, const LLWString& text, const LLColor4 &defaultColor, class LLTextEditor& editor );
-	bool		initialise(ELLPath path, const std::string filename);
+	BOOL		initialise(ELLPath path, const std::string filename);
 	std::string	processColors();
 	std::string	processColors(LLSD &data, const std::string strGroup);
 	void		processTokens();
@@ -176,10 +176,10 @@ protected:
 	LLColor4	readColor(LLSD& sd);
 	void		insertSegment(std::vector<LLTextSegmentPtr>& seg_list, LLTextSegmentPtr new_segment, S32 text_len, const LLColor4 &defaultColor, class LLTextEditor& editor);
 	void		insertSegments(const LLWString& wtext, std::vector<LLTextSegmentPtr>& seg_list, LLKeywordToken* token, S32 text_len, S32 seg_start, S32 seg_end, const LLColor4 &defaultColor, LLTextEditor& editor);
-	bool		loadIntoLLSD( const std::string& filename, LLSD& data );
+	BOOL		loadIntoLLSD( const std::string& filename, LLSD& data );
 
 	LLSD		mColors;
-	bool		mLoaded;
+	BOOL		mLoaded;
 	LLSD		mSyntax;
 	word_token_map_t mWordTokenMap;
 	typedef std::deque<LLKeywordToken*> token_list_t;
@@ -194,8 +194,8 @@ protected:
 	std::string	getArguments(LLSD& args);
 
 private:
-	bool		ready() { return mReady; }
-	bool		mReady;
+	BOOL		ready() { return mReady; }
+	BOOL		mReady;
 	std::string	mFilenameSyntax;
 };
 
diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp
index 705872328a..5f23249c8d 100755
--- a/indra/newview/llpreviewscript.cpp
+++ b/indra/newview/llpreviewscript.cpp
@@ -406,7 +406,11 @@ BOOL LLScriptEdCore::postBuild()
 
 	initMenu();
 
-	LLEnvManagerNew::instance().setRegionChangeCallback(boost::bind(&LLScriptEdCore::initKeywords(), this));
+// Make this work ;-)
+	mSyntaxIdLSL.initialise();
+	// ...
+	mEditor->mKeywords.initialise(LL_PATH_APP_SETTINGS, "keywords_lsl_default.xml");
+//	mEditor->mKeywords.initialise(mSyntaxIdLSL.getFullFileSpec());
 
 	// FIX: Refactor LLTextEditor::loadKeywords so these can be removed.
 	std::vector<std::string> funcs;
@@ -452,15 +456,6 @@ BOOL LLScriptEdCore::postBuild()
 	return TRUE;
 }
 
-void LLScriptEdCore::initKeywords()
-{
-	// Make this work ;-)
-		mSyntaxIdLSL.initialise();
-		// ...
-		mEditor->mKeywords.initialise(LL_PATH_APP_SETTINGS, "keywords_lsl_default.xml");
-	//	mEditor->mKeywords.initialise(mSyntaxIdLSL.getKeywordsXML());
-}
-
 void LLScriptEdCore::initMenu()
 {
 	// *TODO: Skinning - make these callbacks data driven
diff --git a/indra/newview/llpreviewscript.h b/indra/newview/llpreviewscript.h
index 149c27461e..73ccaab0b8 100755
--- a/indra/newview/llpreviewscript.h
+++ b/indra/newview/llpreviewscript.h
@@ -78,7 +78,6 @@ public:
 	~LLScriptEdCore();
 	
 	void			initMenu();
-	void			initKeywords();
 
 	virtual void	draw();
 	/*virtual*/	BOOL	postBuild();
diff --git a/indra/newview/llsyntaxid.cpp b/indra/newview/llsyntaxid.cpp
index 00e6086546..0249607834 100644
--- a/indra/newview/llsyntaxid.cpp
+++ b/indra/newview/llsyntaxid.cpp
@@ -248,7 +248,7 @@ void LLSyntaxIdLSL::initialise()
 				LL_WARNS("LSLSyntax")
 						<< "Filename is cached, no need to download!"
 						<< LL_ENDL;
-				loadKeywordsFileIntoLLSD();
+				openKeywordsFile();
 			}
 		}
 		else
@@ -256,58 +256,27 @@ void LLSyntaxIdLSL::initialise()
 			LL_WARNS("LSLSyntax")
 					<< "ID is null so SyntaxID does not need to be processed!"
 					<< LL_ENDL;
-			loadKeywordsFileIntoLLSD();
+			openKeywordsFile();
 		}
-		mFileNameCurrent = mFileNameNew;
-		mSyntaxIdCurrent = mSyntaxIdNew;
+		// TODO add a signal here to tell the editor the hash has changed?
 	}
 	else
 	{
 		LL_WARNS("LSLSyntax")
 				<< "No change to Syntax! Nothing to see here. Move along now!"
 				<< LL_ENDL;
+
 	}
+	//LLEnvManagerNew::instance().setRegionChangeCallback(boost::bind(&LLSyntaxIdLSL::checkSyntaxIdChange(), this));
 }
 
 //-----------------------------------------------------------------------------
-// loadKeywordsFileIntoLLSD
+// openKeywordsFile
 //-----------------------------------------------------------------------------
-/**
- * @brief	Load xml serialised LLSD
- * @desc	Opens the specified filespec and attempts to deserialise the
- *			contained data to the specified LLSD object.
- * @return	Returns boolean true/false indicating success or failure.
- */
-bool LLSyntaxIdLSL::loadKeywordsFileIntoLLSD()
+void LLSyntaxIdLSL::openKeywordsFile()
 {
 	LL_WARNS("LSLSyntax")
 			<< "Trying to open default or cached keyword file ;-)"
 			<< LL_ENDL;
-
-	bool loaded = false;
-	LLSD content;
-	llifstream file;
-	file.open(mFullFileSpec);
-	if (file.is_open())
-	{
-		loaded = (bool)LLSDSerialize::fromXML(content, file);
-		if (!loaded)
-		{
-			LL_WARNS("LSLSyntax") << "Unable to deserialise file: " << filename << LL_ENDL;
-
-			// Is this the right thing to do, or should we leave the old content
-			// even if it isn't entirely accurate anymore?
-			sKeywordsXml = LLSD.emptyMap();
-		}
-		else
-		{
-			sKeywordsXml = content;
-			LL_INFOS("LSLSyntax") << "Deserialised file: " << filename << LL_ENDL;
-		}
-	}
-	else
-	{
-		LL_WARNS("LSLSyntax") << "Unable to open file: " << filename << LL_ENDL;
-	}
-	return loaded;
+	// TODO Open the file and load LLSD into sKeywordsXml
 }
diff --git a/indra/newview/llsyntaxid.h b/indra/newview/llsyntaxid.h
index 50013a8380..d9f2572863 100644
--- a/indra/newview/llsyntaxid.h
+++ b/indra/newview/llsyntaxid.h
@@ -39,7 +39,6 @@ public:
 	bool			checkSyntaxIdChanged();
 	std::string		getFileNameCurrent()	const { return mFileNameCurrent; }
 	ELLPath			getFilePath()			const { return mFilePath; }
-	LLSD			getKeywordsXML()		const { return sKeywordsXml; }
 	LLUUID			getSyntaxId()			const { return mSyntaxIdCurrent; }
 
 	void			initialise();
@@ -51,8 +50,7 @@ protected:
 	std::string		buildFileNameNew();
 	std::string		buildFullFileSpec();
 	void			fetchKeywordsFile();
-	//void			openKeywordsFile();
-	bool			loadKeywordsFileIntoLLSD();
+	void			openKeywordsFile();
 	void			setSyntaxId(LLUUID SyntaxId) { mSyntaxIdCurrent = SyntaxId; }
 	void			setFileNameCurrent(std::string& name) { mFileNameCurrent = name; }
 	void			setFileNameDefault(std::string& name) { mFileNameDefault = name; }
-- 
cgit v1.2.3


From 3b03ffbd70bff48a747f9f3a45056069724fc42f Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Sat, 9 Nov 2013 11:39:53 +0000
Subject: Changing method openKeywordFile to loadKeywordFileIntoLLSD to load
 cached/default syntax file and method to access sKeyWordsXML.

loadKeywordFileIntoLLSD was taken almost verbatim from LLKeywords::loadIntoLLSD which can be removed later.
I know the name is long but I wanted to remember where it came from and why it is how it is.
Removed a little cruft also.
---
 indra/newview/llsyntaxid.cpp | 47 ++++++++++++++++++++++++++++++++++++--------
 indra/newview/llsyntaxid.h   |  4 +++-
 2 files changed, 42 insertions(+), 9 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llsyntaxid.cpp b/indra/newview/llsyntaxid.cpp
index 0249607834..00e6086546 100644
--- a/indra/newview/llsyntaxid.cpp
+++ b/indra/newview/llsyntaxid.cpp
@@ -248,7 +248,7 @@ void LLSyntaxIdLSL::initialise()
 				LL_WARNS("LSLSyntax")
 						<< "Filename is cached, no need to download!"
 						<< LL_ENDL;
-				openKeywordsFile();
+				loadKeywordsFileIntoLLSD();
 			}
 		}
 		else
@@ -256,27 +256,58 @@ void LLSyntaxIdLSL::initialise()
 			LL_WARNS("LSLSyntax")
 					<< "ID is null so SyntaxID does not need to be processed!"
 					<< LL_ENDL;
-			openKeywordsFile();
+			loadKeywordsFileIntoLLSD();
 		}
-		// TODO add a signal here to tell the editor the hash has changed?
+		mFileNameCurrent = mFileNameNew;
+		mSyntaxIdCurrent = mSyntaxIdNew;
 	}
 	else
 	{
 		LL_WARNS("LSLSyntax")
 				<< "No change to Syntax! Nothing to see here. Move along now!"
 				<< LL_ENDL;
-
 	}
-	//LLEnvManagerNew::instance().setRegionChangeCallback(boost::bind(&LLSyntaxIdLSL::checkSyntaxIdChange(), this));
 }
 
 //-----------------------------------------------------------------------------
-// openKeywordsFile
+// loadKeywordsFileIntoLLSD
 //-----------------------------------------------------------------------------
-void LLSyntaxIdLSL::openKeywordsFile()
+/**
+ * @brief	Load xml serialised LLSD
+ * @desc	Opens the specified filespec and attempts to deserialise the
+ *			contained data to the specified LLSD object.
+ * @return	Returns boolean true/false indicating success or failure.
+ */
+bool LLSyntaxIdLSL::loadKeywordsFileIntoLLSD()
 {
 	LL_WARNS("LSLSyntax")
 			<< "Trying to open default or cached keyword file ;-)"
 			<< LL_ENDL;
-	// TODO Open the file and load LLSD into sKeywordsXml
+
+	bool loaded = false;
+	LLSD content;
+	llifstream file;
+	file.open(mFullFileSpec);
+	if (file.is_open())
+	{
+		loaded = (bool)LLSDSerialize::fromXML(content, file);
+		if (!loaded)
+		{
+			LL_WARNS("LSLSyntax") << "Unable to deserialise file: " << filename << LL_ENDL;
+
+			// Is this the right thing to do, or should we leave the old content
+			// even if it isn't entirely accurate anymore?
+			sKeywordsXml = LLSD.emptyMap();
+		}
+		else
+		{
+			sKeywordsXml = content;
+			LL_INFOS("LSLSyntax") << "Deserialised file: " << filename << LL_ENDL;
+		}
+	}
+	else
+	{
+		LL_WARNS("LSLSyntax") << "Unable to open file: " << filename << LL_ENDL;
+	}
+	return loaded;
 }
diff --git a/indra/newview/llsyntaxid.h b/indra/newview/llsyntaxid.h
index d9f2572863..50013a8380 100644
--- a/indra/newview/llsyntaxid.h
+++ b/indra/newview/llsyntaxid.h
@@ -39,6 +39,7 @@ public:
 	bool			checkSyntaxIdChanged();
 	std::string		getFileNameCurrent()	const { return mFileNameCurrent; }
 	ELLPath			getFilePath()			const { return mFilePath; }
+	LLSD			getKeywordsXML()		const { return sKeywordsXml; }
 	LLUUID			getSyntaxId()			const { return mSyntaxIdCurrent; }
 
 	void			initialise();
@@ -50,7 +51,8 @@ protected:
 	std::string		buildFileNameNew();
 	std::string		buildFullFileSpec();
 	void			fetchKeywordsFile();
-	void			openKeywordsFile();
+	//void			openKeywordsFile();
+	bool			loadKeywordsFileIntoLLSD();
 	void			setSyntaxId(LLUUID SyntaxId) { mSyntaxIdCurrent = SyntaxId; }
 	void			setFileNameCurrent(std::string& name) { mFileNameCurrent = name; }
 	void			setFileNameDefault(std::string& name) { mFileNameDefault = name; }
-- 
cgit v1.2.3


From bea2e9822b52b66e3644925143b852526c669248 Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Sat, 9 Nov 2013 11:51:45 +0000
Subject: Fixing some references to 'filename' I forgot to rename to
 mFullFileSpec.

---
 indra/newview/llsyntaxid.cpp | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llsyntaxid.cpp b/indra/newview/llsyntaxid.cpp
index 00e6086546..c5960fb16e 100644
--- a/indra/newview/llsyntaxid.cpp
+++ b/indra/newview/llsyntaxid.cpp
@@ -293,7 +293,7 @@ bool LLSyntaxIdLSL::loadKeywordsFileIntoLLSD()
 		loaded = (bool)LLSDSerialize::fromXML(content, file);
 		if (!loaded)
 		{
-			LL_WARNS("LSLSyntax") << "Unable to deserialise file: " << filename << LL_ENDL;
+			LL_WARNS("LSLSyntax") << "Unable to deserialise file: " << mFullFileSpec << LL_ENDL;
 
 			// Is this the right thing to do, or should we leave the old content
 			// even if it isn't entirely accurate anymore?
@@ -302,12 +302,12 @@ bool LLSyntaxIdLSL::loadKeywordsFileIntoLLSD()
 		else
 		{
 			sKeywordsXml = content;
-			LL_INFOS("LSLSyntax") << "Deserialised file: " << filename << LL_ENDL;
+			LL_INFOS("LSLSyntax") << "Deserialised file: " << mFullFileSpec << LL_ENDL;
 		}
 	}
 	else
 	{
-		LL_WARNS("LSLSyntax") << "Unable to open file: " << filename << LL_ENDL;
+		LL_WARNS("LSLSyntax") << "Unable to open file: " << mFullFileSpec << LL_ENDL;
 	}
 	return loaded;
 }
-- 
cgit v1.2.3


From a4c5b5c416e9a289fa2caa6d61d05e1f68605b5a Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Sun, 10 Nov 2013 17:39:34 +0000
Subject: Fixing missing parenthesis.

---
 indra/newview/llsyntaxid.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'indra')

diff --git a/indra/newview/llsyntaxid.cpp b/indra/newview/llsyntaxid.cpp
index c5960fb16e..2388f1c5ef 100644
--- a/indra/newview/llsyntaxid.cpp
+++ b/indra/newview/llsyntaxid.cpp
@@ -297,7 +297,7 @@ bool LLSyntaxIdLSL::loadKeywordsFileIntoLLSD()
 
 			// Is this the right thing to do, or should we leave the old content
 			// even if it isn't entirely accurate anymore?
-			sKeywordsXml = LLSD.emptyMap();
+			sKeywordsXml = LLSD().emptyMap();
 		}
 		else
 		{
-- 
cgit v1.2.3


From da0cd7b845028f679e6ce7243715d52481f0c430 Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Sun, 10 Nov 2013 17:43:17 +0000
Subject: Adding getter for mFullFileSpec, shortening loadKeywordsFileIntoLLSD
 to loadKeywordsIntoLLSD.

---
 indra/newview/llsyntaxid.cpp | 6 +++---
 indra/newview/llsyntaxid.h   | 4 ++--
 2 files changed, 5 insertions(+), 5 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llsyntaxid.cpp b/indra/newview/llsyntaxid.cpp
index 2388f1c5ef..18869c215d 100644
--- a/indra/newview/llsyntaxid.cpp
+++ b/indra/newview/llsyntaxid.cpp
@@ -248,7 +248,7 @@ void LLSyntaxIdLSL::initialise()
 				LL_WARNS("LSLSyntax")
 						<< "Filename is cached, no need to download!"
 						<< LL_ENDL;
-				loadKeywordsFileIntoLLSD();
+				loadKeywordsIntoLLSD();
 			}
 		}
 		else
@@ -256,7 +256,7 @@ void LLSyntaxIdLSL::initialise()
 			LL_WARNS("LSLSyntax")
 					<< "ID is null so SyntaxID does not need to be processed!"
 					<< LL_ENDL;
-			loadKeywordsFileIntoLLSD();
+			loadKeywordsIntoLLSD();
 		}
 		mFileNameCurrent = mFileNameNew;
 		mSyntaxIdCurrent = mSyntaxIdNew;
@@ -278,7 +278,7 @@ void LLSyntaxIdLSL::initialise()
  *			contained data to the specified LLSD object.
  * @return	Returns boolean true/false indicating success or failure.
  */
-bool LLSyntaxIdLSL::loadKeywordsFileIntoLLSD()
+bool LLSyntaxIdLSL::loadKeywordsIntoLLSD()
 {
 	LL_WARNS("LSLSyntax")
 			<< "Trying to open default or cached keyword file ;-)"
diff --git a/indra/newview/llsyntaxid.h b/indra/newview/llsyntaxid.h
index 50013a8380..fc875a835f 100644
--- a/indra/newview/llsyntaxid.h
+++ b/indra/newview/llsyntaxid.h
@@ -39,6 +39,7 @@ public:
 	bool			checkSyntaxIdChanged();
 	std::string		getFileNameCurrent()	const { return mFileNameCurrent; }
 	ELLPath			getFilePath()			const { return mFilePath; }
+	std::string		getFileSpec()			const { return mFullFileSpec; }
 	LLSD			getKeywordsXML()		const { return sKeywordsXml; }
 	LLUUID			getSyntaxId()			const { return mSyntaxIdCurrent; }
 
@@ -51,8 +52,7 @@ protected:
 	std::string		buildFileNameNew();
 	std::string		buildFullFileSpec();
 	void			fetchKeywordsFile();
-	//void			openKeywordsFile();
-	bool			loadKeywordsFileIntoLLSD();
+	bool			loadKeywordsIntoLLSD();
 	void			setSyntaxId(LLUUID SyntaxId) { mSyntaxIdCurrent = SyntaxId; }
 	void			setFileNameCurrent(std::string& name) { mFileNameCurrent = name; }
 	void			setFileNameDefault(std::string& name) { mFileNameDefault = name; }
-- 
cgit v1.2.3


From 06ed74f177983e2eb170426712f422253a0b48e7 Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Sun, 10 Nov 2013 18:29:22 +0000
Subject: Tidying up llsyntaxid files

---
 indra/newview/llsyntaxid.cpp | 40 ++++++++++++++---------------
 indra/newview/llsyntaxid.h   | 60 ++++++++++++++++++++++++++------------------
 2 files changed, 54 insertions(+), 46 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llsyntaxid.cpp b/indra/newview/llsyntaxid.cpp
index 18869c215d..5d8879195a 100644
--- a/indra/newview/llsyntaxid.cpp
+++ b/indra/newview/llsyntaxid.cpp
@@ -28,9 +28,9 @@
 
 #include "llviewerprecompiledheaders.h"
 
-#include "llhttpclient.h"
 #include "llagent.h"
 #include "llappviewer.h"
+#include "llhttpclient.h"
 #include "llsdserialize.h"
 #include "llsyntaxid.h"
 
@@ -46,10 +46,9 @@ fetchKeywordsFileResponder::fetchKeywordsFileResponder(std::string filespec)
 			<< LL_ENDL;
 }
 
-
 void fetchKeywordsFileResponder::errorWithContent(U32 status,
-						  const std::string& reason,
-						  const LLSD& content)
+												  const std::string& reason,
+												  const LLSD& content)
 {
 	LL_WARNS("LSLSyntax")
 			<< "fetchKeywordsFileResponder error [status:"
@@ -67,7 +66,7 @@ void fetchKeywordsFileResponder::result(const LLSD& content_ref)
 	LLSDSerialize::toPrettyXML(content_ref, str);
 	const std::string xml = str.str();
 
-	// save the str to disc
+	// save the str to disc, usually to the cache.
 	llofstream file(mFileSpec, std::ios_base::out);
 	file.write(xml.c_str(), str.str().size());
 	file.close();
@@ -78,8 +77,6 @@ void fetchKeywordsFileResponder::result(const LLSD& content_ref)
 }
 
 
-LLSD LLSyntaxIdLSL::sKeywordsXml;
-
 //-----------------------------------------------------------------------------
 // LLSyntaxIdLSL
 //-----------------------------------------------------------------------------
@@ -98,6 +95,8 @@ LLSyntaxIdLSL::LLSyntaxIdLSL() :
 	mFileNameCurrent = mFileNameDefault;
 }
 
+LLSD LLSyntaxIdLSL::sKeywordsXml;
+
 std::string LLSyntaxIdLSL::buildFileNameNew()
 {
 	std::string filename = "keywords_lsl_";
@@ -151,7 +150,7 @@ bool LLSyntaxIdLSL::checkSyntaxIdChanged()
 				if (mSyntaxIdCurrent != mSyntaxIdNew)
 				{
 					LL_WARNS("LSLSyntax")
-						<< "Region changed to '" << region->getName()
+						<< "Region is '" << region->getName()
 						<< "' it has LSLSyntaxId capability, and the new hash is '"
 						<< mSyntaxIdNew << "'"
 						<< LL_ENDL;
@@ -161,7 +160,7 @@ bool LLSyntaxIdLSL::checkSyntaxIdChanged()
 				else
 				{
 					LL_WARNS("LSLSyntax")
-						<< "Region changed to '" << region->getName()
+						<< "Region is '" << region->getName()
 						<< "' it has the same LSLSyntaxId! Leaving hash as '"
 						<< mSyntaxIdCurrent << "'"
 						<< LL_ENDL;
@@ -173,7 +172,7 @@ bool LLSyntaxIdLSL::checkSyntaxIdChanged()
 				if ( mSyntaxIdCurrent.isNull() )
 				{
 					LL_WARNS("LSLSyntax")
-						<< "Region changed to '" << region->getName()
+						<< "Region is '" << region->getName()
 						<< " it does not have LSLSyntaxId capability, remaining with default keywords file!"
 						<< LL_ENDL;
 				}
@@ -182,7 +181,7 @@ bool LLSyntaxIdLSL::checkSyntaxIdChanged()
 					mSyntaxIdNew = LLUUID();
 
 					LL_WARNS("LSLSyntax")
-						<< "Region changed to '" << region->getName()
+						<< "Region is '" << region->getName()
 						<< " it does not have LSLSyntaxId capability, using default keywords file!"
 						<< LL_ENDL;
 
@@ -201,7 +200,6 @@ void LLSyntaxIdLSL::fetchKeywordsFile()
 {
 	if ( !mCapabilityURL.empty() )
 	{
-		//buildFullFileSpec();
 		LLHTTPClient::get(mCapabilityURL,
 						  new fetchKeywordsFileResponder(mFullFileSpec),
 						  LLSD(), 30.f
@@ -225,28 +223,28 @@ void LLSyntaxIdLSL::initialise()
 	if (checkSyntaxIdChanged())
 	{
 		LL_WARNS("LSLSyntax")
-				<< "Change to syntax, setting up new file."
+				<< "Change to LSL version, getting appropriate file."
 				<< LL_ENDL;
 
-		// Need a full spec built regardless of file source
+		// Need a full spec regardless of file source, so build it now.
 		buildFullFileSpec();
 		if ( !mSyntaxIdNew.isNull() )
 		{
 			LL_WARNS("LSLSyntax")
-					<< "ID is not null so must be processed!"
+					<< "We have an ID for the version, so we will process it!"
 					<< LL_ENDL;
 
 			if ( !gDirUtilp->fileExists(mFullFileSpec) )
 			{ // Does not exist, so fetch it from the capability
 				fetchKeywordsFile();
 				LL_WARNS("LSLSyntax")
-						<< "Filename is not cached, we will try to download it!"
+						<< "File is not cached, we will try to download it!"
 						<< LL_ENDL;
 			}
 			else
 			{
 				LL_WARNS("LSLSyntax")
-						<< "Filename is cached, no need to download!"
+						<< "File is cached, no need to download!"
 						<< LL_ENDL;
 				loadKeywordsIntoLLSD();
 			}
@@ -254,7 +252,7 @@ void LLSyntaxIdLSL::initialise()
 		else
 		{ // Need to open the default
 			LL_WARNS("LSLSyntax")
-					<< "ID is null so SyntaxID does not need to be processed!"
+					<< "ID is null so we will use the default file!"
 					<< LL_ENDL;
 			loadKeywordsIntoLLSD();
 		}
@@ -263,8 +261,8 @@ void LLSyntaxIdLSL::initialise()
 	}
 	else
 	{
-		LL_WARNS("LSLSyntax")
-				<< "No change to Syntax! Nothing to see here. Move along now!"
+		LL_INFOS("LSLSyntax")
+				<< "No change to Syntax! Nothing to see. Move along now!"
 				<< LL_ENDL;
 	}
 }
@@ -281,7 +279,7 @@ void LLSyntaxIdLSL::initialise()
 bool LLSyntaxIdLSL::loadKeywordsIntoLLSD()
 {
 	LL_WARNS("LSLSyntax")
-			<< "Trying to open default or cached keyword file ;-)"
+			<< "Trying to open cached or default keyword file ;-)"
 			<< LL_ENDL;
 
 	bool loaded = false;
diff --git a/indra/newview/llsyntaxid.h b/indra/newview/llsyntaxid.h
index fc875a835f..472e88744f 100644
--- a/indra/newview/llsyntaxid.h
+++ b/indra/newview/llsyntaxid.h
@@ -11,28 +11,61 @@
 #include "llhttpclient.h"
 #include "llviewerregion.h"
 
-
+/**
+ * @file  llsyntaxid.h
+ * @brief Handles responses for the LSLSyntax capability's get call.
+ */
 class fetchKeywordsFileResponder : public LLHTTPClient::Responder
 {
 public:
 	std::string	mFileSpec;
 
+	/**
+	 * @brief fetchKeywordsFileResponder
+	 * @param filespec	File path and name of where to save the returned data
+	 */
 	fetchKeywordsFileResponder(std::string filespec);
 
 	void errorWithContent(U32 status,
 						const std::string& reason,
 						const LLSD& content);
 
+	/**
+	 * @brief Saves the returned file to the location provided at instantiation.
+	 * @param content_ref	The LSL syntax file for the sim.
+	 */
 	void result(const LLSD& content_ref);
 };
 
 
 /**
  * @file llsyntaxid.h
- * @brief The LLSyntaxIdLSL class
+ * @brief Tracks the file needed to decorate the current sim's version of LSL.
  */
 class LLSyntaxIdLSL
 {
+public:
+
+
+protected:
+	LLViewerRegion*	region;
+
+
+private:
+	std::string		mCapabilityName;
+	std::string		mCapabilityURL;
+	std::string		mFileNameCurrent;
+	std::string		mFileNameDefault;
+	std::string		mFileNameNew;
+	ELLPath			mFilePath;
+	std::string		mFullFileSpec;
+	std::string		mSimulatorFeature;
+	LLUUID			mSyntaxIdCurrent;
+	LLUUID			mSyntaxIdNew;
+
+	static LLSD		sKeywordsXml;
+
+
 public:
 	LLSyntaxIdLSL();
 
@@ -58,27 +91,4 @@ protected:
 	void			setFileNameDefault(std::string& name) { mFileNameDefault = name; }
 	void			setFileNameNew(std::string name) { mFileNameNew = name; }
 	void			setSimulatorFeatureName(const std::string& name) { mSimulatorFeature = name; }
-
-
-//public:
-
-
-protected:
-	LLViewerRegion*	region;
-
-
-private:
-	std::string		mCapabilityName;
-	std::string		mCapabilityURL;
-	std::string		mFileNameCurrent;
-	std::string		mFileNameDefault;
-	std::string		mFileNameNew;
-	ELLPath			mFilePath;
-	std::string		mFullFileSpec;
-	std::string		mSimulatorFeature;
-	LLUUID			mSyntaxIdCurrent;
-	LLUUID			mSyntaxIdNew;
-
-	static LLSD		sKeywordsXml;
-
 };
-- 
cgit v1.2.3


From 5e27952ee4698006c86ebdca60c4eab305ddebac Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Sun, 10 Nov 2013 20:24:13 +0000
Subject: storm-1831 Switch to use the llsyntaxid keywords LLSD directly

---
 indra/llui/llkeywords.cpp         | 15 +++------------
 indra/llui/llkeywords.h           |  2 +-
 indra/newview/llpreviewscript.cpp |  3 +--
 3 files changed, 5 insertions(+), 15 deletions(-)

(limited to 'indra')

diff --git a/indra/llui/llkeywords.cpp b/indra/llui/llkeywords.cpp
index 687c2fb31d..ac95a20588 100755
--- a/indra/llui/llkeywords.cpp
+++ b/indra/llui/llkeywords.cpp
@@ -198,19 +198,10 @@ LLColor4 LLKeywords::getColorGroup(const std::string key_in)
 	return LLUIColorTable::instance().getColor(ColourGroup);
 }
 
-BOOL LLKeywords::initialise(ELLPath path, const std::string filename)
+bool LLKeywords::initialise(LLSD SyntaxXML)
 {
-	mReady = false;
-	setFilenameSyntax( gDirUtilp->getExpandedFilename(path, filename) );
-
-	if (! loadIntoLLSD(mFilenameSyntax, mSyntax) )
-	{
-		LL_ERRS("") << "Failed to load syntax data from '" << mFilenameSyntax << "', cannot continue!" << LL_ENDL;
-	}
-	else
-	{
-		mReady = true;
-	}
+	mSyntax = SyntaxXML;
+	mLoaded = mReady = true;
 	return mReady;
 }
 
diff --git a/indra/llui/llkeywords.h b/indra/llui/llkeywords.h
index 1bd23549d2..24a0450912 100755
--- a/indra/llui/llkeywords.h
+++ b/indra/llui/llkeywords.h
@@ -117,7 +117,7 @@ public:
 	void		setFilenameSyntax(const std::string filename) { mFilenameSyntax = filename; }
 
 	void		findSegments(std::vector<LLTextSegmentPtr> *seg_list, const LLWString& text, const LLColor4 &defaultColor, class LLTextEditor& editor );
-	BOOL		initialise(ELLPath path, const std::string filename);
+	bool		initialise(LLSD SyntaxXML);
 	std::string	processColors();
 	std::string	processColors(LLSD &data, const std::string strGroup);
 	void		processTokens();
diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp
index 5f23249c8d..b464845256 100755
--- a/indra/newview/llpreviewscript.cpp
+++ b/indra/newview/llpreviewscript.cpp
@@ -409,8 +409,7 @@ BOOL LLScriptEdCore::postBuild()
 // Make this work ;-)
 	mSyntaxIdLSL.initialise();
 	// ...
-	mEditor->mKeywords.initialise(LL_PATH_APP_SETTINGS, "keywords_lsl_default.xml");
-//	mEditor->mKeywords.initialise(mSyntaxIdLSL.getFullFileSpec());
+	mEditor->mKeywords.initialise(mSyntaxIdLSL.getKeywordsXML());
 
 	// FIX: Refactor LLTextEditor::loadKeywords so these can be removed.
 	std::vector<std::string> funcs;
-- 
cgit v1.2.3


From 488964157cb02b44ac9c72bb6c57e47c2b21ee53 Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Sun, 10 Nov 2013 21:57:29 +0000
Subject: Moving keywords code into its own method.

---
 indra/newview/llpreviewscript.cpp | 87 +++++++++++++++++++++------------------
 indra/newview/llpreviewscript.h   |  1 +
 2 files changed, 47 insertions(+), 41 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp
index b464845256..0cf8dbe9c5 100755
--- a/indra/newview/llpreviewscript.cpp
+++ b/indra/newview/llpreviewscript.cpp
@@ -406,53 +406,58 @@ BOOL LLScriptEdCore::postBuild()
 
 	initMenu();
 
-// Make this work ;-)
-	mSyntaxIdLSL.initialise();
-	// ...
-	mEditor->mKeywords.initialise(mSyntaxIdLSL.getKeywordsXML());
-
-	// FIX: Refactor LLTextEditor::loadKeywords so these can be removed.
-	std::vector<std::string> funcs;
-	std::vector<std::string> tooltips;
-	
-	LLColor3 color(0.5f, 0.0f, 0.15f);
-	mEditor->loadKeywords(gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS,"keywords.ini"), funcs, tooltips, color);
-
-	std::vector<std::string> primary_keywords;
-	std::vector<std::string> secondary_keywords;
-	LLKeywordToken *token;
-	LLKeywords::keyword_iterator_t token_it;
-	for (token_it = mEditor->keywordsBegin(); token_it != mEditor->keywordsEnd(); ++token_it)
-	{
-		token = token_it->second;
-		// FIX: change this to use the new Token Type enum entries.
-		if (token->getColor() == color) // Wow, what a disgusting hack.
-		{
-			primary_keywords.push_back( wstring_to_utf8str(token->getToken()) );
-		}
-		else
+	return initKeywords();
+}
+
+bool LLScriptEdCore::initKeywords()
+{
+	// Make this work ;-)
+		mSyntaxIdLSL.initialise();
+		// ...
+		mEditor->mKeywords.initialise(mSyntaxIdLSL.getKeywordsXML());
+
+		// FIX: Refactor LLTextEditor::loadKeywords so these can be removed.
+		//std::vector<std::string> funcs;
+		//std::vector<std::string> tooltips;
+
+		LLColor3 color(0.5f, 0.0f, 0.15f);
+		mEditor->loadKeywords();
+
+		std::vector<std::string> primary_keywords;
+		std::vector<std::string> secondary_keywords;
+		LLKeywordToken *token;
+		LLKeywords::keyword_iterator_t token_it;
+		for (token_it = mEditor->keywordsBegin(); token_it != mEditor->keywordsEnd(); ++token_it)
 		{
-			secondary_keywords.push_back( wstring_to_utf8str(token->getToken()) );
+			token = token_it->second;
+			// FIX: change this to use the new Token Type enum entries.
+			if (token->getColor() == color) // Wow, what a disgusting hack.
+			{
+				primary_keywords.push_back( wstring_to_utf8str(token->getToken()) );
+			}
+			else
+			{
+				secondary_keywords.push_back( wstring_to_utf8str(token->getToken()) );
+			}
 		}
-	}
 
-	// Case-insensitive dictionary sort for primary keywords. We don't sort the secondary
-	// keywords. They're intelligently grouped in keywords.ini.
-	std::stable_sort( primary_keywords.begin(), primary_keywords.end(), LLSECKeywordCompare() );
+		// Case-insensitive dictionary sort for primary keywords. We don't sort the secondary
+		// keywords. They're intelligently grouped in keywords.ini.
+		std::stable_sort( primary_keywords.begin(), primary_keywords.end(), LLSECKeywordCompare() );
 
-	for (std::vector<std::string>::const_iterator iter= primary_keywords.begin();
-			iter!= primary_keywords.end(); ++iter)
-	{
-		mFunctions->add(*iter);
-	}
+		for (std::vector<std::string>::const_iterator iter= primary_keywords.begin();
+				iter!= primary_keywords.end(); ++iter)
+		{
+			mFunctions->add(*iter);
+		}
 
-	for (std::vector<std::string>::const_iterator iter= secondary_keywords.begin();
-			iter!= secondary_keywords.end(); ++iter)
-	{
-		mFunctions->add(*iter);
-	}
+		for (std::vector<std::string>::const_iterator iter= secondary_keywords.begin();
+				iter!= secondary_keywords.end(); ++iter)
+		{
+			mFunctions->add(*iter);
+		}
 
-	return TRUE;
+		return TRUE;
 }
 
 void LLScriptEdCore::initMenu()
diff --git a/indra/newview/llpreviewscript.h b/indra/newview/llpreviewscript.h
index 73ccaab0b8..bc0256703e 100755
--- a/indra/newview/llpreviewscript.h
+++ b/indra/newview/llpreviewscript.h
@@ -78,6 +78,7 @@ public:
 	~LLScriptEdCore();
 	
 	void			initMenu();
+	bool			initKeywords();
 
 	virtual void	draw();
 	/*virtual*/	BOOL	postBuild();
-- 
cgit v1.2.3


From dc317ed70ac8b8344a745b4f43116460efdfdbca Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Sun, 10 Nov 2013 21:58:17 +0000
Subject: Refactoring load routines to remove uneeded methods

---
 indra/llui/llkeywords.cpp   | 36 ------------------------------------
 indra/llui/lltexteditor.cpp | 24 ++++++++++--------------
 indra/llui/lltexteditor.h   |  5 +----
 3 files changed, 11 insertions(+), 54 deletions(-)

(limited to 'indra')

diff --git a/indra/llui/llkeywords.cpp b/indra/llui/llkeywords.cpp
index ac95a20588..65ede3e46f 100755
--- a/indra/llui/llkeywords.cpp
+++ b/indra/llui/llkeywords.cpp
@@ -205,42 +205,6 @@ bool LLKeywords::initialise(LLSD SyntaxXML)
 	return mReady;
 }
 
-BOOL LLKeywords::loadFromFile()
-{
-	processTokens();
-	return true;
-}
-
-/**
- * @brief	Load xml serialised LLSD
- * @desc	Opens the specified filespec and attempts to deserialise the
- *			contained data to the specified LLSD object.
- * @return	Returns boolean true/false indicating success or failure.
- */
-BOOL LLKeywords::loadIntoLLSD(const std::string& filename, LLSD& data)
-{
-	mLoaded = false;
-	llifstream file;
-	file.open(filename);
-	if(file.is_open())
-	{
-		mLoaded = (BOOL)LLSDSerialize::fromXML(data, file);
-		if (!mLoaded)
-		{
-			LL_WARNS("") << "Unable to deserialise file: " << filename << LL_ENDL;
-		}
-		else
-		{
-			LL_INFOS("") << "Deserialised file: " << filename << LL_ENDL;
-		}
-	}
-	else
-	{
-		LL_WARNS("") << "Unable to open file: " << filename << LL_ENDL;
-	}
-	return mLoaded;
-}
-
 ///**
 // * @brief Start processing the colour LLSD from its beginning.
 // *
diff --git a/indra/llui/lltexteditor.cpp b/indra/llui/lltexteditor.cpp
index 4bab68b339..b6c2e20a9d 100755
--- a/indra/llui/lltexteditor.cpp
+++ b/indra/llui/lltexteditor.cpp
@@ -2502,23 +2502,19 @@ BOOL LLTextEditor::tryToRevertToPristineState()
 
 
 static LLFastTimer::DeclareTimer FTM_SYNTAX_HIGHLIGHTING("Syntax Highlighting");
-void LLTextEditor::loadKeywords(const std::string& filename,
-								const std::vector<std::string>& funcs,
-								const std::vector<std::string>& tooltips,
-								const LLColor4& color)
+void LLTextEditor::loadKeywords()
 {
 	LLFastTimer ft(FTM_SYNTAX_HIGHLIGHTING);
-	if(mKeywords.loadFromFile())
-	{
-		segment_vec_t segment_list;
-		mKeywords.findSegments(&segment_list, getWText(), mDefaultColor.get(), *this);
+	mKeywords.processTokens();
 
-		mSegments.clear();
-		segment_set_t::iterator insert_it = mSegments.begin();
-		for (segment_vec_t::iterator list_it = segment_list.begin(); list_it != segment_list.end(); ++list_it)
-		{
-			insert_it = mSegments.insert(insert_it, *list_it);
-		}
+	segment_vec_t segment_list;
+	mKeywords.findSegments(&segment_list, getWText(), mDefaultColor.get(), *this);
+
+	mSegments.clear();
+	segment_set_t::iterator insert_it = mSegments.begin();
+	for (segment_vec_t::iterator list_it = segment_list.begin(); list_it != segment_list.end(); ++list_it)
+	{
+		insert_it = mSegments.insert(insert_it, *list_it);
 	}
 }
 
diff --git a/indra/llui/lltexteditor.h b/indra/llui/lltexteditor.h
index 8cc0e03712..0b4a22b08b 100755
--- a/indra/llui/lltexteditor.h
+++ b/indra/llui/lltexteditor.h
@@ -187,10 +187,7 @@ public:
 	void			getCurrentLineAndColumn( S32* line, S32* col, BOOL include_wordwrap );
 
 	LLKeywords		mKeywords;
-	void			loadKeywords(const std::string& filename,
-								 const std::vector<std::string>& funcs,
-								 const std::vector<std::string>& tooltips,
-								 const LLColor4& func_color);
+	void			loadKeywords();
 	LLKeywords::keyword_iterator_t keywordsBegin()	{ return mKeywords.begin(); }
 	LLKeywords::keyword_iterator_t keywordsEnd()	{ return mKeywords.end(); }
 
-- 
cgit v1.2.3


From 009245510149c26337ac1cca64a367cd2234725b Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Sun, 10 Nov 2013 22:35:49 +0000
Subject: Removing unused getter/setter and property for mFilenameSyntax,
 mReady.

---
 indra/llui/llkeywords.h | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

(limited to 'indra')

diff --git a/indra/llui/llkeywords.h b/indra/llui/llkeywords.h
index 24a0450912..f14605157d 100755
--- a/indra/llui/llkeywords.h
+++ b/indra/llui/llkeywords.h
@@ -113,8 +113,7 @@ public:
 	LLColor4	getColorGroup(const std::string key_in);
 	BOOL		loadFromFile();
 	BOOL		loadFromFile(const std::string& filename);
-	BOOL		isLoaded() const	{ return mLoaded; }
-	void		setFilenameSyntax(const std::string filename) { mFilenameSyntax = filename; }
+	bool		isLoaded() const	{ return mLoaded; }
 
 	void		findSegments(std::vector<LLTextSegmentPtr> *seg_list, const LLWString& text, const LLColor4 &defaultColor, class LLTextEditor& editor );
 	bool		initialise(LLSD SyntaxXML);
@@ -179,7 +178,7 @@ protected:
 	BOOL		loadIntoLLSD( const std::string& filename, LLSD& data );
 
 	LLSD		mColors;
-	BOOL		mLoaded;
+	bool		mLoaded;
 	LLSD		mSyntax;
 	word_token_map_t mWordTokenMap;
 	typedef std::deque<LLKeywordToken*> token_list_t;
@@ -194,9 +193,6 @@ protected:
 	std::string	getArguments(LLSD& args);
 
 private:
-	BOOL		ready() { return mReady; }
-	BOOL		mReady;
-	std::string	mFilenameSyntax;
 };
 
 #endif  // LL_LLKEYWORDS_H
-- 
cgit v1.2.3


From 1cf2acf6d70c5ce68d6faedffbbf2b070f2a6fd7 Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Sun, 10 Nov 2013 22:47:34 +0000
Subject: Fixing some small discrepencies.

---
 indra/newview/llpreviewscript.cpp | 15 +++++----------
 indra/newview/llpreviewscript.h   |  2 +-
 2 files changed, 6 insertions(+), 11 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp
index 0cf8dbe9c5..143703f60e 100755
--- a/indra/newview/llpreviewscript.cpp
+++ b/indra/newview/llpreviewscript.cpp
@@ -406,20 +406,16 @@ BOOL LLScriptEdCore::postBuild()
 
 	initMenu();
 
-	return initKeywords();
+	initKeywords();
+
+	return TRUE;
 }
 
-bool LLScriptEdCore::initKeywords()
+void LLScriptEdCore::initKeywords()
 {
-	// Make this work ;-)
 		mSyntaxIdLSL.initialise();
-		// ...
 		mEditor->mKeywords.initialise(mSyntaxIdLSL.getKeywordsXML());
 
-		// FIX: Refactor LLTextEditor::loadKeywords so these can be removed.
-		//std::vector<std::string> funcs;
-		//std::vector<std::string> tooltips;
-
 		LLColor3 color(0.5f, 0.0f, 0.15f);
 		mEditor->loadKeywords();
 
@@ -443,6 +439,7 @@ bool LLScriptEdCore::initKeywords()
 
 		// Case-insensitive dictionary sort for primary keywords. We don't sort the secondary
 		// keywords. They're intelligently grouped in keywords.ini.
+		// As we don't use keywords.ini, this is no longer true. Do we need to sort now?
 		std::stable_sort( primary_keywords.begin(), primary_keywords.end(), LLSECKeywordCompare() );
 
 		for (std::vector<std::string>::const_iterator iter= primary_keywords.begin();
@@ -456,8 +453,6 @@ bool LLScriptEdCore::initKeywords()
 		{
 			mFunctions->add(*iter);
 		}
-
-		return TRUE;
 }
 
 void LLScriptEdCore::initMenu()
diff --git a/indra/newview/llpreviewscript.h b/indra/newview/llpreviewscript.h
index bc0256703e..149c27461e 100755
--- a/indra/newview/llpreviewscript.h
+++ b/indra/newview/llpreviewscript.h
@@ -78,7 +78,7 @@ public:
 	~LLScriptEdCore();
 	
 	void			initMenu();
-	bool			initKeywords();
+	void			initKeywords();
 
 	virtual void	draw();
 	/*virtual*/	BOOL	postBuild();
-- 
cgit v1.2.3


From f6d8e55eb9e9ec377e3a9ce9b25de702c3239090 Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Mon, 11 Nov 2013 13:36:33 +0000
Subject: Fixing indentation of LLScriptEdCore::initKeywords

---
 indra/newview/llpreviewscript.cpp | 66 +++++++++++++++++++--------------------
 1 file changed, 33 insertions(+), 33 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp
index 143703f60e..34ad95e228 100755
--- a/indra/newview/llpreviewscript.cpp
+++ b/indra/newview/llpreviewscript.cpp
@@ -413,46 +413,46 @@ BOOL LLScriptEdCore::postBuild()
 
 void LLScriptEdCore::initKeywords()
 {
-		mSyntaxIdLSL.initialise();
-		mEditor->mKeywords.initialise(mSyntaxIdLSL.getKeywordsXML());
+	mSyntaxIdLSL.initialise();
+	mEditor->mKeywords.initialise(mSyntaxIdLSL.getKeywordsXML());
 
-		LLColor3 color(0.5f, 0.0f, 0.15f);
-		mEditor->loadKeywords();
+	LLColor3 color(0.5f, 0.0f, 0.15f);
+	mEditor->loadKeywords();
 
-		std::vector<std::string> primary_keywords;
-		std::vector<std::string> secondary_keywords;
-		LLKeywordToken *token;
-		LLKeywords::keyword_iterator_t token_it;
-		for (token_it = mEditor->keywordsBegin(); token_it != mEditor->keywordsEnd(); ++token_it)
+	std::vector<std::string> primary_keywords;
+	std::vector<std::string> secondary_keywords;
+	LLKeywordToken *token;
+	LLKeywords::keyword_iterator_t token_it;
+	for (token_it = mEditor->keywordsBegin(); token_it != mEditor->keywordsEnd(); ++token_it)
+	{
+		token = token_it->second;
+		// FIX: change this to use the new Token Type enum entries.
+		if (token->getColor() == color) // Wow, what a disgusting hack.
 		{
-			token = token_it->second;
-			// FIX: change this to use the new Token Type enum entries.
-			if (token->getColor() == color) // Wow, what a disgusting hack.
-			{
-				primary_keywords.push_back( wstring_to_utf8str(token->getToken()) );
-			}
-			else
-			{
-				secondary_keywords.push_back( wstring_to_utf8str(token->getToken()) );
-			}
+			primary_keywords.push_back( wstring_to_utf8str(token->getToken()) );
 		}
-
-		// Case-insensitive dictionary sort for primary keywords. We don't sort the secondary
-		// keywords. They're intelligently grouped in keywords.ini.
-		// As we don't use keywords.ini, this is no longer true. Do we need to sort now?
-		std::stable_sort( primary_keywords.begin(), primary_keywords.end(), LLSECKeywordCompare() );
-
-		for (std::vector<std::string>::const_iterator iter= primary_keywords.begin();
-				iter!= primary_keywords.end(); ++iter)
+		else
 		{
-			mFunctions->add(*iter);
+			secondary_keywords.push_back( wstring_to_utf8str(token->getToken()) );
 		}
+	}
 
-		for (std::vector<std::string>::const_iterator iter= secondary_keywords.begin();
-				iter!= secondary_keywords.end(); ++iter)
-		{
-			mFunctions->add(*iter);
-		}
+	// Case-insensitive dictionary sort for primary keywords. We don't sort the secondary
+	// keywords. They're intelligently grouped in keywords.ini.
+	// As we don't use keywords.ini, this is no longer true. Do we need to sort now?
+	std::stable_sort( primary_keywords.begin(), primary_keywords.end(), LLSECKeywordCompare() );
+
+	for (std::vector<std::string>::const_iterator iter= primary_keywords.begin();
+			iter!= primary_keywords.end(); ++iter)
+	{
+		mFunctions->add(*iter);
+	}
+
+	for (std::vector<std::string>::const_iterator iter= secondary_keywords.begin();
+			iter!= secondary_keywords.end(); ++iter)
+	{
+		mFunctions->add(*iter);
+	}
 }
 
 void LLScriptEdCore::initMenu()
-- 
cgit v1.2.3


From 3e41917403fb3519adac2343ca21a1f289596621 Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Mon, 11 Nov 2013 16:33:04 +0000
Subject: Removing no longer used member variable, adding method to reset the
 mLoaded status

---
 indra/llui/llkeywords.cpp | 4 ++--
 indra/llui/llkeywords.h   | 1 +
 2 files changed, 3 insertions(+), 2 deletions(-)

(limited to 'indra')

diff --git a/indra/llui/llkeywords.cpp b/indra/llui/llkeywords.cpp
index 65ede3e46f..6aeaf4798b 100755
--- a/indra/llui/llkeywords.cpp
+++ b/indra/llui/llkeywords.cpp
@@ -201,8 +201,8 @@ LLColor4 LLKeywords::getColorGroup(const std::string key_in)
 bool LLKeywords::initialise(LLSD SyntaxXML)
 {
 	mSyntax = SyntaxXML;
-	mLoaded = mReady = true;
-	return mReady;
+	mLoaded = true;
+	return mLoaded;
 }
 
 ///**
diff --git a/indra/llui/llkeywords.h b/indra/llui/llkeywords.h
index f14605157d..074cedfc63 100755
--- a/indra/llui/llkeywords.h
+++ b/indra/llui/llkeywords.h
@@ -110,6 +110,7 @@ public:
 	~LLKeywords();
 
 	void		addColorGroup(const std::string key_in, const LLColor4 color);
+	void		clearLoaded() { mLoaded = false; }
 	LLColor4	getColorGroup(const std::string key_in);
 	BOOL		loadFromFile();
 	BOOL		loadFromFile(const std::string& filename);
-- 
cgit v1.2.3


From 377eb5561f885902585830226fd82c4ceeec4e05 Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Mon, 11 Nov 2013 16:34:16 +0000
Subject: Renaming initKeywords to better reflect its intended use
 (onRegionChangeInitialiseKeywords)

---
 indra/newview/llpreviewscript.cpp | 8 +++++---
 indra/newview/llpreviewscript.h   | 2 +-
 2 files changed, 6 insertions(+), 4 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp
index 34ad95e228..19aab8f383 100755
--- a/indra/newview/llpreviewscript.cpp
+++ b/indra/newview/llpreviewscript.cpp
@@ -34,6 +34,7 @@
 #include "llcheckboxctrl.h"
 #include "llcombobox.h"
 #include "lldir.h"
+#include "llenvmanager.h"
 #include "llexternaleditor.h"
 #include "llfilepicker.h"
 #include "llfloaterreg.h"
@@ -406,13 +407,14 @@ BOOL LLScriptEdCore::postBuild()
 
 	initMenu();
 
-	initKeywords();
-
+	onRegionChangeInitialiseKeywords();
+	//LLEnvManagerNew::getInstance()->setRegionChangeCallback(boost::bind(&LLScriptEdCore::onRegionChangeInitialiseKeywords(), this));
 	return TRUE;
 }
 
-void LLScriptEdCore::initKeywords()
+void LLScriptEdCore::onRegionChangeInitialiseKeywords()
 {
+	mEditor->mKeywords.clearLoaded();
 	mSyntaxIdLSL.initialise();
 	mEditor->mKeywords.initialise(mSyntaxIdLSL.getKeywordsXML());
 
diff --git a/indra/newview/llpreviewscript.h b/indra/newview/llpreviewscript.h
index 149c27461e..2dd5a1b6a7 100755
--- a/indra/newview/llpreviewscript.h
+++ b/indra/newview/llpreviewscript.h
@@ -78,7 +78,7 @@ public:
 	~LLScriptEdCore();
 	
 	void			initMenu();
-	void			initKeywords();
+	void			onRegionChangeInitialiseKeywords();
 
 	virtual void	draw();
 	/*virtual*/	BOOL	postBuild();
-- 
cgit v1.2.3


From da240d7cf0cccf54a65ca906b612579932aa78e3 Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Mon, 11 Nov 2013 16:35:30 +0000
Subject: Commenting out an include for lscript_rt_interface.h, intend to track
 down and remove all of these, where appropriate, later.

---
 indra/newview/llfloaterbulkpermission.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'indra')

diff --git a/indra/newview/llfloaterbulkpermission.cpp b/indra/newview/llfloaterbulkpermission.cpp
index 76f62a7880..c3e9a6f5fb 100755
--- a/indra/newview/llfloaterbulkpermission.cpp
+++ b/indra/newview/llfloaterbulkpermission.cpp
@@ -36,7 +36,7 @@
 #include "llviewerobject.h"
 #include "llviewerobjectlist.h"
 #include "llviewerregion.h"
-#include "lscript_rt_interface.h"
+//#include "lscript_rt_interface.h"
 #include "llviewercontrol.h"
 #include "llviewerinventory.h"
 #include "llviewerobject.h"
-- 
cgit v1.2.3


From 56b1b35a18c21f6dad4147df35ba4594f31b67e3 Mon Sep 17 00:00:00 2001
From: Jonathan Yap <none@none>
Date: Mon, 11 Nov 2013 13:21:12 -0500
Subject: STORM-68 Send default permissions to simulator just once after
 logging in

---
 indra/newview/llfloaterperms.cpp | 19 ++++++++++++++++---
 indra/newview/llfloaterperms.h   |  3 ++-
 indra/newview/llviewerregion.cpp |  5 ++++-
 3 files changed, 22 insertions(+), 5 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llfloaterperms.cpp b/indra/newview/llfloaterperms.cpp
index c167c03c30..f5a9bc7bb5 100644
--- a/indra/newview/llfloaterperms.cpp
+++ b/indra/newview/llfloaterperms.cpp
@@ -97,6 +97,8 @@ U32 LLFloaterPerms::getNextOwnerPermsInverted(std::string prefix)
 	return flags;
 }
 
+static bool mCapSent = false;
+
 LLFloaterPermsDefault::LLFloaterPermsDefault(const LLSD& seed)
 	: LLFloater(seed)
 {
@@ -160,12 +162,18 @@ public:
 	}
 	void result(const LLSD& content)
 	{
-		LL_INFOS("FloaterPermsResponder") << "Set new values" << LL_ENDL;
+		LLFloaterPermsDefault::setCapSent(true);
+		LL_INFOS("FloaterPermsResponder") << "Sent default permissions to simulator" << LL_ENDL;
 	}
 };
 
-void LLFloaterPermsDefault::updateCap()
+void LLFloaterPermsDefault::updateCap(bool alwaysUpdate)
 {
+	if(!alwaysUpdate && mCapSent)
+	{
+		return;
+	}
+
 	std::string object_url = gAgent.getRegion()->getCapability("DefaultObjectPermissions");
 
 	if(!object_url.empty())
@@ -178,6 +186,11 @@ void LLFloaterPermsDefault::updateCap()
 	}
 }
 
+void LLFloaterPermsDefault::setCapSent(bool cap_sent)
+{
+	mCapSent = cap_sent;
+}
+
 void LLFloaterPermsDefault::ok()
 {
 //	Changes were already applied automatically to saved settings.
@@ -186,7 +199,7 @@ void LLFloaterPermsDefault::ok()
 
 // We know some setting has changed but not which one.  Just in case it was a setting for
 // object permissions tell the server what the values are.
-	updateCap();
+	updateCap(true);
 }
 
 void LLFloaterPermsDefault::cancel()
diff --git a/indra/newview/llfloaterperms.h b/indra/newview/llfloaterperms.h
index 5fe39a2c1b..a31d034ec8 100644
--- a/indra/newview/llfloaterperms.h
+++ b/indra/newview/llfloaterperms.h
@@ -59,7 +59,8 @@ public:
 	void onClickOK();
 	void onClickCancel();
 	void onCommitCopy(const LLSD& user_data);
-	static void updateCap();
+	static void updateCap(bool alwaysUpdate);
+	static void setCapSent(bool cap_sent);
 
 enum Categories
 {
diff --git a/indra/newview/llviewerregion.cpp b/indra/newview/llviewerregion.cpp
index 7b5721cb39..68db98580f 100644
--- a/indra/newview/llviewerregion.cpp
+++ b/indra/newview/llviewerregion.cpp
@@ -1487,7 +1487,10 @@ void LLViewerRegion::unpackRegionHandshake()
 	msg->addU32("Flags", 0x0 );
 	msg->sendReliable(host);
 
-	LLFloaterPermsDefault::updateCap();
+	// Supplying false in this call means only send the default permissions to the simulator if 
+	// it has never been sent.  Once this data is sent the simulator will pass this data to new
+	// simulators as the agent moves around.
+	LLFloaterPermsDefault::updateCap(false);
 }
 
 void LLViewerRegionImpl::buildCapabilityNames(LLSD& capabilityNames)
-- 
cgit v1.2.3


From df78262f0ac19c888bb3416da0df37ece77729dc Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Fri, 15 Nov 2013 23:17:06 +0000
Subject: Fixing the stupid mistake that prevented this from compiling. Thanks
 to Jonathan Yap for spotting it.

---
 indra/newview/llpreviewscript.cpp | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

(limited to 'indra')

diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp
index 19aab8f383..c662343238 100755
--- a/indra/newview/llpreviewscript.cpp
+++ b/indra/newview/llpreviewscript.cpp
@@ -407,8 +407,11 @@ BOOL LLScriptEdCore::postBuild()
 
 	initMenu();
 
+	// Intialise keyword highlighting for the current simulator's version of LSL
 	onRegionChangeInitialiseKeywords();
-	//LLEnvManagerNew::getInstance()->setRegionChangeCallback(boost::bind(&LLScriptEdCore::onRegionChangeInitialiseKeywords(), this));
+	// Set up a callback for region changes, so that highlighting is updated to the new region's version of LSL
+	LLEnvManagerNew::getInstance()->setRegionChangeCallback(boost::bind(&LLScriptEdCore::onRegionChangeInitialiseKeywords, this));
+
 	return TRUE;
 }
 
-- 
cgit v1.2.3


From 6b451ffdd6b1c75bd363864e48fbcf9b045dbd67 Mon Sep 17 00:00:00 2001
From: Oz Linden <oz@lindenlab.com>
Date: Mon, 18 Nov 2013 13:50:49 -0500
Subject: add license header

---
 indra/newview/llsyntaxid.h | 27 ++++++++++++++++++++++++++-
 1 file changed, 26 insertions(+), 1 deletion(-)

(limited to 'indra')

diff --git a/indra/newview/llsyntaxid.h b/indra/newview/llsyntaxid.h
index 472e88744f..a79a19be91 100644
--- a/indra/newview/llsyntaxid.h
+++ b/indra/newview/llsyntaxid.h
@@ -1,4 +1,29 @@
-
+/** 
+ * @file llagentdata.h
+ * @brief Contains commonly used agent data
+ * @author Ima Mechanique
+ *
+ * $LicenseInfo:firstyear=2013&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2013, Linden Research, Inc.
+ * 
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ * 
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ * 
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ * 
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
+ * $/LicenseInfo$
+ */
 #ifndef LLSYSNTAXIDLSL_H
 #define LLSYSNTAXIDLSL_H
 
-- 
cgit v1.2.3


From b7edc965bc77ab21e9a1e3f6b424299a50053529 Mon Sep 17 00:00:00 2001
From: Jonathan Yap <none@none>
Date: Tue, 19 Nov 2013 16:32:41 -0500
Subject: STORM-68 Place initial call to send cap in new, better location. Make
 processing of debug setting names a little more elegant.

---
 indra/newview/llagent.cpp        |  3 +++
 indra/newview/llfloaterperms.cpp | 50 ++++++++++++++++++++++------------------
 indra/newview/llfloaterperms.h   |  5 ++--
 indra/newview/llviewerregion.cpp |  1 -
 4 files changed, 34 insertions(+), 25 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp
index 3870a3be2e..f9301b61a1 100755
--- a/indra/newview/llagent.cpp
+++ b/indra/newview/llagent.cpp
@@ -737,6 +737,9 @@ void LLAgent::setRegion(LLViewerRegion *regionp)
 
 			// Update all of the regions.
 			LLWorld::getInstance()->updateAgentOffset(mAgentOriginGlobal);
+
+			// Send default object permissions to simulator
+			LLFloaterPermsDefault::updateCap(false);
 		}
 
 		// Pass new region along to metrics components that care about this level of detail.
diff --git a/indra/newview/llfloaterperms.cpp b/indra/newview/llfloaterperms.cpp
index f5a9bc7bb5..dc4969f5e6 100644
--- a/indra/newview/llfloaterperms.cpp
+++ b/indra/newview/llfloaterperms.cpp
@@ -1,7 +1,7 @@
 /** 
  * @file llfloaterperms.cpp
  * @brief Asset creation permission preferences.
- * @author Coco
+ * @author Jonathan Yap
  *
  * $LicenseInfo:firstyear=2001&license=viewerlgpl$
  * Second Life Viewer Source Code
@@ -43,7 +43,7 @@ LLFloaterPerms::LLFloaterPerms(const LLSD& seed)
 
 BOOL LLFloaterPerms::postBuild()
 {
-	return true;
+	return TRUE;
 }
 
 //static 
@@ -107,17 +107,23 @@ LLFloaterPermsDefault::LLFloaterPermsDefault(const LLSD& seed)
 	mCommitCallbackRegistrar.add("PermsDefault.Cancel", boost::bind(&LLFloaterPermsDefault::onClickCancel, this));
 }
 
+ 
+// String equivalents of enum Categories - initialization order must match enum order!
+const std::string LLFloaterPermsDefault::sCategoryNames[CAT_LAST] =
+{
+	"Objects",
+	"Uploads",
+	"Scripts",
+	"Notecards",
+	"Gestures",
+	"Wearables"
+};
+
+
 BOOL LLFloaterPermsDefault::postBuild()
 {
 	mCloseSignal.connect(boost::bind(&LLFloaterPermsDefault::cancel, this));
 
-	category_names[CAT_OBJECTS] = "Objects";
-	category_names[CAT_UPLOADS] = "Uploads";
-	category_names[CAT_SCRIPTS] = "Scripts";
-	category_names[CAT_NOTECARDS] = "Notecards";
-	category_names[CAT_GESTURES] = "Gestures";
-	category_names[CAT_WEARABLES] = "Wearables";
-
 	refresh();
 	
 	return true;
@@ -179,9 +185,9 @@ void LLFloaterPermsDefault::updateCap(bool alwaysUpdate)
 	if(!object_url.empty())
 	{
 		LLSD report = LLSD::emptyMap();
-		report["Group"] = (LLSD::Integer)LLFloaterPerms::getGroupPerms("Objects");
-		report["Everyone"] = (LLSD::Integer)LLFloaterPerms::getEveryonePerms("Objects");
-		report["NextOwner"] = (LLSD::Integer)LLFloaterPerms::getNextOwnerPerms("Objects");
+		report["Group"] = (LLSD::Integer)LLFloaterPerms::getGroupPerms(sCategoryNames[CAT_OBJECTS]);
+		report["Everyone"] = (LLSD::Integer)LLFloaterPerms::getEveryonePerms(sCategoryNames[CAT_OBJECTS]);
+		report["NextOwner"] = (LLSD::Integer)LLFloaterPerms::getNextOwnerPerms(sCategoryNames[CAT_OBJECTS]);
 		LLHTTPClient::post(object_url, report, new LLFloaterPermsResponder());
 	}
 }
@@ -206,11 +212,11 @@ void LLFloaterPermsDefault::cancel()
 {
 	for (U32 iter = CAT_OBJECTS; iter < CAT_LAST; iter++)
 	{
-		gSavedSettings.setBOOL(category_names[iter]+"NextOwnerCopy",		mNextOwnerCopy[iter]);
-		gSavedSettings.setBOOL(category_names[iter]+"NextOwnerModify",		mNextOwnerModify[iter]);
-		gSavedSettings.setBOOL(category_names[iter]+"NextOwnerTransfer",	mNextOwnerTransfer[iter]);
-		gSavedSettings.setBOOL(category_names[iter]+"ShareWithGroup",		mShareWithGroup[iter]);
-		gSavedSettings.setBOOL(category_names[iter]+"EveryoneCopy",			mEveryoneCopy[iter]);
+		gSavedSettings.setBOOL(sCategoryNames[iter]+"NextOwnerCopy",		mNextOwnerCopy[iter]);
+		gSavedSettings.setBOOL(sCategoryNames[iter]+"NextOwnerModify",		mNextOwnerModify[iter]);
+		gSavedSettings.setBOOL(sCategoryNames[iter]+"NextOwnerTransfer",	mNextOwnerTransfer[iter]);
+		gSavedSettings.setBOOL(sCategoryNames[iter]+"ShareWithGroup",		mShareWithGroup[iter]);
+		gSavedSettings.setBOOL(sCategoryNames[iter]+"EveryoneCopy",			mEveryoneCopy[iter]);
 	}
 }
 
@@ -218,10 +224,10 @@ void LLFloaterPermsDefault::refresh()
 {
 	for (U32 iter = CAT_OBJECTS; iter < CAT_LAST; iter++)
 	{
-		mShareWithGroup[iter]    = gSavedSettings.getBOOL(category_names[iter]+"ShareWithGroup");
-		mEveryoneCopy[iter]      = gSavedSettings.getBOOL(category_names[iter]+"EveryoneCopy");
-		mNextOwnerCopy[iter]     = gSavedSettings.getBOOL(category_names[iter]+"NextOwnerCopy");
-		mNextOwnerModify[iter]   = gSavedSettings.getBOOL(category_names[iter]+"NextOwnerModify");
-		mNextOwnerTransfer[iter] = gSavedSettings.getBOOL(category_names[iter]+"NextOwnerTransfer");
+		mShareWithGroup[iter]    = gSavedSettings.getBOOL(sCategoryNames[iter]+"ShareWithGroup");
+		mEveryoneCopy[iter]      = gSavedSettings.getBOOL(sCategoryNames[iter]+"EveryoneCopy");
+		mNextOwnerCopy[iter]     = gSavedSettings.getBOOL(sCategoryNames[iter]+"NextOwnerCopy");
+		mNextOwnerModify[iter]   = gSavedSettings.getBOOL(sCategoryNames[iter]+"NextOwnerModify");
+		mNextOwnerTransfer[iter] = gSavedSettings.getBOOL(sCategoryNames[iter]+"NextOwnerTransfer");
 	}
 }
diff --git a/indra/newview/llfloaterperms.h b/indra/newview/llfloaterperms.h
index a31d034ec8..b4b5d58aa5 100644
--- a/indra/newview/llfloaterperms.h
+++ b/indra/newview/llfloaterperms.h
@@ -1,7 +1,7 @@
 /** 
  * @file llfloaterperms.h
  * @brief Asset creation permission preferences.
- * @author Coco 
+ * @author Jonathan Yap
  *
  * $LicenseInfo:firstyear=2002&license=viewerlgpl$
  * Second Life Viewer Source Code
@@ -62,6 +62,7 @@ public:
 	static void updateCap(bool alwaysUpdate);
 	static void setCapSent(bool cap_sent);
 
+// Update instantiation of sCategoryNames in the .cpp file to match if you change this!
 enum Categories
 {
 	CAT_OBJECTS,
@@ -77,7 +78,7 @@ private:
 	LLFloaterPermsDefault(const LLSD& seed);
 	void refresh();
 
-	std::string category_names[CAT_LAST];
+	static const std::string sCategoryNames[CAT_LAST]; 
 
 	// cached values only for implementing cancel.
 	bool mShareWithGroup[CAT_LAST];
diff --git a/indra/newview/llviewerregion.cpp b/indra/newview/llviewerregion.cpp
index 68db98580f..21e0db46c9 100644
--- a/indra/newview/llviewerregion.cpp
+++ b/indra/newview/llviewerregion.cpp
@@ -1490,7 +1490,6 @@ void LLViewerRegion::unpackRegionHandshake()
 	// Supplying false in this call means only send the default permissions to the simulator if 
 	// it has never been sent.  Once this data is sent the simulator will pass this data to new
 	// simulators as the agent moves around.
-	LLFloaterPermsDefault::updateCap(false);
 }
 
 void LLViewerRegionImpl::buildCapabilityNames(LLSD& capabilityNames)
-- 
cgit v1.2.3


From 176901422f0122dad8d1e4e423d0bc19e9e4ad8a Mon Sep 17 00:00:00 2001
From: Jonathan Yap <none@none>
Date: Wed, 20 Nov 2013 10:21:41 -0500
Subject: STORM-68 Reapply changes to inventory processing lost in the merge.
 Move call to updateCap back to where it was.  The place it was moved to was
 too early in the login sequence and was causing a crash.

---
 indra/newview/llagent.cpp           |  3 --
 indra/newview/llfloaterperms.cpp    |  3 ++
 indra/newview/llviewerinventory.cpp | 99 ++++++++++++++++++++++++++++++-------
 indra/newview/llviewerinventory.h   |  2 +
 indra/newview/llviewerregion.cpp    |  1 +
 5 files changed, 88 insertions(+), 20 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp
index 7d2b4f6269..d210456993 100755
--- a/indra/newview/llagent.cpp
+++ b/indra/newview/llagent.cpp
@@ -898,9 +898,6 @@ void LLAgent::setRegion(LLViewerRegion *regionp)
 
 			// Update all of the regions.
 			LLWorld::getInstance()->updateAgentOffset(mAgentOriginGlobal);
-
-			// Send default object permissions to simulator
-			LLFloaterPermsDefault::updateCap(false);
 		}
 
 		// Pass new region along to metrics components that care about this level of detail.
diff --git a/indra/newview/llfloaterperms.cpp b/indra/newview/llfloaterperms.cpp
index dc4969f5e6..4923420a3e 100755
--- a/indra/newview/llfloaterperms.cpp
+++ b/indra/newview/llfloaterperms.cpp
@@ -175,15 +175,18 @@ public:
 
 void LLFloaterPermsDefault::updateCap(bool alwaysUpdate)
 {
+llwarns << "DBG start" << llendl;
 	if(!alwaysUpdate && mCapSent)
 	{
 		return;
 	}
 
+llwarns << "DBG getRegion" << llendl;
 	std::string object_url = gAgent.getRegion()->getCapability("DefaultObjectPermissions");
 
 	if(!object_url.empty())
 	{
+llwarns << "DBG post" << llendl;
 		LLSD report = LLSD::emptyMap();
 		report["Group"] = (LLSD::Integer)LLFloaterPerms::getGroupPerms(sCategoryNames[CAT_OBJECTS]);
 		report["Everyone"] = (LLSD::Integer)LLFloaterPerms::getEveryonePerms(sCategoryNames[CAT_OBJECTS]);
diff --git a/indra/newview/llviewerinventory.cpp b/indra/newview/llviewerinventory.cpp
index fff9821e86..5e3df16c38 100755
--- a/indra/newview/llviewerinventory.cpp
+++ b/indra/newview/llviewerinventory.cpp
@@ -65,6 +65,7 @@
 #include "llavataractions.h"
 #include "lllogininstance.h"
 #include "llfavoritesbar.h"
+#include "llfloaterperms.h"
 
 // Two do-nothing ops for use in callbacks.
 void no_op_inventory_func(const LLUUID&) {} 
@@ -989,6 +990,24 @@ void activate_gesture_cb(const LLUUID& inv_item)
 	LLGestureMgr::instance().activateGesture(inv_item);
 }
 
+void create_script_cb(const LLUUID& inv_item)
+{
+	if (inv_item.isNull())
+		return;
+
+	LLViewerInventoryItem* item = gInventory.getItem(inv_item);
+	if (!item) return;
+
+	LLPermissions perm = item->getPermissions();
+	perm.setMaskEveryone(LLFloaterPerms::getEveryonePerms("Scripts"));
+	perm.setMaskGroup(LLFloaterPerms::getGroupPerms("Scripts"));
+
+	item->setPermissions(perm);
+
+	gInventory.updateItem(item);
+	gInventory.notifyObservers();
+}
+
 void create_gesture_cb(const LLUUID& inv_item)
 {
 	if (inv_item.isNull())
@@ -998,6 +1017,13 @@ void create_gesture_cb(const LLUUID& inv_item)
 	
 	LLViewerInventoryItem* item = gInventory.getItem(inv_item);
 	if (!item) return;
+
+	LLPermissions perm = item->getPermissions();
+	perm.setMaskEveryone(LLFloaterPerms::getEveryonePerms("Gestures"));
+	perm.setMaskGroup(LLFloaterPerms::getGroupPerms("Gestures"));
+
+	item->setPermissions(perm);
+
     gInventory.updateItem(item);
     gInventory.notifyObservers();
 
@@ -1007,6 +1033,24 @@ void create_gesture_cb(const LLUUID& inv_item)
 }
 
 
+void create_notecard_cb(const LLUUID& inv_item)
+{
+	if (inv_item.isNull())
+		return;
+	
+	LLViewerInventoryItem* item = gInventory.getItem(inv_item);
+	if (!item) return;
+
+	LLPermissions perm = item->getPermissions();
+	perm.setMaskEveryone(LLFloaterPerms::getEveryonePerms("Notecards"));
+	perm.setMaskGroup(LLFloaterPerms::getGroupPerms("Notecards"));
+
+	item->setPermissions(perm);
+
+	gInventory.updateItem(item);
+	gInventory.notifyObservers();
+}
+
 LLInventoryCallbackManager gInventoryCallbacks;
 
 void create_inventory_item(const LLUUID& agent_id, const LLUUID& session_id,
@@ -1260,22 +1304,43 @@ void create_new_item(const std::string& name,
 	LLViewerAssetType::generateDescriptionFor(asset_type, desc);
 	next_owner_perm = (next_owner_perm) ? next_owner_perm : PERM_MOVE | PERM_TRANSFER;
 
-	
-	if (inv_type == LLInventoryType::IT_GESTURE)
-	{
-		LLPointer<LLInventoryCallback> cb = new LLBoostFuncInventoryCallback(create_gesture_cb);
-		create_inventory_item(gAgent.getID(), gAgent.getSessionID(),
-							  parent_id, LLTransactionID::tnull, name, desc, asset_type, inv_type,
-							  NOT_WEARABLE, next_owner_perm, cb);
-	}
-	else
+	LLPointer<LLInventoryCallback> cb = NULL;
+
+	switch (inv_type)
 	{
-		LLPointer<LLInventoryCallback> cb = NULL;
-		create_inventory_item(gAgent.getID(), gAgent.getSessionID(),
-							  parent_id, LLTransactionID::tnull, name, desc, asset_type, inv_type,
-							  NOT_WEARABLE, next_owner_perm, cb);
+		case LLInventoryType::IT_LSL:
+		{
+			cb = new LLBoostFuncInventoryCallback(create_script_cb);
+			next_owner_perm = LLFloaterPerms::getNextOwnerPerms("Scripts");
+			break;
+		}
+
+		case LLInventoryType::IT_GESTURE:
+		{
+			cb = new LLBoostFuncInventoryCallback(create_gesture_cb);
+			next_owner_perm = LLFloaterPerms::getNextOwnerPerms("Gestures");
+			break;
+		}
+
+		case LLInventoryType::IT_NOTECARD:
+		{
+			cb = new LLBoostFuncInventoryCallback(create_notecard_cb);
+			next_owner_perm = LLFloaterPerms::getNextOwnerPerms("Notecards");
+			break;
+		}
 	}
-	
+
+	create_inventory_item(gAgent.getID(),
+						  gAgent.getSessionID(),
+						  parent_id,
+						  LLTransactionID::tnull,
+						  name,
+						  desc,
+						  asset_type,
+						  inv_type,
+						  NOT_WEARABLE,
+						  next_owner_perm,
+						  cb);
 }	
 
 const std::string NEW_LSL_NAME = "New Script"; // *TODO:Translate? (probably not)
@@ -1316,7 +1381,7 @@ void menu_create_inventory_item(LLInventoryPanel* panel, LLFolderBridge *bridge,
 					  parent_id,
 					  LLAssetType::AT_LSL_TEXT,
 					  LLInventoryType::IT_LSL,
-					  PERM_MOVE | PERM_TRANSFER);
+					  PERM_MOVE | PERM_TRANSFER);	// overridden in create_new_item
 	}
 	else if ("notecard" == type_name)
 	{
@@ -1325,7 +1390,7 @@ void menu_create_inventory_item(LLInventoryPanel* panel, LLFolderBridge *bridge,
 					  parent_id,
 					  LLAssetType::AT_NOTECARD,
 					  LLInventoryType::IT_NOTECARD,
-					  PERM_ALL);
+					  PERM_ALL);	// overridden in create_new_item
 	}
 	else if ("gesture" == type_name)
 	{
@@ -1334,7 +1399,7 @@ void menu_create_inventory_item(LLInventoryPanel* panel, LLFolderBridge *bridge,
 					  parent_id,
 					  LLAssetType::AT_GESTURE,
 					  LLInventoryType::IT_GESTURE,
-					  PERM_ALL);
+					  PERM_ALL);	// overridden in create_new_item
 	}
 	else
 	{
diff --git a/indra/newview/llviewerinventory.h b/indra/newview/llviewerinventory.h
index ab19a12014..dc2fdb8c8d 100755
--- a/indra/newview/llviewerinventory.h
+++ b/indra/newview/llviewerinventory.h
@@ -249,7 +249,9 @@ void rez_attachment_cb(const LLUUID& inv_item, LLViewerJointAttachment *attachme
 
 void activate_gesture_cb(const LLUUID& inv_item);
 
+void create_script_cb(const LLUUID& inv_item);
 void create_gesture_cb(const LLUUID& inv_item);
+void create_notecard_cb(const LLUUID& inv_item);
 
 class AddFavoriteLandmarkCallback : public LLInventoryCallback
 {
diff --git a/indra/newview/llviewerregion.cpp b/indra/newview/llviewerregion.cpp
index c6e67355c3..dd88c5b846 100755
--- a/indra/newview/llviewerregion.cpp
+++ b/indra/newview/llviewerregion.cpp
@@ -1577,6 +1577,7 @@ void LLViewerRegion::unpackRegionHandshake()
 	// Supplying false in this call means only send the default permissions to the simulator if 
 	// it has never been sent.  Once this data is sent the simulator will pass this data to new
 	// simulators as the agent moves around.
+	LLFloaterPermsDefault::updateCap(false);
 }
 
 void LLViewerRegionImpl::buildCapabilityNames(LLSD& capabilityNames)
-- 
cgit v1.2.3


From aec2fde7a4c3114b9081fa3c90f891f8337595ad Mon Sep 17 00:00:00 2001
From: Jonathan Yap <none@none>
Date: Wed, 20 Nov 2013 14:47:00 -0500
Subject: STORM-68 Added default clause to switch statement to try to fix linux
 compile error.

---
 indra/newview/llviewerinventory.cpp | 2 ++
 1 file changed, 2 insertions(+)

(limited to 'indra')

diff --git a/indra/newview/llviewerinventory.cpp b/indra/newview/llviewerinventory.cpp
index 5e3df16c38..c52505e4b3 100755
--- a/indra/newview/llviewerinventory.cpp
+++ b/indra/newview/llviewerinventory.cpp
@@ -1328,6 +1328,8 @@ void create_new_item(const std::string& name,
 			next_owner_perm = LLFloaterPerms::getNextOwnerPerms("Notecards");
 			break;
 		}
+		default:
+			break;
 	}
 
 	create_inventory_item(gAgent.getID(),
-- 
cgit v1.2.3


From 7e749052ca05024ed2ca4c8a799d7ddaf64191d9 Mon Sep 17 00:00:00 2001
From: "niel@mint-32" <niel@mint-32>
Date: Wed, 20 Nov 2013 23:59:37 +0000
Subject: storm-1831 Expanding/fixing copyright header

---
 indra/newview/llsyntaxid.h | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llsyntaxid.h b/indra/newview/llsyntaxid.h
index a79a19be91..3a711d7460 100644
--- a/indra/newview/llsyntaxid.h
+++ b/indra/newview/llsyntaxid.h
@@ -1,6 +1,7 @@
 /** 
- * @file llagentdata.h
- * @brief Contains commonly used agent data
+ * @file llsyntaxid.h
+ * @brief Contains methods to access the LSLSyntaxId feature and LSLSyntax capability
+ * to use the appropriate syntax file for the current region's LSL version.
  * @author Ima Mechanique
  *
  * $LicenseInfo:firstyear=2013&license=viewerlgpl$
-- 
cgit v1.2.3


From 25c7ea0532b6316639b7efbbfb9f10bfe7e38635 Mon Sep 17 00:00:00 2001
From: "niel@mint-32" <niel@mint-32>
Date: Thu, 21 Nov 2013 00:02:15 +0000
Subject: storm-1831 Replacing old region changed callback setup with the shiny
 new one.

---
 indra/newview/llpreviewscript.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'indra')

diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp
index c662343238..362836b5b9 100755
--- a/indra/newview/llpreviewscript.cpp
+++ b/indra/newview/llpreviewscript.cpp
@@ -410,7 +410,7 @@ BOOL LLScriptEdCore::postBuild()
 	// Intialise keyword highlighting for the current simulator's version of LSL
 	onRegionChangeInitialiseKeywords();
 	// Set up a callback for region changes, so that highlighting is updated to the new region's version of LSL
-	LLEnvManagerNew::getInstance()->setRegionChangeCallback(boost::bind(&LLScriptEdCore::onRegionChangeInitialiseKeywords, this));
+	gAgent.addRegionChangedCallback(boost::bind(&LLScriptEdCore::onRegionChangeInitialiseKeywords, this));
 
 	return TRUE;
 }
-- 
cgit v1.2.3


From 483c829aa370dabfc18cbba770a347b25ec80010 Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Thu, 21 Nov 2013 02:37:40 +0000
Subject: storm-1831 Removing am uneccessary message.

---
 indra/newview/llsyntaxid.cpp | 4 ----
 1 file changed, 4 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llsyntaxid.cpp b/indra/newview/llsyntaxid.cpp
index 66e0777525..e09b083d9c 100644
--- a/indra/newview/llsyntaxid.cpp
+++ b/indra/newview/llsyntaxid.cpp
@@ -223,10 +223,6 @@ void LLSyntaxIdLSL::initialise()
 		buildFullFileSpec();
 		if ( !mSyntaxIdNew.isNull() )
 		{
-			LL_INFOS("LSLSyntax")
-					<< "We have an ID for the version, processing it!"
-					<< LL_ENDL;
-
 			if ( !gDirUtilp->fileExists(mFullFileSpec) )
 			{ // Does not exist, so fetch it from the capability
 				fetchKeywordsFile();
-- 
cgit v1.2.3


From b5eb40cfd4849685274f9545b22becd90ba7c858 Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Thu, 21 Nov 2013 19:28:35 +0000
Subject: storm-1831 Cleaning up output messages SyntaxLSL.

---
 indra/newview/llsyntaxid.cpp | 55 ++++++++++++++++++--------------------------
 1 file changed, 23 insertions(+), 32 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llsyntaxid.cpp b/indra/newview/llsyntaxid.cpp
index e09b083d9c..605d49b175 100644
--- a/indra/newview/llsyntaxid.cpp
+++ b/indra/newview/llsyntaxid.cpp
@@ -41,7 +41,7 @@
 fetchKeywordsFileResponder::fetchKeywordsFileResponder(std::string filespec)
 {
 	mFileSpec = filespec;
-	LL_WARNS("LSLSyntax")
+	LL_INFOS("SyntaxLSL")
 			<< "Instantiating with file saving to: '" << filespec << "'"
 			<< LL_ENDL;
 }
@@ -50,11 +50,9 @@ void fetchKeywordsFileResponder::errorWithContent(U32 status,
 												  const std::string& reason,
 												  const LLSD& content)
 {
-	LL_WARNS("LSLSyntax")
+	LL_ERRS("SyntaxLSL")
 			<< "fetchKeywordsFileResponder error [status:"
-			<< status
-			<< "]: "
-			<< content
+			<< status << "]: " << content
 			<< LL_ENDL;
 }
 
@@ -71,7 +69,7 @@ void fetchKeywordsFileResponder::result(const LLSD& content_ref)
 	file.write(xml.c_str(), str.str().size());
 	file.close();
 
-	LL_WARNS("LSLSyntax")
+	LL_INFOS("SyntaxLSL")
 		<< "Syntax file received, saving as: '" << mFileSpec << "'" << LL_ENDL;
 }
 
@@ -131,8 +129,8 @@ bool LLSyntaxIdLSL::checkSyntaxIdChanged()
 	{
 		if (!region->capabilitiesReceived())
 		{   // Shouldn't be possible, but experience shows that it may be needed.
-			LL_WARNS("LSLSyntax")
-				<< "region '" << region->getName()
+			LL_WARNS("SyntaxLSL")
+				<< "Region '" << region->getName()
 				<< "' has not received capabilities yet! Cannot process SyntaxId."
 				<< LL_ENDL;
 		}
@@ -149,23 +147,16 @@ bool LLSyntaxIdLSL::checkSyntaxIdChanged()
 				mCapabilityURL = region->getCapability(mCapabilityName);
 				if (mSyntaxIdCurrent != mSyntaxIdNew)
 				{
-					LL_WARNS("LSLSyntax")
-						<< "Region is '" << region->getName()
-						<< "' it has LSLSyntaxId capability, and the new hash is '"
-						<< mSyntaxIdNew << "'"
-						<< LL_ENDL;
+					message = "' it has LSLSyntaxId capability, and the new hash is '"
+							+ mSyntaxIdNew.asString() + "'";
 
 					changed = true;
 				}
 				else
 				{
-					LL_WARNS("LSLSyntax")
-						<< "Region is '" << region->getName()
-						<< "' it has the same LSLSyntaxId! Leaving hash as '"
-						<< mSyntaxIdCurrent << "'"
-						<< LL_ENDL;
+					message = "' it has the same LSLSyntaxId! Leaving hash as '"
+							+ mSyntaxIdCurrent + "'";
 				}
-
 			}
 			else
 			{
@@ -180,9 +171,9 @@ bool LLSyntaxIdLSL::checkSyntaxIdChanged()
 					message = " it does not have LSLSyntaxId capability, using default keywords file!";
 					changed = true;
 				}
-				LL_WARNS("LSLSyntax")
-					<< "Region is '" << region->getName() << message << LL_ENDL;
 			}
+			LL_INFOS("SyntaxLSL")
+				<< "Region is '" << region->getName() << message << LL_ENDL;
 		}
 	}
 	return changed;
@@ -199,14 +190,14 @@ void LLSyntaxIdLSL::fetchKeywordsFile()
 						  new fetchKeywordsFileResponder(mFullFileSpec),
 						  LLSD(), 30.f
 						  );
-		LL_INFOS("LSLSyntax")
+		LL_INFOS("SyntaxLSL")
 				<< "LSLSyntaxId capability URL is: " << mCapabilityURL
 				<< ". Filename to use is: '" << mFullFileSpec << "'."
 				<< LL_ENDL;
 	}
 	else
 	{
-		LL_WARNS("LSLSyntax")
+		LL_ERRS("SyntaxLSL")
 				<< "LSLSyntaxId capability URL is empty!!" << LL_ENDL;
 	}
 }
@@ -215,7 +206,7 @@ void LLSyntaxIdLSL::initialise()
 {
 	if (checkSyntaxIdChanged())
 	{
-		LL_INFOS("LSLSyntax")
+		LL_INFOS("SyntaxLSL")
 				<< "LSL version has changed, getting appropriate file."
 				<< LL_ENDL;
 
@@ -226,13 +217,13 @@ void LLSyntaxIdLSL::initialise()
 			if ( !gDirUtilp->fileExists(mFullFileSpec) )
 			{ // Does not exist, so fetch it from the capability
 				fetchKeywordsFile();
-				LL_INFOS("LSLSyntax")
+				LL_INFOS("SyntaxLSL")
 						<< "File is not cached, we will try to download it!"
 						<< LL_ENDL;
 			}
 			else
 			{
-				LL_INFOS("LSLSyntax")
+				LL_INFOS("SyntaxLSL")
 						<< "File is cached, no need to download!"
 						<< LL_ENDL;
 				loadKeywordsIntoLLSD();
@@ -240,7 +231,7 @@ void LLSyntaxIdLSL::initialise()
 		}
 		else
 		{ // Need to open the default
-			LL_INFOS("LSLSyntax")
+			LL_INFOS("SyntaxLSL")
 					<< "LSLSyntaxId is null so we will use the default file!"
 					<< LL_ENDL;
 			loadKeywordsIntoLLSD();
@@ -250,7 +241,7 @@ void LLSyntaxIdLSL::initialise()
 	}
 	else
 	{
-		LL_INFOS("LSLSyntax")
+		LL_INFOS("SyntaxLSL")
 				<< "No change to Syntax! Nothing to see. Move along now!"
 				<< LL_ENDL;
 	}
@@ -267,7 +258,7 @@ void LLSyntaxIdLSL::initialise()
  */
 bool LLSyntaxIdLSL::loadKeywordsIntoLLSD()
 {
-	LL_INFOS("LSLSyntax")
+	LL_INFOS("SyntaxLSL")
 			<< "Trying to open cached or default keyword file ;-)"
 			<< LL_ENDL;
 
@@ -280,7 +271,7 @@ bool LLSyntaxIdLSL::loadKeywordsIntoLLSD()
 		loaded = (bool)LLSDSerialize::fromXML(content, file);
 		if (!loaded)
 		{
-			LL_WARNS("LSLSyntax") << "Unable to deserialise file: " << mFullFileSpec << LL_ENDL;
+			LL_ERRS("SyntaxLSL") << "Unable to deserialise file: " << mFullFileSpec << LL_ENDL;
 
 			// Is this the right thing to do, or should we leave the old content
 			// even if it isn't entirely accurate anymore?
@@ -289,12 +280,12 @@ bool LLSyntaxIdLSL::loadKeywordsIntoLLSD()
 		else
 		{
 			sKeywordsXml = content;
-			LL_INFOS("LSLSyntax") << "Deserialised file: " << mFullFileSpec << LL_ENDL;
+			LL_INFOS("SyntaxLSL") << "Deserialised file: " << mFullFileSpec << LL_ENDL;
 		}
 	}
 	else
 	{
-		LL_WARNS("LSLSyntax") << "Unable to open file: " << mFullFileSpec << LL_ENDL;
+		LL_ERRS("SyntaxLSL") << "Unable to open file: " << mFullFileSpec << LL_ENDL;
 	}
 	return loaded;
 }
-- 
cgit v1.2.3


From fa5c3320cc9c50462b222b1b1197d9c16064983e Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Thu, 21 Nov 2013 19:55:38 +0000
Subject: storm-1831 Cleaning up colour LLSD processing code which is no longer
 used as colours come from the colors XML file.

---
 indra/llui/llkeywords.cpp | 58 +----------------------------------------------
 indra/llui/llkeywords.h   |  2 --
 2 files changed, 1 insertion(+), 59 deletions(-)

(limited to 'indra')

diff --git a/indra/llui/llkeywords.cpp b/indra/llui/llkeywords.cpp
index 6aeaf4798b..5f5810812e 100755
--- a/indra/llui/llkeywords.cpp
+++ b/indra/llui/llkeywords.cpp
@@ -67,10 +67,7 @@ inline BOOL LLKeywordToken::isTail(const llwchar* s) const
 	return res;
 }
 
-LLKeywords::LLKeywords() : mLoaded(FALSE)
-{
-	//setFilenameSyntax( gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS,"keywords_lsl_default.xml") );
-}
+LLKeywords::LLKeywords() : mLoaded(FALSE) { }
 
 LLKeywords::~LLKeywords()
 {
@@ -205,59 +202,6 @@ bool LLKeywords::initialise(LLSD SyntaxXML)
 	return mLoaded;
 }
 
-///**
-// * @brief Start processing the colour LLSD from its beginning.
-// *
-// */
-//std::string LLKeywords::processColors()
-//{
-//	return processColors(mColors, "");
-//}
-
-///**
-// * @brief	Recursively process the colour LLSD from an arbitrary level.
-// * @desc	Process the supplied LLSD for colour data. The strPrefix is a string
-// *			of hyphen separated keys from previous levels.
-// */
-//std::string LLKeywords::processColors(LLSD &settings, const std::string strPrefix)
-//{
-//	if (settings.isMap() || (! settings.isMap() && strPrefix != "") )
-//	{
-//		LLSD llsd_map = settings;
-
-//		LLSD::map_iterator my_iter = llsd_map.beginMap();
-//		for ( ; my_iter != llsd_map.endMap(); ++my_iter)
-//		{
-//			std::string strGroup = strPrefix;
-//			const LLSD::String& key = my_iter->first;
-//			LLSD& value = my_iter->second;
-//
-//			if (key == "color")
-//			{
-//				if (value.isMap() || value.isArray())
-//				{
-//					addColorGroup(strGroup, readColor(value));
-//				}
-//				else
-//				{
-//					LL_WARNS("Invalid Color") << "Invalid Color Entry - first: '" << key << "' second: '" << value << "'" << LL_ENDL;
-//				}
-//			}
-//			else if (value.isMap())
-//			{
-//				strGroup += (strGroup.length() == 0) ? my_iter->first : "-" + my_iter->first;
-//				strGroup = processColors(value, strGroup);
-//			}
-//			else
-//			{
-//				LL_WARNS("Invalid Color") << "Invalid Color Entry - first: '" << key << "' second: '" << value << "'" << LL_ENDL;
-//			}
-//		}
-//	}
-//	return strPrefix;
-//}
-//*/
-
 void LLKeywords::processTokens()
 {
 	// Add 'standard' stuff: Quotes, Comments, Strings, Labels, etc. before processing the LLSD
diff --git a/indra/llui/llkeywords.h b/indra/llui/llkeywords.h
index 074cedfc63..d0f1de8389 100755
--- a/indra/llui/llkeywords.h
+++ b/indra/llui/llkeywords.h
@@ -118,8 +118,6 @@ public:
 
 	void		findSegments(std::vector<LLTextSegmentPtr> *seg_list, const LLWString& text, const LLColor4 &defaultColor, class LLTextEditor& editor );
 	bool		initialise(LLSD SyntaxXML);
-	std::string	processColors();
-	std::string	processColors(LLSD &data, const std::string strGroup);
 	void		processTokens();
 
 	// Add the token as described
-- 
cgit v1.2.3


From 380334956c6689c2091e95969a7f79a29db49a4d Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Thu, 21 Nov 2013 21:29:24 +0000
Subject: storm-1831 Fixing message string UUID assignment

---
 indra/newview/llsyntaxid.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'indra')

diff --git a/indra/newview/llsyntaxid.cpp b/indra/newview/llsyntaxid.cpp
index 605d49b175..43f840544c 100644
--- a/indra/newview/llsyntaxid.cpp
+++ b/indra/newview/llsyntaxid.cpp
@@ -155,7 +155,7 @@ bool LLSyntaxIdLSL::checkSyntaxIdChanged()
 				else
 				{
 					message = "' it has the same LSLSyntaxId! Leaving hash as '"
-							+ mSyntaxIdCurrent + "'";
+							+ mSyntaxIdCurrent.asString() + "'";
 				}
 			}
 			else
-- 
cgit v1.2.3


From 7563fb0b5181fa7223cb08f79e2710f9d44aded3 Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Fri, 22 Nov 2013 01:01:29 +0000
Subject: storm-1831 Replacing old hack with an ENUM check.

---
 indra/newview/llpreviewscript.cpp | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp
index 362836b5b9..41c172e629 100755
--- a/indra/newview/llpreviewscript.cpp
+++ b/indra/newview/llpreviewscript.cpp
@@ -421,7 +421,6 @@ void LLScriptEdCore::onRegionChangeInitialiseKeywords()
 	mSyntaxIdLSL.initialise();
 	mEditor->mKeywords.initialise(mSyntaxIdLSL.getKeywordsXML());
 
-	LLColor3 color(0.5f, 0.0f, 0.15f);
 	mEditor->loadKeywords();
 
 	std::vector<std::string> primary_keywords;
@@ -431,8 +430,7 @@ void LLScriptEdCore::onRegionChangeInitialiseKeywords()
 	for (token_it = mEditor->keywordsBegin(); token_it != mEditor->keywordsEnd(); ++token_it)
 	{
 		token = token_it->second;
-		// FIX: change this to use the new Token Type enum entries.
-		if (token->getColor() == color) // Wow, what a disgusting hack.
+		if (token->getType() == LLKeywordToken::TT_FUNCTION)
 		{
 			primary_keywords.push_back( wstring_to_utf8str(token->getToken()) );
 		}
-- 
cgit v1.2.3


From 9e8a7869ce4e51d5caeb46118972509a0110f766 Mon Sep 17 00:00:00 2001
From: Jonathan Yap <none@none>
Date: Tue, 3 Dec 2013 10:44:44 -0500
Subject: STORM-68 Change CAP name to AgentPreferences and adjust LLSD format
 to mesh with server changes

---
 indra/newview/llfloaterperms.cpp | 13 ++++++++-----
 indra/newview/llviewerregion.cpp |  2 +-
 2 files changed, 9 insertions(+), 6 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llfloaterperms.cpp b/indra/newview/llfloaterperms.cpp
index 4923420a3e..b03a4e9013 100755
--- a/indra/newview/llfloaterperms.cpp
+++ b/indra/newview/llfloaterperms.cpp
@@ -182,15 +182,18 @@ llwarns << "DBG start" << llendl;
 	}
 
 llwarns << "DBG getRegion" << llendl;
-	std::string object_url = gAgent.getRegion()->getCapability("DefaultObjectPermissions");
+	std::string object_url = gAgent.getRegion()->getCapability("AgentPreferences");
 
 	if(!object_url.empty())
 	{
-llwarns << "DBG post" << llendl;
 		LLSD report = LLSD::emptyMap();
-		report["Group"] = (LLSD::Integer)LLFloaterPerms::getGroupPerms(sCategoryNames[CAT_OBJECTS]);
-		report["Everyone"] = (LLSD::Integer)LLFloaterPerms::getEveryonePerms(sCategoryNames[CAT_OBJECTS]);
-		report["NextOwner"] = (LLSD::Integer)LLFloaterPerms::getNextOwnerPerms(sCategoryNames[CAT_OBJECTS]);
+		report["default_object_perm_masks"]["Group"] =
+			(LLSD::Integer)LLFloaterPerms::getGroupPerms(sCategoryNames[CAT_OBJECTS]);
+		report["default_object_perm_masks"]["Everyone"] =
+			(LLSD::Integer)LLFloaterPerms::getEveryonePerms(sCategoryNames[CAT_OBJECTS]);
+		report["default_object_perm_masks"]["NextOwner"] =
+			(LLSD::Integer)LLFloaterPerms::getNextOwnerPerms(sCategoryNames[CAT_OBJECTS]);
+llwarns << "DBG post:" << report << llendl;
 		LLHTTPClient::post(object_url, report, new LLFloaterPermsResponder());
 	}
 }
diff --git a/indra/newview/llviewerregion.cpp b/indra/newview/llviewerregion.cpp
index dd88c5b846..4cd9f9769a 100755
--- a/indra/newview/llviewerregion.cpp
+++ b/indra/newview/llviewerregion.cpp
@@ -1582,6 +1582,7 @@ void LLViewerRegion::unpackRegionHandshake()
 
 void LLViewerRegionImpl::buildCapabilityNames(LLSD& capabilityNames)
 {
+	capabilityNames.append("AgentPreferences");
 	capabilityNames.append("AgentState");
 	capabilityNames.append("AttachmentResources");
 	capabilityNames.append("AvatarPickerSearch");
@@ -1589,7 +1590,6 @@ void LLViewerRegionImpl::buildCapabilityNames(LLSD& capabilityNames)
 	capabilityNames.append("ChatSessionRequest");
 	capabilityNames.append("CopyInventoryFromNotecard");
 	capabilityNames.append("CreateInventoryCategory");
-	capabilityNames.append("DefaultObjectPermissions");
 	capabilityNames.append("DispatchRegionInfo");
 	capabilityNames.append("EnvironmentSettings");
 	capabilityNames.append("EstateChangeInfo");
-- 
cgit v1.2.3


From 944840c8b164aa0f254d3d0eb38292a49b0dcae6 Mon Sep 17 00:00:00 2001
From: Jonathan Yap <none@none>
Date: Thu, 5 Dec 2013 13:26:43 -0500
Subject: STORM-68 Code cleanup/function renaming

---
 indra/newview/llfloaterperms.cpp | 34 +++++++++++++++++++++++-----------
 indra/newview/llfloaterperms.h   |  3 ++-
 indra/newview/llviewerregion.cpp |  5 +----
 3 files changed, 26 insertions(+), 16 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llfloaterperms.cpp b/indra/newview/llfloaterperms.cpp
index b03a4e9013..28fb76160a 100755
--- a/indra/newview/llfloaterperms.cpp
+++ b/indra/newview/llfloaterperms.cpp
@@ -158,30 +158,42 @@ void LLFloaterPermsDefault::onCommitCopy(const LLSD& user_data)
 class LLFloaterPermsResponder : public LLHTTPClient::Responder
 {
 public:
-	LLFloaterPermsResponder(): LLHTTPClient::Responder()  {}
+	LLFloaterPermsResponder(): LLHTTPClient::Responder() {}
+private:
+	std::string mPreviousReason;
 
 	void error(U32 status, const std::string& reason)
 	{
-		LLSD args;
-		args["REASON"] = reason;
-		LLNotificationsUtil::add("DefaultObjectPermissions", args);
+llwarns << "DBG !" << mPreviousReason << "!" << llendl;
+		// Do not display the same error more than once in a row
+		if (reason != mPreviousReason)
+		{
+			mPreviousReason = reason;
+			LLSD args;
+			args["REASON"] = reason;
+			LLNotificationsUtil::add("DefaultObjectPermissions", args);
+		}
 	}
 	void result(const LLSD& content)
 	{
+		// Since we have had a successful POST call be sure to display the next error message
+		// even if it is the same as a previous one.
+		mPreviousReason = "";
 		LLFloaterPermsDefault::setCapSent(true);
 		LL_INFOS("FloaterPermsResponder") << "Sent default permissions to simulator" << LL_ENDL;
 	}
 };
 
-void LLFloaterPermsDefault::updateCap(bool alwaysUpdate)
+void LLFloaterPermsDefault::sendInitialPerms()
 {
-llwarns << "DBG start" << llendl;
-	if(!alwaysUpdate && mCapSent)
+	if(!mCapSent)
 	{
-		return;
+		updateCap();
 	}
+}
 
-llwarns << "DBG getRegion" << llendl;
+void LLFloaterPermsDefault::updateCap()
+{
 	std::string object_url = gAgent.getRegion()->getCapability("AgentPreferences");
 
 	if(!object_url.empty())
@@ -193,7 +205,7 @@ llwarns << "DBG getRegion" << llendl;
 			(LLSD::Integer)LLFloaterPerms::getEveryonePerms(sCategoryNames[CAT_OBJECTS]);
 		report["default_object_perm_masks"]["NextOwner"] =
 			(LLSD::Integer)LLFloaterPerms::getNextOwnerPerms(sCategoryNames[CAT_OBJECTS]);
-llwarns << "DBG post:" << report << llendl;
+
 		LLHTTPClient::post(object_url, report, new LLFloaterPermsResponder());
 	}
 }
@@ -211,7 +223,7 @@ void LLFloaterPermsDefault::ok()
 
 // We know some setting has changed but not which one.  Just in case it was a setting for
 // object permissions tell the server what the values are.
-	updateCap(true);
+	updateCap();
 }
 
 void LLFloaterPermsDefault::cancel()
diff --git a/indra/newview/llfloaterperms.h b/indra/newview/llfloaterperms.h
index b4b5d58aa5..2bb0a19dc1 100755
--- a/indra/newview/llfloaterperms.h
+++ b/indra/newview/llfloaterperms.h
@@ -59,7 +59,8 @@ public:
 	void onClickOK();
 	void onClickCancel();
 	void onCommitCopy(const LLSD& user_data);
-	static void updateCap(bool alwaysUpdate);
+	static void sendInitialPerms();
+	static void updateCap();
 	static void setCapSent(bool cap_sent);
 
 // Update instantiation of sCategoryNames in the .cpp file to match if you change this!
diff --git a/indra/newview/llviewerregion.cpp b/indra/newview/llviewerregion.cpp
index 4cd9f9769a..dcecddece5 100755
--- a/indra/newview/llviewerregion.cpp
+++ b/indra/newview/llviewerregion.cpp
@@ -1574,10 +1574,7 @@ void LLViewerRegion::unpackRegionHandshake()
 	msg->addU32("Flags", 0x0 );
 	msg->sendReliable(host);
 
-	// Supplying false in this call means only send the default permissions to the simulator if 
-	// it has never been sent.  Once this data is sent the simulator will pass this data to new
-	// simulators as the agent moves around.
-	LLFloaterPermsDefault::updateCap(false);
+	LLFloaterPermsDefault::sendInitialPerms();
 }
 
 void LLViewerRegionImpl::buildCapabilityNames(LLSD& capabilityNames)
-- 
cgit v1.2.3


From 096530b7265223ade02a86977973b7e5df12e93c Mon Sep 17 00:00:00 2001
From: Jonathan Yap <none@none>
Date: Thu, 5 Dec 2013 14:42:14 -0500
Subject: STORM-68 Get display error message once to work properly

---
 indra/newview/llfloaterperms.cpp | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llfloaterperms.cpp b/indra/newview/llfloaterperms.cpp
index 28fb76160a..b4ea34d5f1 100755
--- a/indra/newview/llfloaterperms.cpp
+++ b/indra/newview/llfloaterperms.cpp
@@ -160,15 +160,15 @@ class LLFloaterPermsResponder : public LLHTTPClient::Responder
 public:
 	LLFloaterPermsResponder(): LLHTTPClient::Responder() {}
 private:
-	std::string mPreviousReason;
+	static	std::string sPreviousReason;
 
 	void error(U32 status, const std::string& reason)
 	{
-llwarns << "DBG !" << mPreviousReason << "!" << llendl;
+llwarns << "DBG !" << sPreviousReason << "!" << llendl;
 		// Do not display the same error more than once in a row
-		if (reason != mPreviousReason)
+		if (reason != sPreviousReason)
 		{
-			mPreviousReason = reason;
+			sPreviousReason = reason;
 			LLSD args;
 			args["REASON"] = reason;
 			LLNotificationsUtil::add("DefaultObjectPermissions", args);
@@ -178,12 +178,14 @@ llwarns << "DBG !" << mPreviousReason << "!" << llendl;
 	{
 		// Since we have had a successful POST call be sure to display the next error message
 		// even if it is the same as a previous one.
-		mPreviousReason = "";
+		sPreviousReason = "";
 		LLFloaterPermsDefault::setCapSent(true);
 		LL_INFOS("FloaterPermsResponder") << "Sent default permissions to simulator" << LL_ENDL;
 	}
 };
 
+	std::string	LLFloaterPermsResponder::sPreviousReason;
+
 void LLFloaterPermsDefault::sendInitialPerms()
 {
 	if(!mCapSent)
-- 
cgit v1.2.3


From b6cda94fa5daae104be37cdce393e255022c79cd Mon Sep 17 00:00:00 2001
From: Jonathan Yap <none@none>
Date: Fri, 6 Dec 2013 17:48:12 -0500
Subject: STORM-68 Remove incorrect method of setting default object
 permissions

---
 indra/newview/llviewerobjectlist.cpp | 11 -----------
 1 file changed, 11 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llviewerobjectlist.cpp b/indra/newview/llviewerobjectlist.cpp
index 34d36dd887..b7a4510bac 100755
--- a/indra/newview/llviewerobjectlist.cpp
+++ b/indra/newview/llviewerobjectlist.cpp
@@ -266,17 +266,6 @@ void LLViewerObjectList::processUpdateCore(LLViewerObject* objectp,
 			// llinfos << "DEBUG selecting " << objectp->mID << " " 
 			// << objectp->mLocalID << llendl;
 			LLSelectMgr::getInstance()->selectObjectAndFamily(objectp);
-
-			// This is a bit of a hack.  Because the server ensures one of either COPY or TRANSFER is always be on
-			// to set the bits we want it is first necessary to set them all on and then clear the ones that
-			// are not needed.
-			LLSelectMgr::getInstance()->selectionSetObjectPermissions(PERM_NEXT_OWNER, TRUE, PERM_COPY | PERM_MODIFY | PERM_TRANSFER);
-			LLSelectMgr::getInstance()->selectionSetObjectPermissions(PERM_NEXT_OWNER, FALSE, LLFloaterPerms::getNextOwnerPermsInverted("Objects"));
-
-			LLSelectMgr::getInstance()->selectionSetObjectPermissions(PERM_EVERYONE, TRUE, LLFloaterPerms::getEveryonePerms("Objects"));
-
-			LLSelectMgr::getInstance()->selectionSetObjectPermissions(PERM_GROUP, TRUE, LLFloaterPerms::getGroupPerms("Objects"));
-
 			dialog_refresh_all();
 		}
 
-- 
cgit v1.2.3


From b562de469a04c5b267e46c0a0bbf4d898e36d3f7 Mon Sep 17 00:00:00 2001
From: Jonathan Yap <none@none>
Date: Tue, 10 Dec 2013 16:25:57 -0500
Subject: STORM-68 Move initial call to POST default permissions to a better
 location.

---
 indra/newview/llviewerregion.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llviewerregion.cpp b/indra/newview/llviewerregion.cpp
index dcecddece5..e3df09022c 100755
--- a/indra/newview/llviewerregion.cpp
+++ b/indra/newview/llviewerregion.cpp
@@ -1573,8 +1573,6 @@ void LLViewerRegion::unpackRegionHandshake()
 	msg->nextBlock("RegionInfo");
 	msg->addU32("Flags", 0x0 );
 	msg->sendReliable(host);
-
-	LLFloaterPermsDefault::sendInitialPerms();
 }
 
 void LLViewerRegionImpl::buildCapabilityNames(LLSD& capabilityNames)
@@ -1847,6 +1845,8 @@ void LLViewerRegion::setCapabilitiesReceived(bool received)
 	{
 		mCapabilitiesReceivedSignal(getRegionID());
 
+		LLFloaterPermsDefault::sendInitialPerms();
+
 		// This is a single-shot signal. Forget callbacks to save resources.
 		mCapabilitiesReceivedSignal.disconnect_all_slots();
 	}
-- 
cgit v1.2.3


From 35daa8031979fc708640e2f2f9ab849e6cb156dd Mon Sep 17 00:00:00 2001
From: Jonathan Yap <none@none>
Date: Wed, 11 Dec 2013 12:09:39 -0500
Subject: STORM-68 Re-add wearables callback that did not carry through in the
 merge.

---
 indra/newview/llagentwearables.cpp | 42 +++++++++++++++++++++++---------------
 1 file changed, 25 insertions(+), 17 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llagentwearables.cpp b/indra/newview/llagentwearables.cpp
index c741f6403d..f71b49010d 100755
--- a/indra/newview/llagentwearables.cpp
+++ b/indra/newview/llagentwearables.cpp
@@ -86,27 +86,26 @@ void wear_and_edit_cb(const LLUUID& inv_item)
 		LLAppearanceMgr::instance().wearItemOnAvatar(inv_item);
 	}
 
-class LLCreateWearableCallback : public LLInventoryCallback
+void wear_cb(const LLUUID& inv_item)
 {
-	void fire(const LLUUID& inv_item)
+	if (inv_item.isNull())
 	{
-		if (inv_item.isNull())
-			return;
+		return;
+	}
 
-		LLViewerInventoryItem* item = gInventory.getItem(inv_item);
-		if (!item) return;
+	LLViewerInventoryItem* item = gInventory.getItem(inv_item);
+	if (!item) return;
 
-		LLPermissions perm = item->getPermissions();
-		perm.setMaskNext(LLFloaterPerms::getNextOwnerPerms("Wearables"));
-		perm.setMaskEveryone(LLFloaterPerms::getEveryonePerms("Wearables"));
-		perm.setMaskGroup(LLFloaterPerms::getGroupPerms("Wearables"));
-		item->setPermissions(perm);
+	LLPermissions perm = item->getPermissions();
+	perm.setMaskNext(LLFloaterPerms::getNextOwnerPerms("Wearables"));
+	perm.setMaskEveryone(LLFloaterPerms::getEveryonePerms("Wearables"));
+	perm.setMaskGroup(LLFloaterPerms::getGroupPerms("Wearables"));
+	item->setPermissions(perm);
 
-		item->updateServer(FALSE);
-		gInventory.updateItem(item);
-		gInventory.notifyObservers();
-	}
-};
+	item->updateServer(FALSE);
+	gInventory.updateItem(item);
+	gInventory.notifyObservers();
+}
 
 ///////////////////////////////////////////////////////////////////////////////
 
@@ -1841,7 +1840,16 @@ void LLAgentWearables::createWearable(LLWearableType::EType type, bool wear, con
 	LLViewerWearable* wearable = LLWearableList::instance().createNewWearable(type, gAgentAvatarp);
 	LLAssetType::EType asset_type = wearable->getAssetType();
 	LLInventoryType::EType inv_type = LLInventoryType::IT_WEARABLE;
-	LLPointer<LLInventoryCallback> cb = wear ? new LLBoostFuncInventoryCallback(wear_and_edit_cb) : NULL;
+	LLPointer<LLInventoryCallback> cb;
+	if(wear)
+	{
+		cb = new LLBoostFuncInventoryCallback(wear_and_edit_cb);
+	}
+	else
+	{
+		cb = new LLBoostFuncInventoryCallback(wear_cb);
+	}
+
 	LLUUID folder_id;
 
 	if (parent_id.notNull())
-- 
cgit v1.2.3


From 2d701456a07d37a520f436f9e83b1008e492f232 Mon Sep 17 00:00:00 2001
From: Jonathan Yap <none@none>
Date: Thu, 12 Dec 2013 08:51:15 -0500
Subject: STORM-68 Fix bug for new gestures, notecards, and scripts where a
 copied item did not preserve its default permissions. Add apply button.

---
 indra/newview/llfloaterperms.cpp                   | 11 ++++--
 indra/newview/llfloaterperms.h                     |  3 +-
 indra/newview/llviewerinventory.cpp                |  3 ++
 .../skins/default/xui/en/floater_perms_default.xml | 40 ++++++++++++++--------
 4 files changed, 38 insertions(+), 19 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llfloaterperms.cpp b/indra/newview/llfloaterperms.cpp
index b4ea34d5f1..0178c0b4f1 100755
--- a/indra/newview/llfloaterperms.cpp
+++ b/indra/newview/llfloaterperms.cpp
@@ -103,6 +103,7 @@ LLFloaterPermsDefault::LLFloaterPermsDefault(const LLSD& seed)
 	: LLFloater(seed)
 {
 	mCommitCallbackRegistrar.add("PermsDefault.Copy", boost::bind(&LLFloaterPermsDefault::onCommitCopy, this, _2));
+	mCommitCallbackRegistrar.add("PermsDefault.Apply", boost::bind(&LLFloaterPermsDefault::onClickApply, this));
 	mCommitCallbackRegistrar.add("PermsDefault.OK", boost::bind(&LLFloaterPermsDefault::onClickOK, this));
 	mCommitCallbackRegistrar.add("PermsDefault.Cancel", boost::bind(&LLFloaterPermsDefault::onClickCancel, this));
 }
@@ -129,9 +130,14 @@ BOOL LLFloaterPermsDefault::postBuild()
 	return true;
 }
 
+void LLFloaterPermsDefault::onClickApply()
+{
+	apply();
+}
+
 void LLFloaterPermsDefault::onClickOK()
 {
-	ok();
+	apply();
 	closeFloater();
 }
 
@@ -164,7 +170,6 @@ private:
 
 	void error(U32 status, const std::string& reason)
 	{
-llwarns << "DBG !" << sPreviousReason << "!" << llendl;
 		// Do not display the same error more than once in a row
 		if (reason != sPreviousReason)
 		{
@@ -217,7 +222,7 @@ void LLFloaterPermsDefault::setCapSent(bool cap_sent)
 	mCapSent = cap_sent;
 }
 
-void LLFloaterPermsDefault::ok()
+void LLFloaterPermsDefault::apply()
 {
 //	Changes were already applied automatically to saved settings.
 //	Refreshing internal values makes it official.
diff --git a/indra/newview/llfloaterperms.h b/indra/newview/llfloaterperms.h
index 2bb0a19dc1..12f297960a 100755
--- a/indra/newview/llfloaterperms.h
+++ b/indra/newview/llfloaterperms.h
@@ -54,8 +54,9 @@ class LLFloaterPermsDefault : public LLFloater
 
 public:
 	/*virtual*/ BOOL postBuild();
-	void ok();
+	void apply();
 	void cancel();
+	void onClickApply();
 	void onClickOK();
 	void onClickCancel();
 	void onCommitCopy(const LLSD& user_data);
diff --git a/indra/newview/llviewerinventory.cpp b/indra/newview/llviewerinventory.cpp
index c52505e4b3..5c41ef52b6 100755
--- a/indra/newview/llviewerinventory.cpp
+++ b/indra/newview/llviewerinventory.cpp
@@ -1004,6 +1004,7 @@ void create_script_cb(const LLUUID& inv_item)
 
 	item->setPermissions(perm);
 
+	item->updateServer(FALSE);
 	gInventory.updateItem(item);
 	gInventory.notifyObservers();
 }
@@ -1024,6 +1025,7 @@ void create_gesture_cb(const LLUUID& inv_item)
 
 	item->setPermissions(perm);
 
+	item->updateServer(FALSE);
     gInventory.updateItem(item);
     gInventory.notifyObservers();
 
@@ -1047,6 +1049,7 @@ void create_notecard_cb(const LLUUID& inv_item)
 
 	item->setPermissions(perm);
 
+	item->updateServer(FALSE);
 	gInventory.updateItem(item);
 	gInventory.notifyObservers();
 }
diff --git a/indra/newview/skins/default/xui/en/floater_perms_default.xml b/indra/newview/skins/default/xui/en/floater_perms_default.xml
index 9c3b92bc83..4e44c9ebb3 100644
--- a/indra/newview/skins/default/xui/en/floater_perms_default.xml
+++ b/indra/newview/skins/default/xui/en/floater_perms_default.xml
@@ -17,24 +17,22 @@
    name="default permissions"
    top="20"
    width="690">
-
       <view_border
        bevel_style="none"
        height="18"
        top="8"
        left="0"
        width="430" /> 
-
-     <text
-      type="string"
-      length="1"
-      follows="left|top"
-      height="16"
-      halign="right"
-      layout="topleft"
-      left="0"
-      top="10"
-      width="115">
+      <text
+       type="string"
+       length="1"
+       follows="left|top"
+       height="16"
+       halign="right"
+       layout="topleft"
+       left="0"
+       top="10"
+       width="115">
          Next owner:
       </text>
       <text
@@ -479,16 +477,28 @@
        top_delta="0"
        width="100" />
   </panel>
+  <button
+   height="20"
+   label="Apply"
+   label_selected="Apply"
+   layout="topleft"
+   name="apply"
+   left="375"
+   width="100">
+	<button.commit_callback
+	 function="PermsDefault.Apply" />
+  </button>
   <button
    height="20"
    label="OK"
    label_selected="OK"
    layout="topleft"
+   left_pad="5"
    name="ok"
-   left="480"
+   top_delta="0"
    width="100">
-	<button.commit_callback
-	 function="PermsDefault.OK" />
+    <button.commit_callback
+     function="PermsDefault.OK" />
   </button>
   <button
    height="20"
-- 
cgit v1.2.3


From c804c6b69e9de586225b9cc84c6e6adafba83f8f Mon Sep 17 00:00:00 2001
From: Jonathan Yap <none@none>
Date: Thu, 12 Dec 2013 14:11:28 -0500
Subject: STORM-68 Remove Apply button Add menu entry to Build->Options->Set
 Default Permissions... Disable Preferences->Advanced->Default Creation
 Permissions button when on login screen Add code for a one-time conversion
 from the old upload settings XML cleanup

---
 indra/newview/app_settings/settings.xml            | 67 ++++++++++++++++++++++
 indra/newview/llfloaterperms.cpp                   | 20 ++++---
 indra/newview/llfloaterperms.h                     |  3 +-
 indra/newview/llfloaterpreference.cpp              |  3 +
 .../skins/default/xui/en/floater_perms_default.xml | 40 +++++--------
 indra/newview/skins/default/xui/en/menu_viewer.xml |  7 +++
 .../default/xui/en/panel_preferences_advanced.xml  |  2 +-
 7 files changed, 105 insertions(+), 37 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index 9cb63c6518..7e9971bc7d 100755
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -14814,6 +14814,17 @@
       <string>Boolean</string>
       <key>Value</key>
       <integer>0</integer>
+    </map>
+    <key>DefaultUploadPermissionsConverted</key>
+    <map>
+      <key>Comment</key>
+      <string>Default upload permissions have been converted to default creation permissions</string>
+      <key>Persist</key>
+      <integer>1</integer>
+      <key>Type</key>
+      <string>Boolean</string>
+      <key>Value</key>
+      <integer>0</integer>
     </map>
 	<key>PathfindingRetrieveNeighboringRegion</key>
     <map>
@@ -15213,6 +15224,62 @@
       <key>Value</key>
       <string />
     </map>
+    <key>EveryoneCopy</key>
+      <map>
+        <key>Comment</key>
+        <string>(obsolete) Everyone can copy the newly created objects</string>
+        <key>Persist</key>
+        <integer>1</integer>
+        <key>Type</key>
+        <string>Boolean</string>
+        <key>Value</key>
+        <integer>0</integer>
+    </map>
+    <key>NextOwnerCopy</key>
+    <map>
+      <key>Comment</key>
+      <string>(obsolete) Newly created objects can be copied by next owner</string>
+      <key>Persist</key>
+      <integer>1</integer>
+      <key>Type</key>
+      <string>Boolean</string>
+      <key>Value</key>
+      <integer>0</integer>
+    </map>
+    <key>NextOwnerModify</key>
+    <map>
+      <key>Comment</key>
+      <string>(obsolete) Newly created objects can be modified by next owner</string>
+      <key>Persist</key>
+      <integer>1</integer>
+      <key>Type</key>
+      <string>Boolean</string>
+      <key>Value</key>
+      <integer>0</integer>
+    </map>
+    <key>NextOwnerTransfer</key>
+    <map>
+      <key>Comment</key>
+      <string>(obsolete) Newly created objects can be resold or given away by next owner</string>
+      <key>Persist</key>
+      <integer>1</integer>
+      <key>Type</key>
+      <string>Boolean</string>
+      <key>Value</key>
+      <integer>1</integer>
+    </map>
+    <key>ShareWithGroup</key>
+    <map>
+      <key>Comment</key>
+      <string>(obsolete) Newly created objects are shared with the currently active group</string>
+      <key>Persist</key>
+      <integer>1</integer>
+      <key>Type</key>
+      <string>Boolean</string>
+      <key>Value</key>
+      <integer>0</integer>
+    </map>
+
 </map>
 </llsd>
 
diff --git a/indra/newview/llfloaterperms.cpp b/indra/newview/llfloaterperms.cpp
index 0178c0b4f1..cc1ff54cb4 100755
--- a/indra/newview/llfloaterperms.cpp
+++ b/indra/newview/llfloaterperms.cpp
@@ -103,7 +103,6 @@ LLFloaterPermsDefault::LLFloaterPermsDefault(const LLSD& seed)
 	: LLFloater(seed)
 {
 	mCommitCallbackRegistrar.add("PermsDefault.Copy", boost::bind(&LLFloaterPermsDefault::onCommitCopy, this, _2));
-	mCommitCallbackRegistrar.add("PermsDefault.Apply", boost::bind(&LLFloaterPermsDefault::onClickApply, this));
 	mCommitCallbackRegistrar.add("PermsDefault.OK", boost::bind(&LLFloaterPermsDefault::onClickOK, this));
 	mCommitCallbackRegistrar.add("PermsDefault.Cancel", boost::bind(&LLFloaterPermsDefault::onClickCancel, this));
 }
@@ -123,6 +122,16 @@ const std::string LLFloaterPermsDefault::sCategoryNames[CAT_LAST] =
 
 BOOL LLFloaterPermsDefault::postBuild()
 {
+	if(!gSavedSettings.getBOOL("DefaultUploadPermissionsConverted"))
+	{
+		gSavedSettings.setBOOL("UploadsEveryoneCopy", gSavedSettings.getBOOL("EveryoneCopy"));
+		gSavedSettings.setBOOL("UploadsNextOwnerCopy", gSavedSettings.getBOOL("NextOwnerCopy"));
+		gSavedSettings.setBOOL("UploadsNextOwnerModify", gSavedSettings.getBOOL("NextOwnerModify"));
+		gSavedSettings.setBOOL("UploadsNextOwnerTransfer", gSavedSettings.getBOOL("NextOwnerTransfer"));
+		gSavedSettings.setBOOL("UploadsShareWithGroup", gSavedSettings.getBOOL("ShareWithGroup"));
+		gSavedSettings.setBOOL("DefaultUploadPermissionsConverted", true);
+	}
+
 	mCloseSignal.connect(boost::bind(&LLFloaterPermsDefault::cancel, this));
 
 	refresh();
@@ -130,14 +139,9 @@ BOOL LLFloaterPermsDefault::postBuild()
 	return true;
 }
 
-void LLFloaterPermsDefault::onClickApply()
-{
-	apply();
-}
-
 void LLFloaterPermsDefault::onClickOK()
 {
-	apply();
+	ok();
 	closeFloater();
 }
 
@@ -222,7 +226,7 @@ void LLFloaterPermsDefault::setCapSent(bool cap_sent)
 	mCapSent = cap_sent;
 }
 
-void LLFloaterPermsDefault::apply()
+void LLFloaterPermsDefault::ok()
 {
 //	Changes were already applied automatically to saved settings.
 //	Refreshing internal values makes it official.
diff --git a/indra/newview/llfloaterperms.h b/indra/newview/llfloaterperms.h
index 12f297960a..2bb0a19dc1 100755
--- a/indra/newview/llfloaterperms.h
+++ b/indra/newview/llfloaterperms.h
@@ -54,9 +54,8 @@ class LLFloaterPermsDefault : public LLFloater
 
 public:
 	/*virtual*/ BOOL postBuild();
-	void apply();
+	void ok();
 	void cancel();
-	void onClickApply();
 	void onClickOK();
 	void onClickCancel();
 	void onCommitCopy(const LLSD& user_data);
diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp
index b5976cbc99..0f6f4a0192 100755
--- a/indra/newview/llfloaterpreference.cpp
+++ b/indra/newview/llfloaterpreference.cpp
@@ -1188,6 +1188,9 @@ void LLFloaterPreference::refreshEnabledState()
 	disableUnavailableSettings();
 
 	getChildView("block_list")->setEnabled(LLLoginInstance::getInstance()->authSuccess());
+
+	// Cannot have floater active until caps have been received
+	getChild<LLButton>("default_creation_permissions")->setEnabled(LLStartUp::getStartupState() < STATE_STARTED ? false : true);
 }
 
 void LLFloaterPreference::disableUnavailableSettings()
diff --git a/indra/newview/skins/default/xui/en/floater_perms_default.xml b/indra/newview/skins/default/xui/en/floater_perms_default.xml
index 4e44c9ebb3..ceb260fffb 100644
--- a/indra/newview/skins/default/xui/en/floater_perms_default.xml
+++ b/indra/newview/skins/default/xui/en/floater_perms_default.xml
@@ -141,7 +141,7 @@
        control_name="ObjectsNextOwnerTransfer"
        height="16"
        layout="topleft"
-       name="Objects_transfer"
+       name="objects_t"
        left_pad="0"
        top_delta="0"
        width="100" />
@@ -157,7 +157,7 @@
        control_name="ObjectsEveryoneCopy"
        height="16"
        layout="topleft"
-       name="objects_a"
+       name="objects_e"
        left_pad="0"
        top_delta="0"
        width="100" />
@@ -204,7 +204,7 @@
        control_name="UploadsNextOwnerTransfer"
        height="16"
        layout="topleft"
-       name="Uploads_transfer"
+       name="uploads_t"
        left_pad="0"
        top_delta="0"
        width="100" />
@@ -220,7 +220,7 @@
        control_name="UploadsEveryoneCopy"
        height="16"
        layout="topleft"
-       name="uploads_a"
+       name="uploads_e"
        left_pad="0"
        top_delta="0"
        width="100" />
@@ -267,7 +267,7 @@
        control_name="ScriptsNextOwnerTransfer"
        height="16"
        layout="topleft"
-       name="Scripts_transfer"
+       name="scripts_t"
        left_pad="0"
        top_delta="0"
        width="100" />
@@ -283,7 +283,7 @@
        control_name="ScriptsEveryoneCopy"
        height="16"
        layout="topleft"
-       name="scripts_a"
+       name="scripts_e"
        left_pad="0"
        top_delta="0"
        width="100" />
@@ -330,7 +330,7 @@
        control_name="NotecardsNextOwnerTransfer"
        height="16"
        layout="topleft"
-       name="Notecards_transfer"
+       name="notecards_t"
        left_pad="0"
        top_delta="0"
        width="100" />
@@ -346,7 +346,7 @@
        control_name="NotecardsEveryoneCopy"
        height="16"
        layout="topleft"
-       name="notecards_a"
+       name="notecards_e"
        left_pad="0"
        top_delta="0"
        width="100" />
@@ -393,7 +393,7 @@
        control_name="GesturesNextOwnerTransfer"
        height="16"
        layout="topleft"
-       name="Gestures_transfer"
+       name="gestures_t"
        left_pad="0"
        top_delta="0"
        width="100" />
@@ -456,7 +456,7 @@
        control_name="WearablesNextOwnerTransfer"
        height="16"
        layout="topleft"
-       name="Wearables_transfer"
+       name="wearables_t"
        left_pad="0"
        top_delta="0"
        width="100" />
@@ -472,33 +472,21 @@
        control_name="WearablesEveryoneCopy"
        height="16"
        layout="topleft"
-       name="wearables_a"
+       name="wearables_e"
        left_pad="0"
        top_delta="0"
        width="100" />
   </panel>
-  <button
-   height="20"
-   label="Apply"
-   label_selected="Apply"
-   layout="topleft"
-   name="apply"
-   left="375"
-   width="100">
-	<button.commit_callback
-	 function="PermsDefault.Apply" />
-  </button>
   <button
    height="20"
    label="OK"
    label_selected="OK"
    layout="topleft"
-   left_pad="5"
    name="ok"
-   top_delta="0"
+   left="475"
    width="100">
-    <button.commit_callback
-     function="PermsDefault.OK" />
+	<button.commit_callback
+	 function="PermsDefault.OK" />
   </button>
   <button
    height="20"
diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml
index 554c7c95e4..3c04f07b12 100755
--- a/indra/newview/skins/default/xui/en/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/en/menu_viewer.xml
@@ -1077,6 +1077,13 @@
          label="Options"
          name="Options"
          tear_off="true">
+        <menu_item_call
+         label="Set Default Permissions..."
+         name="Set default permissions">
+          <menu_item_call.on_click
+           function="Floater.ToggleOrBringToFront"
+           parameter="perms_default" />
+        </menu_item_call>
 	   <menu_item_check
 	       label="Show Advanced Permissions"
 	       name="DebugPermissions">
diff --git a/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml
index 335f1614d8..2e778014c5 100755
--- a/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_advanced.xml
@@ -226,7 +226,7 @@
      height="20"
      label="Default Creation Permissions"
      layout="topleft"
-     name="Default Creation Permissions"
+     name="default_creation_permissions"
      left="30"
      top_pad = "20"
      width="250">
-- 
cgit v1.2.3


From 96e26e2ee4805ff56505f868b648203a642d8d06 Mon Sep 17 00:00:00 2001
From: Oz Linden <oz@lindenlab.com>
Date: Tue, 17 Dec 2013 13:05:12 -0500
Subject: add LLAgent::removeRegionChangedCallback

---
 indra/newview/llagent.cpp | 4 ++++
 indra/newview/llagent.h   | 1 +
 2 files changed, 5 insertions(+)

(limited to 'indra')

diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp
index 6ee8f26b9f..b1cd68140e 100755
--- a/indra/newview/llagent.cpp
+++ b/indra/newview/llagent.cpp
@@ -981,6 +981,10 @@ boost::signals2::connection LLAgent::addRegionChangedCallback(region_changed_cal
 	return mRegionChangedSignal.connect(cb);
 }
 
+void LLAgent::removeRegionChangedCallback(boost::signals2::connection callback)
+{
+	mRegionChangedSignal.disconnect(callback);
+}
 
 //-----------------------------------------------------------------------------
 // inPrelude()
diff --git a/indra/newview/llagent.h b/indra/newview/llagent.h
index 0662be897a..bc003387de 100755
--- a/indra/newview/llagent.h
+++ b/indra/newview/llagent.h
@@ -273,6 +273,7 @@ private:
 	 */
 	typedef boost::function<void()> region_changed_callback_t;
 	boost::signals2::connection     addRegionChangedCallback(region_changed_callback_t);
+	void                            removeRegionChangedCallback(boost::signals2::connection callback);
 
   private:
 	LLViewerRegion	*mRegionp;
-- 
cgit v1.2.3


From f6d86fcacf79c8147e2075db64caee7521f3b227 Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Tue, 17 Dec 2013 18:23:09 +0000
Subject: Fixing some BOOL to bool and changing one function to void

---
 indra/llui/llkeywords.cpp | 15 +++++++--------
 indra/llui/llkeywords.h   |  8 +++-----
 2 files changed, 10 insertions(+), 13 deletions(-)

(limited to 'indra')

diff --git a/indra/llui/llkeywords.cpp b/indra/llui/llkeywords.cpp
index 5f5810812e..393681be27 100755
--- a/indra/llui/llkeywords.cpp
+++ b/indra/llui/llkeywords.cpp
@@ -34,10 +34,10 @@
 #include "lltexteditor.h"
 #include "llstl.h"
 
-inline BOOL LLKeywordToken::isHead(const llwchar* s) const
+inline bool LLKeywordToken::isHead(const llwchar* s) const
 {
 	// strncmp is much faster than string compare
-	BOOL res = TRUE;
+	bool res = TRUE;
 	const llwchar* t = mToken.c_str();
 	S32 len = mToken.size();
 	for (S32 i=0; i<len; i++)
@@ -51,9 +51,9 @@ inline BOOL LLKeywordToken::isHead(const llwchar* s) const
 	return res;
 }
 
-inline BOOL LLKeywordToken::isTail(const llwchar* s) const
+inline bool LLKeywordToken::isTail(const llwchar* s) const
 {
-	BOOL res = TRUE;
+	bool res = TRUE;
 	const llwchar* t = mDelimiter.c_str();
 	S32 len = mDelimiter.size();
 	for (S32 i=0; i<len; i++)
@@ -67,7 +67,7 @@ inline BOOL LLKeywordToken::isTail(const llwchar* s) const
 	return res;
 }
 
-LLKeywords::LLKeywords() : mLoaded(FALSE) { }
+LLKeywords::LLKeywords() { }
 
 LLKeywords::~LLKeywords()
 {
@@ -195,11 +195,10 @@ LLColor4 LLKeywords::getColorGroup(const std::string key_in)
 	return LLUIColorTable::instance().getColor(ColourGroup);
 }
 
-bool LLKeywords::initialise(LLSD SyntaxXML)
+void LLKeywords::initialise(LLSD SyntaxXML)
 {
 	mSyntax = SyntaxXML;
-	mLoaded = true;
-	return mLoaded;
+	mLoaded = TRUE;
 }
 
 void LLKeywords::processTokens()
diff --git a/indra/llui/llkeywords.h b/indra/llui/llkeywords.h
index d0f1de8389..689fd75bcd 100755
--- a/indra/llui/llkeywords.h
+++ b/indra/llui/llkeywords.h
@@ -83,8 +83,8 @@ public:
 
 	S32					getLengthHead() const	{ return mToken.size(); }
 	S32					getLengthTail() const	{ return mDelimiter.size(); }
-	BOOL				isHead(const llwchar* s) const;
-	BOOL				isTail(const llwchar* s) const;
+	bool				isHead(const llwchar* s) const;
+	bool				isTail(const llwchar* s) const;
 	const LLWString&	getToken() const		{ return mToken; }
 	const LLColor4&		getColor() const		{ return mColor; }
 	TOKEN_TYPE			getType()  const		{ return mType; }
@@ -112,12 +112,10 @@ public:
 	void		addColorGroup(const std::string key_in, const LLColor4 color);
 	void		clearLoaded() { mLoaded = false; }
 	LLColor4	getColorGroup(const std::string key_in);
-	BOOL		loadFromFile();
-	BOOL		loadFromFile(const std::string& filename);
 	bool		isLoaded() const	{ return mLoaded; }
 
 	void		findSegments(std::vector<LLTextSegmentPtr> *seg_list, const LLWString& text, const LLColor4 &defaultColor, class LLTextEditor& editor );
-	bool		initialise(LLSD SyntaxXML);
+	void		initialise(LLSD SyntaxXML);
 	void		processTokens();
 
 	// Add the token as described
-- 
cgit v1.2.3


From 86275f22e3003af06c289ef34b5f859113236e4f Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Wed, 18 Dec 2013 06:26:22 +0000
Subject: STORM-1831 Changing addRegionChangedCallback to more closely resemble
 the feature it replaces. This fixes the crashes reported by Whirly ;-)

---
 indra/newview/llagent.cpp | 2 +-
 indra/newview/llagent.h   | 6 +++---
 2 files changed, 4 insertions(+), 4 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp
index b1cd68140e..14a2508697 100755
--- a/indra/newview/llagent.cpp
+++ b/indra/newview/llagent.cpp
@@ -976,7 +976,7 @@ LLHost LLAgent::getRegionHost() const
 	}
 }
 
-boost::signals2::connection LLAgent::addRegionChangedCallback(region_changed_callback_t cb)
+boost::signals2::connection LLAgent::addRegionChangedCallback(const region_changed_signal_t::slot_type& cb)
 {
 	return mRegionChangedSignal.connect(cb);
 }
diff --git a/indra/newview/llagent.h b/indra/newview/llagent.h
index bc003387de..0766407494 100755
--- a/indra/newview/llagent.h
+++ b/indra/newview/llagent.h
@@ -271,13 +271,13 @@ private:
 	 *       // you may or may not want to remove that callback
 	 * 	 }
 	 */
-	typedef boost::function<void()> region_changed_callback_t;
-	boost::signals2::connection     addRegionChangedCallback(region_changed_callback_t);
+	typedef boost::signals2::signal<void()> region_changed_signal_t;
+
+	boost::signals2::connection     addRegionChangedCallback(const region_changed_signal_t::slot_type& cb);
 	void                            removeRegionChangedCallback(boost::signals2::connection callback);
 
   private:
 	LLViewerRegion	*mRegionp;
-	typedef boost::signals2::signal<void()> region_changed_signal_t;
 	region_changed_signal_t		            mRegionChangedSignal;
 
 	//--------------------------------------------------------------------
-- 
cgit v1.2.3


From b18c9578b58ed7f98cd162adcecbf9df253263c9 Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Thu, 19 Dec 2013 04:27:28 +0000
Subject: Fixing loading of default keywords file when nothing has been
 previously loaded.

---
 indra/newview/llsyntaxid.cpp | 40 +++++++++++++++++++++++-----------------
 indra/newview/llsyntaxid.h   |  1 +
 2 files changed, 24 insertions(+), 17 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llsyntaxid.cpp b/indra/newview/llsyntaxid.cpp
index 43f840544c..94226b82b1 100644
--- a/indra/newview/llsyntaxid.cpp
+++ b/indra/newview/llsyntaxid.cpp
@@ -96,16 +96,7 @@ LLSD LLSyntaxIdLSL::sKeywordsXml;
 
 std::string LLSyntaxIdLSL::buildFileNameNew()
 {
-	std::string filename = "keywords_lsl_";
-	if (!mSyntaxIdNew.isNull())
-	{
-		filename += gLastVersionChannel + "_" + mSyntaxIdNew.asString();
-	}
-	else
-	{
-		filename += mFileNameDefault;
-	}
-	mFileNameNew = filename + ".llsd.xml";
+	mFileNameNew = mSyntaxIdNew.isNull() ? mFileNameDefault : "keywords_lsl_" + gLastVersionChannel + "_" + mSyntaxIdNew.asString() + ".llsd.xml";
 	return mFileNameNew;
 }
 
@@ -204,6 +195,8 @@ void LLSyntaxIdLSL::fetchKeywordsFile()
 
 void LLSyntaxIdLSL::initialise()
 {
+	mFileNameNew = mFileNameCurrent;
+	mSyntaxIdNew = mSyntaxIdCurrent;
 	if (checkSyntaxIdChanged())
 	{
 		LL_INFOS("SyntaxLSL")
@@ -231,20 +224,33 @@ void LLSyntaxIdLSL::initialise()
 		}
 		else
 		{ // Need to open the default
-			LL_INFOS("SyntaxLSL")
-					<< "LSLSyntaxId is null so we will use the default file!"
-					<< LL_ENDL;
-			loadKeywordsIntoLLSD();
+			loadDefaultKeywordsIntoLLSD("LSLSyntaxId is null so we will use the default file!");
 		}
-		mFileNameCurrent = mFileNameNew;
-		mSyntaxIdCurrent = mSyntaxIdNew;
 	}
-	else
+	else if (sKeywordsXml.isDefined())
 	{
 		LL_INFOS("SyntaxLSL")
 				<< "No change to Syntax! Nothing to see. Move along now!"
 				<< LL_ENDL;
 	}
+	else
+	{ // Need to open the default
+		loadDefaultKeywordsIntoLLSD("LSLSyntaxId is null so we will use the default file!");
+	}
+
+	mFileNameCurrent = mFileNameNew;
+	mSyntaxIdCurrent = mSyntaxIdNew;
+}
+
+//-----------------------------------------------------------------------------
+// loadDefaultKeywordsIntoLLSD()
+//-----------------------------------------------------------------------------
+void LLSyntaxIdLSL::loadDefaultKeywordsIntoLLSD(const std::string message)
+{
+	LL_INFOS("SyntaxLSL") << message << LL_ENDL;
+	mSyntaxIdNew = LLUUID();
+	buildFullFileSpec();
+	loadKeywordsIntoLLSD();
 }
 
 //-----------------------------------------------------------------------------
diff --git a/indra/newview/llsyntaxid.h b/indra/newview/llsyntaxid.h
index 3a711d7460..b968dd233d 100644
--- a/indra/newview/llsyntaxid.h
+++ b/indra/newview/llsyntaxid.h
@@ -111,6 +111,7 @@ protected:
 	std::string		buildFileNameNew();
 	std::string		buildFullFileSpec();
 	void			fetchKeywordsFile();
+	void			loadDefaultKeywordsIntoLLSD(const std::string message);
 	bool			loadKeywordsIntoLLSD();
 	void			setSyntaxId(LLUUID SyntaxId) { mSyntaxIdCurrent = SyntaxId; }
 	void			setFileNameCurrent(std::string& name) { mFileNameCurrent = name; }
-- 
cgit v1.2.3


From 7d4febe7bbadf6e597231d2a547f22d4bc37958e Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Sat, 4 Jan 2014 01:19:51 +0000
Subject: STORM-1831/STORM-2000 Changing LSL syntax schema to contain arguments
 in an array instead of a map element.

---
 indra/llui/llkeywords.cpp                          |    43 +-
 .../newview/app_settings/keywords_lsl_default.xml  | 14106 ++++++++++---------
 2 files changed, 7777 insertions(+), 6372 deletions(-)
 mode change 100644 => 100755 indra/newview/app_settings/keywords_lsl_default.xml

(limited to 'indra')

diff --git a/indra/llui/llkeywords.cpp b/indra/llui/llkeywords.cpp
index 393681be27..b7de4d5224 100755
--- a/indra/llui/llkeywords.cpp
+++ b/indra/llui/llkeywords.cpp
@@ -132,25 +132,40 @@ void LLKeywords::addToken(LLKeywordToken::TOKEN_TYPE type,
 
 std::string LLKeywords::getArguments(LLSD& arguments)
 {
-	std::string args = "";
-	if (arguments.isMap())
+	std::string argString = "";
+
+	if (arguments.isArray())
 	{
-		int count = arguments.size();
-		LLSD::map_iterator argsIt = arguments.beginMap();
-		for ( ; argsIt != arguments.endMap(); ++argsIt)
+		int argsCount = arguments.size();
+		LLSD::array_iterator arrayIt = arguments.beginArray();
+		for ( ; arrayIt != arguments.endArray(); ++arrayIt)
 		{
-				args += argsIt->second.get("type").asString() + " " + argsIt->first;
-				if (count-- > 1)
+			LLSD& args = (*arrayIt);
+			if (args.isMap())
+			{
+				LLSD::map_iterator argsIt = args.beginMap();
+				for ( ; argsIt != args.endMap(); ++argsIt)
 				{
-					args += ", ";
+					argString += argsIt->second.get("type").asString() + " " + argsIt->first;
+					if (argsCount-- > 1)
+					{
+						argString += ", ";
+					}
 				}
+			}
+			else
+			{
+				LL_INFOS("SyntaxLSL")
+						<< "Argument array does not comtain a map element!" << LL_ENDL;
+			}
 		}
 	}
 	else if (!arguments.isUndefined())
 	{
-		LL_WARNS("Arguments") << "Not a map! Invalid LLSD passed to function.\n" << arguments << LL_ENDL;
+		LL_WARNS("SyntaxLSL")
+				<< "Not an array! Invalid arguments LLSD passed to function." << arguments << LL_ENDL;
 	}
-	return args == "" ? " void " : args;
+	return argString == "" ? " void " : argString;
 }
 
 std::string LLKeywords::getAttribute(const std::string& key)
@@ -246,7 +261,6 @@ void LLKeywords::processTokens()
 void LLKeywords::processTokensGroup(LLSD& Tokens, const std::string Group)
 {
 	LLColor4 Color;
-	LL_INFOS("Tokens") << "Group: '" << Group << "', using colour: '" << Color << "'" << LL_ENDL;
 
 	LLKeywordToken::TOKEN_TYPE token_type = LLKeywordToken::TT_UNKNOWN;
 	// If a new token type is added here, it must also be added to the 'addToken' method
@@ -275,12 +289,14 @@ void LLKeywords::processTokensGroup(LLSD& Tokens, const std::string Group)
 		token_type = LLKeywordToken::TT_TYPE;
 	}
 
+	Color = getColorGroup(Group);
+	LL_INFOS("Tokens") << "Group: '" << Group << "', using colour: '" << Color << "'" << LL_ENDL;
+
 	if (Tokens.isMap())
 	{
 		LLSD::map_iterator outerIt = Tokens.beginMap();
 		for ( ; outerIt != Tokens.endMap(); ++outerIt)
 		{
-			Color = getColorGroup(Group);
 			if (outerIt->second.isMap())
 			{
 				mAttributes.clear();
@@ -291,7 +307,7 @@ void LLKeywords::processTokensGroup(LLSD& Tokens, const std::string Group)
 				{
 					if (innerIt->first == "arguments")
 					{ 
-						if (innerIt->second.isMap())
+						if (innerIt->second.isArray())
 						{
 							arguments = innerIt->second;
 						}
@@ -343,6 +359,7 @@ void LLKeywords::processTokensGroup(LLSD& Tokens, const std::string Group)
 	}
 	else if (Tokens.isArray())	// Currently nothing should need this, but it's here for completeness
 	{
+		LL_INFOS("SyntaxLSL") << "Curious, shouldn't be an array here" << LL_ENDL;
 		for (int count = 0; count < Tokens.size(); ++count)
 		{
 			addToken(token_type, Tokens[count], Color, "");
diff --git a/indra/newview/app_settings/keywords_lsl_default.xml b/indra/newview/app_settings/keywords_lsl_default.xml
old mode 100644
new mode 100755
index c1e15045a7..f02a2136c0
--- a/indra/newview/app_settings/keywords_lsl_default.xml
+++ b/indra/newview/app_settings/keywords_lsl_default.xml
@@ -5264,14 +5264,20 @@
             <key>type</key>
             <string>vector</string>
             <key>value</key>
-            <map>
-               <key>x</key>
-               <real>-1.0</real>
-               <key>y</key>
-               <real>-1.0</real>
-               <key>z</key>
-               <real>0.0</real>
-            </map>
+            <array>
+               <map>
+                  <key>x</key>
+                  <real>-1.0</real>
+               </map>
+               <map>
+                  <key>y</key>
+                  <real>-1.0</real>
+               </map>
+               <map>
+                  <key>z</key>
+                  <real>0.0</real>
+               </map>
+            </array>
             <key>tooltip</key>
             <string/>
          </map>
@@ -5280,14 +5286,20 @@
             <key>type</key>
             <string>vector</string>
             <key>value</key>
-            <map>
-               <key>x</key>
-               <real>0.0</real>
-               <key>y</key>
-               <real>0.0</real>
-               <key>z</key>
-               <real>0.0</real>
-            </map>
+            <array>
+               <map>
+                  <key>x</key>
+                  <real>0.0</real>
+               </map>
+               <map>
+                  <key>y</key>
+                  <real>0.0</real>
+               </map>
+               <map>
+                  <key>z</key>
+                  <real>0.0</real>
+               </map>
+            </array>
             <key>tooltip</key>
             <string/>
          </map>
@@ -6022,16 +6034,24 @@
             <key>type</key>
             <string>rotation</string>
             <key>value</key>
-            <map>
-               <key>x</key>
-               <real>0.0</real>
-               <key>y</key>
-               <real>0.0</real>
-               <key>z</key>
-               <real>0.0</real>
-               <key>w</key>
-               <real>1.0</real>
-            </map>
+            <array>
+               <map>
+                  <key>x</key>
+                  <real>0.0</real>
+               </map>
+               <map>
+                  <key>y</key>
+                  <real>0.0</real>
+               </map>
+               <map>
+                  <key>z</key>
+                  <real>0.0</real>
+               </map>
+               <map>
+                  <key>w</key>
+                  <real>1.0</real>
+               </map>
+            </array>
             <key>tooltip</key>
             <string/>
          </map>
@@ -6040,14 +6060,20 @@
             <key>type</key>
             <string>vector</string>
             <key>value</key>
-            <map>
-               <key>x</key>
-               <real>0.0</real>
-               <key>y</key>
-               <real>0.0</real>
-               <key>z</key>
-               <real>0.0</real>
-            </map>
+            <array>
+               <map>
+                  <key>x</key>
+                  <real>0.0</real>
+               </map>
+               <map>
+                  <key>y</key>
+                  <real>0.0</real>
+               </map>
+               <map>
+                  <key>z</key>
+                  <real>0.0</real>
+               </map>
+            </array>
             <key>tooltip</key>
             <string/>
          </map>
@@ -6057,103 +6083,121 @@
          <key>at_rot_target</key>
          <map>
             <key>arguments</key>
-            <map>
-               <key>TargetNumber</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>TargetNumber</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>TargetRotation</key>
                <map>
-                  <key>type</key>
-                  <string>rotation</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>TargetRotation</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>rotation</string>
+                  </map>
                </map>
-               <key>CurrentRotation</key>
                <map>
-                  <key>type</key>
-                  <string>rotation</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>CurrentRotation</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>rotation</string>
+                  </map>
                </map>
-            </map>
+            </array>
             <key>tooltip</key>
             <string>This event is triggered when a script comes within a defined angle of a target rotation. The range and rotation, are set by a call to llRotTarget.</string>
          </map>
          <key>at_target</key>
          <map>
             <key>arguments</key>
-            <map>
-               <key>TargetNumber</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>TargetNumber</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>TargetPosition</key>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>TargetPosition</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-               <key>CurrentPosition</key>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>CurrentPosition</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-            </map>
+            </array>
             <key>tooltip</key>
             <string>This event is triggered when the scripted object comes within a defined range of the target position, defined by the llTarget function call.</string>
          </map>
          <key>attach</key>
          <map>
             <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>AvatarID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
                </map>
-            </map>
+            </array>
             <key>tooltip</key>
             <string>This event is triggered whenever an object is attached or detached from an avatar. If it is attached, the key of the avatar it is attached to is passed in, otherwise NULL_KEY is.</string>
          </map>
          <key>changed</key>
          <map>
             <key>arguments</key>
-            <map>
-               <key>Changed</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Changed</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
             <key>tooltip</key>
             <string>Triggered when various events change the object. The change argument will be a bit-field of CHANGED_* constants.</string>
          </map>
          <key>collision</key>
          <map>
             <key>arguments</key>
-            <map>
-               <key>NumberOfCollisions</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>NumberOfCollisions</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
             <key>tooltip</key>
             <string>This event is raised while another object, or avatar, is colliding with the object the script is attached to.
 			The number of detected objects is passed to the script. Information on those objects may be gathered via the llDetected* functions.</string>
@@ -6161,15 +6205,17 @@
          <key>collision_end</key>
          <map>
             <key>arguments</key>
-            <map>
-               <key>NumberOfCollisions</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>NumberOfCollisions</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
             <key>tooltip</key>
             <string>This event is raised when another object, or avatar, stops colliding with the object the script is attached to.
 			The number of detected objects is passed to the script. Information on those objects may be gathered via the llDetected* library functions.</string>
@@ -6177,15 +6223,17 @@
          <key>collision_start</key>
          <map>
             <key>arguments</key>
-            <map>
-               <key>NumberOfCollisions</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>NumberOfCollisions</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
             <key>tooltip</key>
             <string>This event is raised when another object, or avatar, starts colliding with the object the script is attached to.
 			The number of detected objects is passed to the script. Information on those objects may be gathered via the llDetected* library functions.</string>
@@ -6193,29 +6241,35 @@
          <key>control</key>
          <map>
             <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>AvatarID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
                </map>
-               <key>Levels</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Levels</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>Edges</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Edges</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
             <key>tooltip</key>
             <string>Once a script has the ability to grab control inputs from the avatar, this event will be used to pass the commands into the script.
 			The levels and edges are bit-fields of control constants.</string>
@@ -6223,22 +6277,26 @@
          <key>dataserver</key>
          <map>
             <key>arguments</key>
-            <map>
-               <key>RequestID</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>RequestID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
                </map>
-               <key>Data</key>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Data</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-            </map>
+            </array>
             <key>tooltip</key>
             <string>This event is triggered when the requested data is returned to the script.
 			Data may be requested by the llRequestAgentData, llRequestInventoryData, and llGetNotecardLine function calls, for example.</string>
@@ -6246,43 +6304,53 @@
          <key>email</key>
          <map>
             <key>arguments</key>
-            <map>
-               <key>Time</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Time</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-               <key>Address</key>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Address</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-               <key>Subject</key>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Subject</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-               <key>Body</key>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Body</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-               <key>NumberRemaining</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>NumberRemaining</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
             <key>tooltip</key>
             <string>This event is triggered when an email sent to this script arrives.
 			The number remaining tells how many more emails are known to be still pending.</string>
@@ -6290,182 +6358,218 @@
          <key>http_request</key>
          <map>
             <key>arguments</key>
-            <map>
-               <key>HTTPRequestID</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>HTTPRequestID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
                </map>
-               <key>HTTPMethod</key>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>HTTPMethod</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-               <key>Body</key>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Body</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-            </map>
+            </array>
             <key>tooltip</key>
             <string>Triggered when task receives an HTTP request.</string>
          </map>
          <key>http_response</key>
          <map>
             <key>arguments</key>
-            <map>
-               <key>HTTPRequestID</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>HTTPRequestID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
                </map>
-               <key>Status</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Status</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>Metadata</key>
                <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Metadata</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
                </map>
-               <key>Body</key>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Body</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-            </map>
+            </array>
             <key>tooltip</key>
             <string>This event handler is invoked when an HTTP response is received for a pending llHTTPRequest request or if a pending request fails or times out.</string>
          </map>
          <key>land_collision</key>
          <map>
             <key>arguments</key>
-            <map>
-               <key>Position</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Position</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-            </map>
+            </array>
             <key>tooltip</key>
             <string>This event is raised when the object the script is attached to is colliding with the ground.</string>
          </map>
          <key>land_collision_end</key>
          <map>
             <key>arguments</key>
-            <map>
-               <key>Position</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Position</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-            </map>
+            </array>
             <key>tooltip</key>
             <string>This event is raised when the object the script is attached to stops colliding with the ground.</string>
          </map>
          <key>land_collision_start</key>
          <map>
             <key>arguments</key>
-            <map>
-               <key>Position</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Position</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-            </map>
+            </array>
             <key>tooltip</key>
             <string>This event is raised when the object the script is attached to begins to collide with the ground.</string>
          </map>
          <key>link_message</key>
          <map>
             <key>arguments</key>
-            <map>
-               <key>SendersLink</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>SendersLink</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>Value</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Value</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>Text</key>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-               <key>ID</key>
                <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>ID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
                </map>
-            </map>
+            </array>
             <key>tooltip</key>
             <string>Triggered when object receives a link message via llMessageLinked function call.</string>
          </map>
          <key>listen</key>
          <map>
             <key>arguments</key>
-            <map>
-               <key>Channel</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Channel</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>Name</key>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Name</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-               <key>ID</key>
                <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>ID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
                </map>
-               <key>Text</key>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-            </map>
+            </array>
             <key>tooltip</key>
             <string>This event is raised whenever a chat message matching the constraints set in the llListen command is received. The name and ID of the speaker, as well as the message, are passed in as parameters.
 			Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 through 2,147,483,648 are private channels that are not sent to avatars but other scripts can listen on those channels.</string>
@@ -6473,22 +6577,26 @@
          <key>money</key>
          <map>
             <key>arguments</key>
-            <map>
-               <key>Payer</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Payer</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
                </map>
-               <key>Amount</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Amount</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
             <key>tooltip</key>
             <string>This event is triggered when a resident has given an amount of Linden dollars to the object.</string>
          </map>
@@ -6530,117 +6638,139 @@
          <key>object_rez</key>
          <map>
             <key>arguments</key>
-            <map>
-               <key>RezzedObjectsID</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>RezzedObjectsID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
                </map>
-            </map>
+            </array>
             <key>tooltip</key>
             <string>Triggered when an object rezzes another object from its inventory via the llRezObject, or similar, functions. The id is the globally unique key for the object rezzed.</string>
          </map>
          <key>on_rez</key>
          <map>
             <key>arguments</key>
-            <map>
-               <key>StartParameter</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>StartParameter</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
             <key>tooltip</key>
             <string>Triggered whenever an object is rezzed from inventory or by another object. The start parameter is passed in from the llRezObject call, or zero if from inventory.</string>
          </map>
          <key>path_update</key>
          <map>
             <key>arguments</key>
-            <map>
-               <key>Type</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Type</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>Reserved</key>
                <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Reserved</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
                </map>
-            </map>
+            </array>
             <key>tooltip</key>
             <string>This event is called to inform the script of changes within the object's path-finding status.</string>
          </map>
          <key>remote_data</key>
          <map>
             <key>arguments</key>
-            <map>
-               <key>EventType</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>EventType</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>ChannelID</key>
                <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>ChannelID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
                </map>
-               <key>MessageID</key>
                <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>MessageID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
                </map>
-               <key>Sender</key>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Sender</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-               <key>Data</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Data</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>Data</key>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Data</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-            </map>
+            </array>
             <key>tooltip</key>
             <string>Triggered by various XML-RPC calls with event_type specifying the type of data.</string>
          </map>
          <key>run_time_permissions</key>
          <map>
             <key>arguments</key>
-            <map>
-               <key>PermissionFlags</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>PermissionFlags</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
             <key>tooltip</key>
             <string>Scripts need permission from either the owner or the avatar they wish to act on before they may perform certain functions, such as debiting money from their owners account, triggering an animation on an avatar, or capturing control inputs. The llRequestPermissions library function is used to request these permissions and the various permissions integer constants can be supplied.
 			The integer returned to this event handler contains the current set of permissions flags, so if permissions equal 0 then no permissions are set.</string>
@@ -6648,15 +6778,17 @@
          <key>sensor</key>
          <map>
             <key>arguments</key>
-            <map>
-               <key>NumberDetected</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>NumberDetected</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
             <key>tooltip</key>
             <string>This event is raised whenever objects matching the constraints of the llSensor command are detected.
 			The number of detected objects is passed to the script in the parameter. Information on those objects may be gathered via the llDetected* functions.</string>
@@ -6685,15 +6817,17 @@
          <key>touch</key>
          <map>
             <key>arguments</key>
-            <map>
-               <key>NumberOfTouches</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>NumberOfTouches</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
             <key>tooltip</key>
             <string>This event is raised while a user is touching the object the script is attached to.
 			The number of touching objects is passed to the script in the parameter.
@@ -6702,15 +6836,17 @@
          <key>touch_end</key>
          <map>
             <key>arguments</key>
-            <map>
-               <key>NumberOfTouches</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>NumberOfTouches</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
             <key>tooltip</key>
             <string>This event is raised when a user stops touching the object the script is attached to. The number of touches is passed to the script in the parameter.
 			Information on those objects may be gathered via the llDetected* library functions.</string>
@@ -6718,15 +6854,17 @@
          <key>touch_start</key>
          <map>
             <key>arguments</key>
-            <map>
-               <key>NumberOfTouches</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>NumberOfTouches</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
             <key>tooltip</key>
             <string>This event is raised when a user first touches the object the script is attached to. The number of touches is passed to the script in the parameter.
 			Information on those objects may be gathered via the llDetected() library functions.</string>
@@ -6734,29 +6872,35 @@
          <key>transaction_result</key>
          <map>
             <key>arguments</key>
-            <map>
-               <key>RequestID</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>RequestID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
                </map>
-               <key>Success</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Success</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>Message</key>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Message</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-            </map>
+            </array>
             <key>tooltip</key>
             <string>Triggered by llTransferMoney() function.</string>
          </map>
@@ -6765,1298 +6909,1446 @@
       <map>
          <key>llAbs</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Value</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Value</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the absolute (positive) version of Value.</string>
          </map>
          <key>llAcos</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Value</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>Value</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the arc-cosine of Value, in radians.</string>
          </map>
          <key>llAddToLandBanList</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>ID</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>ID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
                </map>
-               <key>Hours</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Hours</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Add avatar ID to the parcel ban list for the specified number of Hours.\nA value of 0 for Hours will add the agent indefinitely.\nThe smallest value that Hours will accept is 0.01; anything smaller will be seen as 0.\nWhen values that small are used, it seems the function bans in approximately 30 second increments (Probably 36 second increments, as 0.01 of an hour is 36 seconds).\nResidents teleporting to a parcel where they are banned will be redirected to a neighbouring parcel.</string>
          </map>
          <key>llAddToLandPassList</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.1</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>ID</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>ID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
                </map>
-               <key>Hours</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Hours</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.1</real>
             <key>tooltip</key>
             <string>Add avatar ID to the land pass list, for a duration of Hours.</string>
          </map>
          <key>llAdjustSoundVolume</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Volume</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.1</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Volume</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.1</real>
             <key>tooltip</key>
             <string>Adjusts the volume (0.0 - 1.0) of the currently playing attached sound started with llPlaySound or llLoopSound.\nAdjusts the volume of the currently playing attached sound started with llPlaySound or llLoopSound.\nThis function has no effect on sounds started with llTriggerSound.</string>
          </map>
          <key>llAllowInventoryDrop</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Flag</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Flag</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>If Flag == TRUE, users without object modify permissions can still drop inventory items into the object.</string>
          </map>
          <key>llAngleBetween</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
             <key>arguments</key>
-            <map>
-               <key>Rot1</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>rotation</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Rot1</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>rotation</string>
+                  </map>
                </map>
-               <key>Rot2</key>
                <map>
-                  <key>type</key>
-                  <string>rotation</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Rot2</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>rotation</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the angle, in radians, between rotations Rot1 and Rot2.</string>
          </map>
          <key>llApplyImpulse</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>Force</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Force</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-               <key>Local</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Local</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Applies impulse to the object.\nApplies the Force in local coordinates if Local == TRUE. Otherwise the Force is applied in global coordinates.\nThis function only works on physical objects.</string>
          </map>
          <key>llApplyRotationalImpulse</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>Force</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Force</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-               <key>Local</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Local</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Applies rotational impulse to the object,\nThe force is in local coordinates, if Local == TRUE, otherwise the impulse is applied in global coordinates.\nThis function only works on physical objects.</string>
          </map>
          <key>llAsin</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Value</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>Value</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the arc-sine, in radians, of Value.</string>
          </map>
          <key>llAtan2</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
             <key>arguments</key>
-            <map>
-               <key>y</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>y</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-               <key>x</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>x</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the arc-tangent2 of y, x.</string>
          </map>
          <key>llAttachToAvatar</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>AttachmentPoint</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>AttachmentPoint</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Attach to avatar at point AttachmentPoint, if task has permissions to do so.\nAttach to avatar at point iAttachmentPoint.\nRequires the PERMISSION_ATTACH runtime permission.</string>
          </map>
          <key>llAttachToAvatarTemp</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>AttachPoint</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>0</real>
-            <key>sleep</key>
-            <real>0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>AttachPoint</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0</real>
             <key>tooltip</key>
             <string>Follows the same convention as llAttachToAvatar, with the exception that the object will not create new inventory for the user, and will disappear on detach or disconnect.</string>
          </map>
          <key>llAvatarOnLinkSitTarget</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>LinkNumber</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>key</string>
-            <key>arguments</key>
-            <map>
-               <key>LinkNumber</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>If an avatar is sitting on the link's sit target, return the avatar's key, NULL_KEY otherwise.\nReturns a key that is the UUID of the user seated on the specified link's prim.</string>
          </map>
          <key>llAvatarOnSitTarget</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>key</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>If an avatar is seated on the sit target, returns the avatar's key, otherwise NULL_KEY.\nThis only will detect avatars sitting on sit targets defined with llSitTarget.</string>
          </map>
          <key>llAxes2Rot</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>rotation</string>
             <key>arguments</key>
-            <map>
-               <key>Forward</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Forward</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-               <key>Left</key>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Left</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-               <key>Up</key>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Up</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>rotation</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the rotation represented by coordinate axes Forward, Left, and Up.</string>
          </map>
          <key>llAxisAngle2Rot</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>rotation</string>
             <key>arguments</key>
-            <map>
-               <key>Axis</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Axis</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-               <key>Angle</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Angle</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>rotation</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the rotation that is a generated Angle about Axis.</string>
          </map>
          <key>llBase64ToInteger</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns an integer that is the Text, Base64 decoded as a big endian integer.\nReturns zero if Text is longer then 8 characters. If Text contains fewer then 6 characters, the return value is unpredictable.</string>
          </map>
          <key>llBase64ToString</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Converts a Base64 string to a conventional string.\nIf the conversion creates any unprintable characters, they are converted to question marks.</string>
          </map>
          <key>llBreakAllLinks</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>De-links all prims in the link set (requires permission PERMISSION_CHANGE_LINKS be set).</string>
          </map>
          <key>llBreakLink</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>LinkNumber</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>LinkNumber</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>De-links the prim with the given link number (requires permission PERMISSION_CHANGE_LINKS be set).</string>
          </map>
          <key>llCastRay</key>
          <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real/>
-            <key>return</key>
-            <string>list</string>
             <key>arguments</key>
-            <map>
-               <key>Start</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Start</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-               <key>End</key>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>End</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-               <key>Options</key>
                <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Options</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
                </map>
-            </map>
-            <key>tooltip</key>
-            <string>Casts a ray into the physics world from 'start' to 'end' and returns data according to details in Options.\nReports collision data for intersections with objects.\nReturn value: [UUID_1, {link_number_1}, hit_position_1, {hit_normal_1}, UUID_2, {link_number_2}, hit_position_2, {hit_normal_2}, ... , status_code] where {} indicates optional data.</string>
+            </array>
+            <key>energy</key>
+            <real/>
+            <key>return</key>
+            <string>list</string>
+            <key>sleep</key>
+            <real/>
+            <key>tooltip</key>
+            <string>Casts a ray into the physics world from 'start' to 'end' and returns data according to details in Options.\nReports collision data for intersections with objects.\nReturn value: [UUID_1, {link_number_1}, hit_position_1, {hit_normal_1}, UUID_2, {link_number_2}, hit_position_2, {hit_normal_2}, ... , status_code] where {} indicates optional data.</string>
          </map>
          <key>llCeil</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Value</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Value</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns smallest integer value &gt;= Value.</string>
          </map>
          <key>llClearCameraParams</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Resets all camera parameters to default values and turns off scripted camera control.</string>
          </map>
          <key>llClearLinkMedia</key>
          <map>
-            <key>energy</key>
-            <real>0.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
             <key>arguments</key>
-            <map>
-               <key>Link</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Link</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>Face</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Face</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Clears (deletes) the media and all parameters from the given Face on the linked prim.\nReturns an integer that is a STATUS_* flag, which details the success/failure of the operation.</string>
          </map>
          <key>llClearPrimMedia</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Face</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.1</real>
             <key>return</key>
             <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Face</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.1</real>
             <key>tooltip</key>
             <string>Clears (deletes) the media and all parameters from the given Face.\nReturns an integer that is a STATUS_* flag which details the success/failure of the operation.</string>
          </map>
          <key>llCloseRemoteDataChannel</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>ChannelID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>1.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>ChannelID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>1.0</real>
             <key>tooltip</key>
             <string>Closes the specified XML-RPC channel.</string>
          </map>
          <key>llCloud</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Offset</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>Offset</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the cloud density at the object's position + Offset.</string>
          </map>
          <key>llCollisionFilter</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>ObjectName</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>ObjectName</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-               <key>ObjectID</key>
                <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>ObjectID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
                </map>
-               <key>Accept</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Accept</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>If Accept == TRUE, only accept collisions with objects Name and ID, otherwise with objects not Name or ID.\nSpecify an empty string or NULL_KEY to not filter on the corresponding parameter.</string>
          </map>
          <key>llCollisionSound</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>ImpactSound</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>ImpactSound</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-               <key>ImpactVolume</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>ImpactVolume</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Suppress default collision sounds, replace default impact sounds with ImpactSound.\nThe ImpactSound must be in the object inventory.\nSupply an empty string to suppress collision sounds.</string>
          </map>
          <key>llCollisionSprite</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>ImpactSprite</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>ImpactSprite</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Suppress default collision sprites, replace default impact sprite with ImpactSprite; found in the object inventory (empty string to just suppress).</string>
          </map>
          <key>llCos</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Theta</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>Theta</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the cosine of Theta (Theta in radians).</string>
          </map>
          <key>llCreateCharacter</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Options</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real/>
-            <key>sleep</key>
-            <real/>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Options</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real/>
             <key>tooltip</key>
             <string>Convert link-set to AI/Physics character.\nCreates a path-finding entity, known as a "character", from the object containing the script. Required to activate use of path-finding functions.\nOptions is a list of key/value pairs.</string>
          </map>
          <key>llCreateLink</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>1.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>TargetPrim</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>TargetPrim</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
                </map>
-               <key>Parent</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Parent</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>1.0</real>
             <key>tooltip</key>
             <string>Attempt to link the object the script is in, to target (requires permission PERMISSION_CHANGE_LINKS be set).\nIf parent == TRUE, the object the script is attached to is the root.\nRequires permission PERMISSION_CHANGE_LINKS be set.</string>
          </map>
          <key>llCSV2List</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>list</string>
-            <key>arguments</key>
-            <map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Create a list from a string of comma separated values specified in Text.</string>
          </map>
          <key>llDeleteCharacter</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real/>
-            <key>sleep</key>
-            <real/>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real/>
             <key>tooltip</key>
             <string>Convert link-set from AI/Physics character to Physics object.\nConvert the current link-set back to a standard object, removing all path-finding properties.</string>
          </map>
          <key>llDeleteSubList</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>list</string>
             <key>arguments</key>
-            <map>
-               <key>Source</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Source</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
                </map>
-               <key>Start</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Start</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>End</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>End</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Removes the slice from start to end and returns the remainder of the list.\nRemove a slice from the list and return the remainder, start and end are inclusive.\nUsing negative numbers for start and/or end causes the index to count backwards from the length of the list, so 0, -1 would delete the entire list.\nIf Start is larger than End the list deleted is the exclusion of the entries; so 6, 4 would delete the entire list except for the 5th. list entry.</string>
          </map>
          <key>llDeleteSubString</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
             <key>arguments</key>
-            <map>
-               <key>Source</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Source</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-               <key>Start</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Start</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>End</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>End</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Removes the indicated sub-string and returns the result.\nStart and End are inclusive.\nUsing negative numbers for Start and/or End causes the index to count backwards from the length of the string, so 0, -1 would delete the entire string.\nIf Start is larger than End, the sub-string is the exclusion of the entries; so 6, 4 would delete the entire string except for the 5th. character.</string>
          </map>
          <key>llDetachFromAvatar</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Remove the object containing the script from the avatar.</string>
          </map>
          <key>llDetectedGrab</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Number</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>Number</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the grab offset of a user touching the object.\nReturns &lt;0.0, 0.0, 0.0&gt; if Number is not a valid object.</string>
          </map>
          <key>llDetectedGroup</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Number</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Number</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns TRUE if detected object or agent Number has the same user group active as this object.\nIt will return FALSE if the object or agent is in the group, but the group is not active.</string>
          </map>
          <key>llDetectedKey</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Number</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>key</string>
-            <key>arguments</key>
-            <map>
-               <key>Number</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the key of detected object or avatar number.\nReturns NULL_KEY if Number is not a valid index.</string>
          </map>
          <key>llDetectedLinkNumber</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Number</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Number</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the link position of the triggered event for touches and collisions only.\n0 for a non-linked object, 1 for the root of a linked object, 2 for the first child, etc.</string>
          </map>
          <key>llDetectedName</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Number</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>Number</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the name of detected object or avatar number.\nReturns the name of detected object number.\nReturns empty string if Number is not a valid index.</string>
          </map>
          <key>llDetectedOwner</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Number</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>key</string>
-            <key>arguments</key>
-            <map>
-               <key>Number</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the key of detected object's owner.\nReturns invalid key if Number is not a valid index.</string>
          </map>
          <key>llDetectedPos</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Number</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>Number</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the position of detected object or avatar number.\nReturns &lt;0.0, 0.0, 0.0&gt; if Number is not a valid index.</string>
          </map>
          <key>llDetectedRot</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Number</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>rotation</string>
-            <key>arguments</key>
-            <map>
-               <key>Number</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the rotation of detected object or avatar number.\nReturns &lt;0.0, 0.0, 0.0, 1.0&gt; if Number is not a valid offset.</string>
          </map>
          <key>llDetectedTouchBinormal</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Index</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>Index</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the surface bi-normal for a triggered touch event.\nReturns a vector that is the surface bi-normal (tangent to the surface) where the touch event was triggered.</string>
          </map>
          <key>llDetectedTouchFace</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Index</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Index</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the index of the face where the avatar clicked in a triggered touch event.</string>
          </map>
          <key>llDetectedTouchNormal</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Index</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>Index</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the surface normal for a triggered touch event.\nReturns a vector that is the surface normal (perpendicular to the surface) where the touch event was triggered.</string>
          </map>
          <key>llDetectedTouchPos</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Index</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>Index</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the position, in region coordinates, where the object was touched in a triggered touch event.\nUnless it is a HUD, in which case it returns the position relative to the attach point.</string>
          </map>
          <key>llDetectedTouchST</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
             <key>arguments</key>
-            <map>
-               <key>Index</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Index</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns a vector that is the surface coordinates where the prim was touched.\nThe X and Y vector positions contain the horizontal (S) and vertical (T) face coordinates respectively.\nEach component is in the interval [0.0, 1.0].\nTOUCH_INVALID_TEXCOORD is returned if the surface coordinates cannot be determined (e.g. when the viewer does not support this function).</string>
          </map>
          <key>llDetectedTouchUV</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Index</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>Index</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns a vector that is the texture coordinates for where the prim was touched.\nThe X and Y vector positions contain the U and V face coordinates respectively.\nTOUCH_INVALID_TEXCOORD is returned if the touch UV coordinates cannot be determined (e.g. when the viewer does not support this function).</string>
          </map>
          <key>llDetectedType</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Number</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Number</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the type (AGENT, ACTIVE, PASSIVE, SCRIPTED) of detected object.\nReturns 0 if number is not a valid index.\nNote that number is a bit-field, so comparisons need to be a bitwise checked. e.g.:\ninteger iType = llDetectedType(0);\n{\n	// ...do stuff with the agent\n}</string>
          </map>
          <key>llDetectedVel</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Number</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>Number</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the velocity of the detected object Number.\nReturns&lt;0.0, 0.0, 0.0&gt; if Number is not a valid offset.</string>
          </map>
          <key>llDialog</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.1</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>AvatarID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
                </map>
-               <key>Text</key>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-               <key>Buttons</key>
                <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Buttons</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
                </map>
-               <key>Channel</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Channel</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.1</real>
             <key>tooltip</key>
             <string>Shows a dialog box on the avatar's screen with the message.\n
 				Up to 12 strings in the list form buttons.\n
@@ -8071,732 +8363,802 @@
          </map>
          <key>llDie</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>0.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Deletes the object.\nDelete the object which holds the script.</string>
          </map>
          <key>llDumpList2String</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
             <key>arguments</key>
-            <map>
-               <key>Source</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Source</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
                </map>
-               <key>Separator</key>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Separator</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the list as a single string, using Separator between the entries.\nWrite the list out as a single string, using Separator between values.</string>
          </map>
          <key>llEdgeOfWorld</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
             <key>arguments</key>
-            <map>
-               <key>Position</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Position</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-               <key>Direction</key>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Direction</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Checks to see whether the border hit by Direction from Position is the edge of the world (has no neighboring region).\nReturns TRUE if the line along Direction from Position hits the edge of the world in the current simulator, returns FALSE if that edge crosses into another simulator.</string>
          </map>
          <key>llEjectFromLand</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>AvatarID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Ejects AvatarID from land that you own.\nEjects AvatarID from land that the object owner (group or resident) owns.</string>
          </map>
          <key>llEmail</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>20.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>Address</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Address</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-               <key>Subject</key>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Subject</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-               <key>Text</key>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>20.0</real>
             <key>tooltip</key>
             <string>Sends email to Address with Subject and Message.\nSends an email to Address with Subject and Message.</string>
          </map>
          <key>llEscapeURL</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>URL</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>URL</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns an escaped/encoded version of url, replacing spaces with %20 etc.\nReturns the string that is the URL-escaped version of URL (replacing spaces with %20, etc.).\n
 			This function returns the UTF-8 encoded escape codes for selected characters.</string>
          </map>
          <key>llEuler2Rot</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Vector</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>rotation</string>
-            <key>arguments</key>
-            <map>
-               <key>Vector</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the rotation representation of the Euler angles.\nReturns the rotation represented by the Euler Angle.</string>
          </map>
          <key>llEvade</key>
          <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real/>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>TargetID</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>TargetID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
                </map>
-               <key>Options</key>
                <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Options</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real/>
             <key>tooltip</key>
             <string>Evade a specified target.\nCharacters will (roughly) try to hide from their pursuers if there is a good hiding spot along their fleeing path. Hiding means no direct line of sight from the head of the character (centre of the top of its physics bounding box) to the head of its pursuer and no direct path between the two on the navigation-mesh.</string>
          </map>
          <key>llExecCharacterCmd</key>
          <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real/>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>Command</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Command</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>Options</key>
                <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Options</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real/>
             <key>tooltip</key>
             <string>Execute a character command.\nSend a command to the path system.\n
 			Currently only supports stopping the current path-finding operation or causing the character to jump.</string>
          </map>
          <key>llFabs</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Value</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>Value</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the positive version of Value.\nReturns the absolute value of Value.</string>
          </map>
          <key>llFleeFrom</key>
          <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real/>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>Source</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Source</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-               <key>Distance</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Distance</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-               <key>Options</key>
                <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Options</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real/>
             <key>tooltip</key>
             <string>Flee from a point.\nDirects a character (llCreateCharacter) to keep away from a defined position in the region or adjacent regions.</string>
          </map>
          <key>llFloor</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Value</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Value</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns largest integer value &lt;= Value.</string>
          </map>
          <key>llForceMouselook</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Enable</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Enable</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>If Enable is TRUE any avatar that sits on this object is forced into mouse-look mode.\nAfter calling this function with Enable set to TRUE, any agent sitting down on the prim will be forced into mouse-look.\n
 			Just like llSitTarget, this changes a permanent property of the prim (not the object) and needs to be reset by calling this function with Enable set to FALSE in order to disable it.</string>
          </map>
          <key>llFrand</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Magnitude</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>Magnitude</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns a pseudo random number in the range [0, Magnitude] or [Magnitude, 0].\nReturns a pseudo-random number between [0, Magnitude].</string>
          </map>
          <key>llGenerateKey</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>0</real>
-            <key>sleep</key>
-            <real>0</real>
             <key>return</key>
             <string>key</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0</real>
             <key>tooltip</key>
             <string>Generates a key (SHA-1 hash) using UUID generation to create a unique key.\nAs the UUID produced is versioned, it should never return a value of NULL_KEY.\nThe specific UUID version is an implementation detail that has changed in the past and may change again in the future. Do not depend upon the UUID that is returned to be version 5 SHA-1 hash.</string>
          </map>
          <key>llGetAccel</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>vector</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the acceleration of the object relative to the region's axes.\nGets the acceleration of the object.</string>
          </map>
          <key>llGetAgentInfo</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>AvatarID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns an integer bit-field containing the agent information about id.\n
 				Returns AGENT_FLYING, AGENT_ATTACHMENTS, AGENT_SCRIPTED, AGENT_SITTING, AGENT_ON_OBJECT, AGENT_MOUSELOOK, AGENT_AWAY, AGENT_BUSY, AGENT_TYPING, AGENT_CROUCHING, AGENT_ALWAYS_RUN, AGENT_WALKING and/or AGENT_IN_AIR.\nReturns information about the given agent ID as a bit-field of agent info constants.</string>
          </map>
          <key>llGetAgentLanguage</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>AvatarID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the language code of the preferred interface language of the avatar.\nReturns a string that is the language code of the preferred interface language of the resident.</string>
          </map>
          <key>llGetAgentList</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>list</string>
             <key>arguments</key>
-            <map>
-               <key>Scope</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Scope</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>Options</key>
                <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Options</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Requests a list of agents currently in the region, limited by the scope parameter.\nReturns a list [key UUID-0, key UUID-1, ..., key UUID-n] or [string error_msg] - returns avatar keys for all agents in the region limited to the area(s) specified by scope</string>
          </map>
          <key>llGetAgentSize</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>AvatarID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>If the avatar is in the same region, returns the size of the bounding box of the requested avatar by id, otherwise returns ZERO_VECTOR.\nIf the agent is in the same region as the object, returns the size of the avatar.</string>
          </map>
          <key>llGetAlpha</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Face</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>Face</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the alpha value of Face.\nReturns the 'alpha' of the given face. If face is ALL_SIDES the value returned is the mean average of all faces.</string>
          </map>
          <key>llGetAndResetTime</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>float</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the script time in seconds and then resets the script timer to zero.\nGets the time in seconds since starting and resets the time to zero.</string>
          </map>
          <key>llGetAnimation</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>AvatarID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the name of the currently playing locomotion animation for the avatar id.\nReturns the currently playing animation for the specified avatar ID.</string>
          </map>
          <key>llGetAnimationList</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>AvatarID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>list</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns a list of keys of playing animations for an avatar.\nReturns a list of keys of all playing animations for the specified avatar ID.</string>
          </map>
          <key>llGetAnimationOverride</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>AnimationState</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>0</real>
-            <key>sleep</key>
-            <real>0</real>
             <key>return</key>
             <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>AnimationState</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0</real>
             <key>tooltip</key>
             <string>Returns a string that is the name of the animation that is used for the specified animation state\nTo use this function the script must obtain either the PERMISSION_OVERRIDE_ANIMATIONS or PERMISSION_TRIGGER_ANIMATION permission (automatically granted to attached objects).</string>
          </map>
          <key>llGetAttached</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>integer</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the object's attachment point, or 0 if not attached.\nReturns the object attachment point, or 0 if not attached.</string>
          </map>
          <key>llGetBoundingBox</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>ID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>list</string>
-            <key>arguments</key>
-            <map>
-               <key>ID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the bounding box around the object (including any linked prims) relative to its root prim, as a list in the format [ (vector) min_corner, (vector) max_corner ].\nReturns the bounding box around the object or avatar with the specified key (including any linked prims) relative to the\n
 			root prim, as a list: [ (vector) min_corner, (vector) max_corner ]</string>
          </map>
          <key>llGetCameraPos</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>vector</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the current camera position for the agent the task has permissions for.\nReturns the position of the camera, of the user that granted the script PERMISSION_TRACK_CAMERA. If no user has granted the permission, it returns ZERO_VECTOR.</string>
          </map>
          <key>llGetCameraRot</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>rotation</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the current camera orientation for the agent the task has permissions for.\nReturns the rotation of the camera, of the user who has granted this script PERMISSION_TRACK_CAMERA. If no user has granted the permission, it returns ZERO_ROTATION.\n
 			The key of the user whose camera is being tracked, can be obtained using llGetPermissionsKey.</string>
          </map>
          <key>llGetCenterOfMass</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>vector</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the prim's centre of mass (unless called from the root prim, where it returns the object's centre of mass).</string>
          </map>
          <key>llGetClosestNavPoint</key>
          <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real/>
-            <key>return</key>
-            <string>list</string>
             <key>arguments</key>
-            <map>
-               <key>Point</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Point</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-               <key>Options</key>
                <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Options</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real/>
+            <key>return</key>
+            <string>list</string>
+            <key>sleep</key>
+            <real/>
             <key>tooltip</key>
             <string>Get the closest navigable point to the point provided.\nThe function accepts a point in region-local space (like all the other path-finding methods) and returns either an empty list or a list containing a single vector which is the closest point on the navigation-mesh to the point provided.</string>
          </map>
          <key>llGetColor</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Face</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>Face</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the color on Face.\nReturns the colour of Face as a vector of red, green, and blue values between 0 and 1. If face is ALL_SIDES the colour returned is the mean average of each channel.</string>
          </map>
          <key>llGetCreator</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>key</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns a key for the creator of the prim.\nReturns the key of the object's original creator. Similar to llGetOwner.</string>
          </map>
          <key>llGetDate</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>string</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the current date in the UTC time zone in the format YYYY-MM-DD.\nReturns the current UTC date as YYYY-MM-DD.</string>
          </map>
          <key>llGetDisplayName</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>AvatarID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the name of an avatar, if the avatar is in the current region, and the name has been cached, otherwise the same as llGetUsername.	Use llRequestDisplayName if you absolutely must have the display name.\nReturns a string that is the non-unique display name of the avatar specified by AvatarID.\n
 			AvatarID must specify a valid avatar key, present in or otherwise known to the region in which the script is running, otherwise an empty string is returned.\n
@@ -8804,447 +9166,487 @@
          </map>
          <key>llGetEnergy</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>float</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns how much energy is in the object as a percentage of maximum.</string>
          </map>
          <key>llGetEnv</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>DataRequest</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>DataRequest</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns a string with the requested data about the region.</string>
          </map>
          <key>llGetForce</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>vector</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the force (if the script is physical).\nReturns the current force if the script is physical.</string>
          </map>
          <key>llGetFreeMemory</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>integer</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the number of free bytes of memory the script can use.\nReturns the available free space for the current script. This is inaccurate with LSO.</string>
          </map>
          <key>llGetFreeURLs</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>integer</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the number of available URLs for the current script.\nReturns an integer that is the number of available URLs.</string>
          </map>
          <key>llGetGeometricCenter</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>vector</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the geometric center of the linked set the script is attached to.\nReturns the geometric centre of the linked set the script is in relative to the object's position (the position of the root prim of a linked set).\n
 			To get the object's position, use llGetPos.</string>
          </map>
          <key>llGetGMTclock</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>float</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the time in seconds since midnight GMT.\nGets the time in seconds since midnight in GMT/UTC.</string>
          </map>
          <key>llGetHTTPHeader</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
             <key>arguments</key>
-            <map>
-               <key>HTTPRequestID</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>HTTPRequestID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
                </map>
-               <key>Header</key>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Header</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the value for header for request_id.\nReturns a string that is the value of the Header for HTTPRequestID.</string>
          </map>
          <key>llGetInventoryCreator</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>InventoryItem</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>key</string>
-            <key>arguments</key>
-            <map>
-               <key>InventoryItem</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns a key for the creator of the inventory item.\nThis function returns the UUID of the creator of item. If item is not found in inventory, the object says "No item named 'name' ".</string>
          </map>
          <key>llGetInventoryKey</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>InventoryItem</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>key</string>
-            <key>arguments</key>
-            <map>
-               <key>InventoryItem</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the key that is the UUID of the inventory named.\nReturns the key of the inventory named.</string>
          </map>
          <key>llGetInventoryName</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
             <key>arguments</key>
-            <map>
-               <key>InventoryType</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>InventoryType</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>Index</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Index</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the name of the inventory item number of a given type.\nGet the name of the inventory Index number of InventoryType.\n
 			Use the inventory constants INVENTORY_* to specify the type.</string>
          </map>
          <key>llGetInventoryNumber</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>InventoryType</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>InventoryType</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the number of items of a given type (INVENTORY_* flag) in the prim's inventory.\nGet the number of items of InventoryType in the object inventory.\n
 			Use the inventory constants INVENTORY_* to specify the type.</string>
          </map>
-         <key>llGetInventoryPermMask</key>
-         <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
+         <key>llGetInventoryPermMask</key>
+         <map>
             <key>arguments</key>
-            <map>
-               <key>InventoryItem</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>InventoryItem</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-               <key>BitMask</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>BitMask</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the requested permission mask for the inventory item.\nReturns the requested permission mask for the inventory item defined by InventoryItem. If item is not in the object's inventory, llGetInventoryPermMask returns FALSE and causes the object to say "No item named '&lt;item&gt;'", where "&lt;item&gt;" is item.\n
 			If this is used to determine whether or not an inventory item exists within the object, it will have the side effect of spamming chat. So please don't ;-)</string>
          </map>
          <key>llGetInventoryType</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>InventoryItem</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>InventoryItem</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the type of the inventory item named.\nReturns the type of the inventory item named.\n
 			Remember, like all inventory functions, llGetInventoryType is case-sensitive.</string>
          </map>
          <key>llGetKey</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>key</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the key of the prim the script is attached to.\nGet the key for the object which has this script.</string>
          </map>
          <key>llGetLandOwnerAt</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Position</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>key</string>
-            <key>arguments</key>
-            <map>
-               <key>Position</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the key of the land owner, returns NULL_KEY if public.\nReturns the key of the land owner at Position, or NULL_KEY if public.</string>
          </map>
          <key>llGetLinkKey</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>LinkNumber</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>key</string>
-            <key>arguments</key>
-            <map>
-               <key>LinkNumber</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the key of the linked prim LinkNumber.\nReturns the key of LinkNumber in the link set.</string>
          </map>
          <key>llGetLinkMedia</key>
          <map>
-            <key>energy</key>
-            <real>0.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>list</string>
             <key>arguments</key>
-            <map>
-               <key>LinkNumber</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>LinkNumber</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>Face</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Face</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>Parameters</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Parameters</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Get the media parameters for a particular face on linked prim, given the desired list of parameter names. Returns a list of values in the order requested.	Returns an empty list if no media exists on the face.\nGet the desired list of named media parameters, for a particular face, of a linked prim.\n
 				Returns a list of values in the order requested.</string>
          </map>
          <key>llGetLinkName</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>LinkNumber</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>LinkNumber</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the name of LinkNumber in a link set.\nReturns the name of LinkNumber the link set.</string>
          </map>
          <key>llGetLinkNumber</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>integer</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the link number of the prim containing the script (0 means not linked, 1 the prim is the root, 2 the prim is the first child, etc.).\nReturns the link number of the prim containing the script. 0 means no link, 1 the root, 2 for first child, etc.</string>
          </map>
          <key>llGetLinkNumberOfSides</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>LinkNumber</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>LinkNumber</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the number of sides of the specified linked prim.\nReturns an integer that is the number of faces (or sides) of the prim link.</string>
          </map>
          <key>llGetLinkPrimitiveParams</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>list</string>
             <key>arguments</key>
-            <map>
-               <key>LinkNumber</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>LinkNumber</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>Parameters</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Parameters</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Get primitive parameters for LinkNumber based on rules.\nIdentical to llGetPrimitiveParams except that it acts on the prim specified by the link number given.\n
 			Returns the list of primitive attributes requested in the Parameters list for link.\n
@@ -9254,173 +9656,187 @@
          </map>
          <key>llGetListEntryType</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
             <key>arguments</key>
-            <map>
-               <key>ListVariable</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>ListVariable</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
                </map>
-               <key>Index</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Index</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the type of the index entry in the list (TYPE_INTEGER, TYPE_FLOAT, TYPE_STRING, TYPE_KEY, TYPE_VECTOR, TYPE_ROTATION, or TYPE_INVALID if index is off list).\nReturns the type of the variable at Index in ListVariable.</string>
          </map>
          <key>llGetListLength</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>ListVariable</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>ListVariable</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the number of elements in the list.\nReturns the number of elements in ListVariable.</string>
          </map>
          <key>llGetLocalPos</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>vector</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the position relative to the root.\nReturns the local position of a child object relative to the root.</string>
          </map>
          <key>llGetLocalRot</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>rotation</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the rotation local to the root.\nReturns the local rotation of a child object relative to the root.</string>
          </map>
          <key>llGetMass</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>float</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the mass of object that the script is attached to.\nReturns the scripted object's mass. When called from a script in a link-set, the parent will return the sum of the link-set weights, while a child will return just its own mass. When called from a script inside an attachment, this function will return the mass of the avatar it's attached to, not its own.</string>
          </map>
          <key>llGetMassMKS</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real/>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>float</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Acts as llGetMass(), except that the units of the value returned are Kg.</string>
          </map>
          <key>llGetMemoryLimit</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real/>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>integer</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Get the maximum memory a script can use, in bytes.\nGet the maximum memory a script can use.\n
 			Returns the integer amount of memory the script can use in bytes.</string>
          </map>
          <key>llGetNextEmail</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>Address</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Address</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-               <key>Subject</key>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Subject</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Get the next waiting email with appropriate address and/or subject (if blank they are ignored).\nGet the next waiting email with appropriate address and/or subject.\n
 				If the parameters are blank, they are not used for filtering.</string>
          </map>
          <key>llGetNotecardLine</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.1</real>
-            <key>return</key>
-            <string>key</string>
             <key>arguments</key>
-            <map>
-               <key>NotecardName</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>NotecardName</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-               <key>LineNumber</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>LineNumber</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>sleep</key>
+            <real>0.1</real>
             <key>tooltip</key>
             <string>Returns line from NotecardName via the dataserver event.\nThis function fetches LineNumber from NotecardName and returns the data through the dataserver event. The line count starts at zero.\n
 				If the requested line is passed the end of the note-card the dataserver event will return the constant EOF string.\n
@@ -9428,341 +9844,371 @@
          </map>
          <key>llGetNumberOfNotecardLines</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>NotecardName</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.1</real>
             <key>return</key>
             <string>key</string>
-            <key>arguments</key>
-            <map>
-               <key>NotecardName</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.1</real>
             <key>tooltip</key>
             <string>Returns number of lines in NotecardName via the dataserver event (cast return value to integer).\nReturns the number of lines in the note-card sNotecardName via the dataserver event. (Cast the value returned by the dataserver to an integer.)\n
 			The key returned is a query ID for identifying the dataserver reply.</string>
          </map>
          <key>llGetNumberOfPrims</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>integer</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the number of prims in a link set the script is attached to.\nReturns the number of prims in (and avatars seated on) the object the script is in.</string>
          </map>
          <key>llGetNumberOfSides</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>integer</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the number of faces (or sides) of the prim.\nReturns the number of sides of the prim which has the script.</string>
          </map>
          <key>llGetObjectDesc</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>string</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the description of the prim the script is attached to.\nReturns the description of the scripted object/prim. You can set the description using llSetObjectDesc.</string>
          </map>
          <key>llGetObjectDetails</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>list</string>
             <key>arguments</key>
-            <map>
-               <key>ID</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>ID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
                </map>
-               <key>Parameters</key>
                <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Parameters</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the object details specified in Parameters for the object with key ID.\n
 				Parameters are OBJECT_NAME, _DESC, _POS, _ROT, _VELOCITY, _OWNER, _GROUP, _CREATOR.\nReturns a list of the details specified in Parameters for the object with key ID.</string>
          </map>
          <key>llGetObjectMass</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>ID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>ID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the mass of the avatar or object in the region.\nGets the mass of the object or avatar corresponding to ID.</string>
          </map>
          <key>llGetObjectName</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>string</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the name of the prim which the script is attached to.\nReturns the name of the prim (not object) which contains the script.</string>
          </map>
          <key>llGetObjectPermMask</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>PermissionMask</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>PermissionMask</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the requested permission mask for the root object the task is attached to.</string>
          </map>
          <key>llGetObjectPrimCount</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>ObjectID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>ObjectID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the total number of prims for an object in the region.\nReturns the prim count for any object id in the same region.</string>
          </map>
          <key>llGetOmega</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>vector</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the rotation velocity in radians per second.\nReturns a vector that is the rotation velocity of the object in radians per second.</string>
          </map>
          <key>llGetOwner</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>key</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the object owner's UUID.\nReturns the key for the owner of the object.</string>
          </map>
          <key>llGetOwnerKey</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>ObjectID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>key</string>
-            <key>arguments</key>
-            <map>
-               <key>ObjectID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the owner of ObjectID.\nReturns the key for the owner of object ObjectID.</string>
          </map>
          <key>llGetParcelDetails</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>list</string>
             <key>arguments</key>
-            <map>
-               <key>Position</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Position</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-               <key>ParcelDetails</key>
                <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>ParcelDetails</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the parcel details specified in ParcelDetails for the parcel at Position.\n
  				Parameters is one or more of: PARCEL_DETAILS_NAME, _DESC, _OWNER, _GROUP, _AREA, _ID, _SEE_AVATARS.\nReturns a list that is the parcel details specified in ParcelDetails (in the same order) for the parcel at Position.</string>
          </map>
          <key>llGetParcelFlags</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Position</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Position</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns a mask of the parcel flags (PARCEL_FLAG_*) for the parcel that includes the point Position.\nReturns a bit-field specifying the parcel flags (PARCEL_FLAG_*) for the parcel at Position.</string>
          </map>
          <key>llGetParcelMaxPrims</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
             <key>arguments</key>
-            <map>
-               <key>Position</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Position</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-               <key>SimWide</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>SimWide</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the maximum number of prims allowed on the parcel at Position.\nReturns an integer that is the maximum number of prims allowed on the parcel at Position.</string>
          </map>
          <key>llGetParcelMusicURL</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real/>
-            <key>sleep</key>
-            <real/>
             <key>return</key>
             <string>string</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real/>
             <key>tooltip</key>
             <string>Gets the streaming audio URL for the parcel object is on.\nReturns a string containing the parcel streaming audio URL.\n
 				The object owner, avatar or group, must also be the land owner.</string>
          </map>
          <key>llGetParcelPrimCount</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
             <key>arguments</key>
-            <map>
-               <key>Position</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Position</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-               <key>Category</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Category</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>SimWide</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>SimWide</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the number of prims on the parcel at Position of the given category.
 				Categories: PARCEL_COUNT_TOTAL, _OWNER, _GROUP, _OTHER, _SELECTED, _TEMP.\nReturns the number of prims used on the parcel at Position which are in Category.\n
@@ -9771,22 +10217,24 @@
          </map>
          <key>llGetParcelPrimOwners</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Position</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>2.0</real>
             <key>return</key>
             <string>list</string>
-            <key>arguments</key>
-            <map>
-               <key>Position</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>2.0</real>
             <key>tooltip</key>
             <string>Returns a list of all residents who own objects on the parcel at Position, with individual prim counts.
 				Requires owner-like permissions for the parcel.\nReturns a strided list of keys and integers of up to 100 agents who own objects in the parcel at Position.\n
@@ -9796,14 +10244,14 @@
          </map>
          <key>llGetPermissions</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>integer</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns an integer bit-field with the permissions that have been granted.\nReturns an integer bit-field with the script permissions granted. e.g.:\n
 				integer iPerms = llGetPermissions();\n
@@ -9815,90 +10263,96 @@
          </map>
          <key>llGetPermissionsKey</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>key</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the key of the avatar that last granted permissions to the script.\nReturns the key of the avatar that last granted or declined permissions to the script.\n
 				Returns NULL_KEY if permissions were never granted or declined.</string>
          </map>
          <key>llGetPhysicsMaterial</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real/>
-            <key>sleep</key>
-            <real/>
             <key>return</key>
             <string>list</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real/>
             <key>tooltip</key>
             <string>Returns a list of the form [float gravity_multiplier, float restitution, float friction, float density].</string>
          </map>
          <key>llGetPos</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>vector</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the position of the task in region coordinates.\nReturns the vector position of the task in region coordinates.</string>
          </map>
          <key>llGetPrimitiveParams</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Parameters</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.2</real>
             <key>return</key>
             <string>list</string>
-            <key>arguments</key>
-            <map>
-               <key>Parameters</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.2</real>
             <key>tooltip</key>
             <string>Returns the primitive parameters specified in the parameters list.\nReturns primitive parameters specified in the Parameters list.</string>
          </map>
          <key>llGetPrimMediaParams</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.1</real>
-            <key>return</key>
-            <string>list</string>
             <key>arguments</key>
-            <map>
-               <key>Face</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Face</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>Parameters</key>
                <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Parameters</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>sleep</key>
+            <real>0.1</real>
             <key>tooltip</key>
             <string>Returns the media parameters for a particular face on an object, given the desired list of parameter names, in the order requested. Returns an empty list if no media exists on the face.\nGet the media parameters for a particular face on an object, given the desired list of Parameters.\n
 				Returns a list of values in the order requested.\n
@@ -9906,326 +10360,346 @@
          </map>
          <key>llGetRegionAgentCount</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>integer</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the number of avatars in the region.\nReturns an integer that is the number of avatars in the region.</string>
          </map>
          <key>llGetRegionCorner</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>vector</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns a vector, in meters, that is the global location of the south-west corner of the region which the object is in.\nReturns the Region-Corner of the simulator containing the task. The region-corner is a vector (values in meters) representing distance from the first region.</string>
          </map>
          <key>llGetRegionFlags</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>integer</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the region flags (REGION_FLAG_*) for the region the object is in.\nReturns a bit-field specifying the region flags (REGION_FLAG_*) for the region the object is in.</string>
          </map>
          <key>llGetRegionFPS</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the mean region frames per second.</string>
          </map>
          <key>llGetRegionName</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>string</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the current region name.</string>
          </map>
          <key>llGetRegionTimeDilation</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>float</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the current time dilation as a float between 0.0 (full dilation) and 1.0 (no dilation).\nReturns the current time dilation as a float between 0.0 and 1.0.</string>
          </map>
          <key>llGetRootPosition</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>vector</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the position (in region coordinates) of the root prim of the object which the script is attached to.\nGets the position (in region coordinates) of the root/parent prim of the object containing the script.\n
 			This is used to allow a child prim to determine where the root is.</string>
          </map>
          <key>llGetRootRotation</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>rotation</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the rotation (relative to the region) of the root prim of the object which the script is attached to.\nGets the global rotation of the root object of the object script is attached to.</string>
          </map>
          <key>llGetRot</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>rotation</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the rotation relative to the region's axes.\nReturns the rotation.</string>
          </map>
          <key>llGetScale</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>vector</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the scale of the prim.\nReturns a vector that is the scale (dimensions) of the prim.</string>
          </map>
          <key>llGetScriptName</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>string</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the name of the script that this function is used in.\nReturns the name of this script.</string>
          </map>
          <key>llGetScriptState</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>ScriptName</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>ScriptName</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns TRUE if the script named is running.\nReturns TRUE if ScriptName is running.</string>
          </map>
          <key>llGetSimStats</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>StatType</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>0</real>
-            <key>sleep</key>
-            <real>0</real>
             <key>return</key>
             <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>StatType</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0</real>
             <key>tooltip</key>
             <string>Returns a float that is the requested statistic.</string>
          </map>
          <key>llGetSimulatorHostname</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>10.0</real>
             <key>return</key>
             <string>string</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>10.0</real>
             <key>tooltip</key>
             <string>Returns the host-name of the machine which the script is running on (same as string in viewer Help dialog).\nReturns the host name (server) of the region in which the scripted object is located.\n
 			For example, "sim225.agni.lindenlab.com".</string>
          </map>
          <key>llGetSPMaxMemory</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real/>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>integer</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the maximum used memory for the current script. Only valid after using PROFILE_SCRIPT_MEMORY. Non-mono scripts always use 16k.\nReturns the integer of the most bytes used while llScriptProfiler was last active.</string>
          </map>
          <key>llGetStartParameter</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>integer</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns an integer that is the script start parameter.\nReturns the start parameter passed to llRezObject.\n
 			If the object was created from agent inventory, this function returns 0.</string>
          </map>
          <key>llGetStaticPath</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>list</string>
             <key>arguments</key>
-            <map>
-               <key>Start</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Start</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-               <key>End</key>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>End</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-               <key>Radius</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Radius</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-               <key>Parameters</key>
                <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Parameters</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string/>
          </map>
          <key>llGetStatus</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>StatusFlag</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>StatusFlag</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns value of status (STATUS_PHYSICS, STATUS_PHANTOM, STATUS_BLOCK_GRAB, STATUS_ROTATE_X, STATUS_ROTATE_Y, and/or STATUS_ROTATE_Z).\nReturns the value of specified status.</string>
          </map>
          <key>llGetSubString</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
             <key>arguments</key>
-            <map>
-               <key>String</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>String</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-               <key>Start</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Start</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>End</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>End</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the indicated substring.\nReturns the indicated sub-string from String. The Start and End are inclusive.\n
 				Using negative numbers for Start and/or End causes the index to count backwards from the length of the string, so 0, -1 would capture the entire string.\n
@@ -10233,290 +10707,310 @@
          </map>
          <key>llGetSunDirection</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>vector</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns a normalized vector of the direction of the sun in the region.\nReturns the sun's direction on the simulator.</string>
          </map>
          <key>llGetTexture</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Face</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>Face</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns a string that is the texture on face (the inventory name if it is a texture in the prim's inventory, otherwise the key).\nReturns the texture of a face, if it is found in object inventory, its key otherwise.</string>
          </map>
          <key>llGetTextureOffset</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Face</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>Face</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the texture offset of face in the x and y components of a vector.</string>
          </map>
          <key>llGetTextureRot</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Face</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>Face</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the texture rotation of side.</string>
          </map>
          <key>llGetTextureScale</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Face</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>Face</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the texture scale of side in the x and y components of a vector.\nReturns the texture scale of a side in the x and y components of a vector.</string>
          </map>
          <key>llGetTime</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>float</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the time in seconds since the last region reset, script reset, or call to either llResetTime or llGetAndResetTime.</string>
          </map>
          <key>llGetTimeOfDay</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>float</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the time in seconds since [SECOND_LIFE] server midnight or since region up-time, whichever is smaller.\nGets the time in seconds since midnight in Second Life.</string>
          </map>
          <key>llGetTimestamp</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>string</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns a time-stamp (UTC time zone) in the format: YYYY-MM-DDThh:mm:ss.ff..fZ.\nReturns the current time-and-date (a time-stamp) in the format YYYY-MM-DDThh:mm:ss.ff..fZ, for example: 2004-08-27T00:56:21.785886Z\n
 				The letter Z is the zone designator for the zero UTC offset, and is why UTC is sometimes referred to as Zulu time (Zulu being the name of Z in the phonetic alphabet. T is just a separator between date and time.</string>
          </map>
          <key>llGetTorque</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>vector</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the torque (if the script is physical).\nReturns a vector that is the torque (if the script is physical).</string>
          </map>
          <key>llGetUnixTime</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>integer</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the number of seconds elapsed since 00:00 hours, Jan 1, 1970 UTC from the system clock.\nReturns the number of seconds elapsed since 00:00 hours, Jan 1, 1970 UTC from the system clock.\n
 				In UNIX terms, time_t. This is great for a monotonic source of time that ticks once a second.</string>
          </map>
          <key>llGetUsedMemory</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>integer</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the current used memory for the current script. Non-mono scripts always use 16K.\nReturns the integer of the number of bytes of memory currently in use by the script. Non-mono scripts always use 16K.</string>
          </map>
          <key>llGetUsername</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>AvatarID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the single-word user-name of an avatar, if the avatar is in the current region, otherwise the empty string.\nReturns a string that is the unique user-name of the avatar specified.\n
 				AvatarID must specify a valid avatar key present in, or otherwise known to, the region in which the script is running, otherwise an empty string is returned. This function will still return a valid user-name if the avatar is a child agent of the region (i.e., in an adjacent region, but presently able to see into the one the script is in), or for a short period after the avatar leaves the region (specifically, when the client completely disconnects from the region, either as a main or child agent).</string>
          </map>
          <key>llGetVel</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>vector</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the velocity of the object.\nReturns a vector that is the velocity of the object.</string>
          </map>
          <key>llGetWallclock</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>float</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the time in seconds since midnight California Pacific time (PST/PDT).\nReturns the time in seconds since simulator's time-zone midnight (Pacific Time).</string>
          </map>
          <key>llGiveInventory</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>TargetID</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>TargetID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
                </map>
-               <key>InventoryItem</key>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>InventoryItem</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Give InventoryItem to destination represented by TargetID.\nGive the named inventory item to the avatar or object in the same simulator as the giver.\n
 			If the recipient is an avatar, the avatar then follows the normal procedure of accepting or denying the offer. If the recipient is an object, the same permissions apply as if you were dragging inventory onto the object by hand, i.e. if llAllowInventoryDrop has been called with TRUE, any other object can pass objects to its inventory.</string>
          </map>
          <key>llGiveInventoryList</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>3.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>TargetID</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>TargetID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
                </map>
-               <key>FolderName</key>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>FolderName</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-               <key>InventoryItems</key>
                <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>InventoryItems</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>3.0</real>
             <key>tooltip</key>
             <string>Give InventoryItems to destination (represented by TargetID) as a new folder of items.\nGive the list of named inventory items to the keyed avatar or object in the same simulator as the giver.\n
 			If the recipient is an avatar, the avatar then follows the normal procedure of accepting or denying the offer. The offered inventory is then placed in a folder named category in the recipients inventory.\n
@@ -10524,158 +11018,178 @@
          </map>
          <key>llGiveMoney</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>AvatarID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
                </map>
-               <key>Amount</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Amount</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Transfers Amount of L from script owner to AvatarID.\nTransfer Amount from the script owner to AvatarID.\n
 				This call will (silently) fail if PERMISSION_DEBIT has not been set.</string>
          </map>
          <key>llGodLikeRezObject</key>
          <map>
-            <key>god-mode</key>
-            <boolean>true</boolean>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>InventoryItemID</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>InventoryItemID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
                </map>
-               <key>Position</key>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Position</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>god-mode</key>
+            <boolean>true</boolean>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Rez directly off of a UUID if owner has dog-bit set.</string>
          </map>
          <key>llGround</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Offset</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>Offset</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the ground height at the object position + offset.\nReturns the ground height at the object's position + Offset.</string>
          </map>
          <key>llGroundContour</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
             <key>arguments</key>
-            <map>
-               <key>Offset</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Offset</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the ground contour direction below the object position + Offset.\nReturns the ground contour at the object's position + Offset.</string>
          </map>
          <key>llGroundNormal</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Offset</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>Offset</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the ground normal below the object position + offset.\nReturns the ground contour at the object's position + Offset.</string>
          </map>
          <key>llGroundRepel</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>Height</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Height</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-               <key>Water</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Water</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>Tau</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Tau</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Critically damps to height if within height * 0.5 of level (either above ground level or above the higher of land and water if water == TRUE).\nCritically damps to fHeight if within fHeight * 0.5 of ground or water level.\n
 				The height is above ground level if iWater is FALSE or above the higher of land and water if iWater is TRUE.\n
@@ -10683,542 +11197,620 @@
          </map>
          <key>llGroundSlope</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Offset</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>Offset</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the ground slope below the object position + Offset.\nReturns the ground slope at the object position + Offset.</string>
          </map>
          <key>llHTTPRequest</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>key</string>
             <key>arguments</key>
-            <map>
-               <key>URL</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>URL</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-               <key>Parameters</key>
                <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Parameters</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
                </map>
-               <key>Body</key>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Body</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Sends an HTTP request to the specified URL with the Body of the request and Parameters.\nSends an HTTP request to URL with the specified body and parameters.\n
 				Returns a key that is a handle identifying the HTTP request made.</string>
          </map>
          <key>llHTTPResponse</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>HTTPRequestID</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>HTTPRequestID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
                </map>
-               <key>Status</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Status</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>Body</key>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Body</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Responds to HTTPRequestID with Status and Body.\nResponds to HTTPRequestID with Status code and Body.</string>
          </map>
          <key>llInsertString</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
             <key>arguments</key>
-            <map>
-               <key>TargetVariable</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>TargetVariable</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-               <key>Position</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Position</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>SourceVariable</key>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>SourceVariable</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Inserts SourceVariable into TargetVariable at Position, and returns the result.\nInserts SourceVariable into TargetVariable at Position and returns the result. Note this does not alter TargetVariable.</string>
          </map>
          <key>llInstantMessage</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>2.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>AvatarID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
                </map>
-               <key>Text</key>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>2.0</real>
             <key>tooltip</key>
             <string>IMs Text to the user identified.\nSend Text to the user as an instant message.</string>
          </map>
          <key>llIntegerToBase64</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Value</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>Value</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns a string that is a Base64 big endian encode of Value.\nEncodes the Value as an 8-character Base64 string.</string>
          </map>
          <key>llJson2List</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>JSON</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>0.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>list</string>
-            <key>arguments</key>
-            <map>
-               <key>JSON</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Converts the top level of the JSON string to a list.</string>
          </map>
          <key>llJsonGetValue</key>
          <map>
-            <key>energy</key>
-            <real>0.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
             <key>arguments</key>
-            <map>
-               <key>JSON</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>JSON</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-               <key>Specifiers</key>
                <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Specifiers</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Gets the value indicated by Specifiers from the JSON string.</string>
          </map>
          <key>llJsonSetValue</key>
          <map>
-            <key>energy</key>
-            <real>0.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
             <key>arguments</key>
-            <map>
-               <key>JSON</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>JSON</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-               <key>Specifiers</key>
                <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Specifiers</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
                </map>
-               <key>Value</key>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Value</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns a new JSON string that is the JSON given with the Value indicated by Specifiers set to Value.</string>
          </map>
          <key>llJsonValueType</key>
          <map>
-            <key>energy</key>
-            <real>0.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
             <key>arguments</key>
-            <map>
-               <key>JSON</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>JSON</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-               <key>Specifiers</key>
                <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Specifiers</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the type constant (JSON_*) for the value in JSON indicated by Specifiers.</string>
          </map>
          <key>llKey2Name</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>ID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>ID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the name of the prim or avatar specified by ID. The ID must be a valid rezzed prim or avatar key in the current simulator, otherwise an empty string is returned.\nReturns the name of a rezzed prim or avatar, present in or otherwise known, to the region in which the script is running. If the key is invalid (not in region, or not a prim or avatar's key), returns an empty string.</string>
          </map>
          <key>llLinkParticleSystem</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>LinkNumber</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>LinkNumber</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>Rules</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Rules</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Creates a particle system based on Rules. An empty list removes a particle system from object.\n
 				List format is [ rule-1, data-1, rule-2, data-2 ... rule-n, data-n ].\nA particle system defined by a list of rules is set for the prim(s) link. This is identical to llParticleSystem except that it applies to a specified linked prim and not just the prim the script is in.</string>
          </map>
          <key>llLinkSitTarget</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>LinkNumber</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>LinkNumber</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>Offset</key>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Offset</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-               <key>Rotation</key>
                <map>
-                  <key>type</key>
-                  <string>rotation</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Rotation</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>rotation</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Set the sit location for the linked prim(s). If Offset == &lt;0,0,0&gt; clear it.\nSet the sit location for the linked prim(s). The sit location is relative to the prim's position and rotation.</string>
          </map>
          <key>llList2CSV</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>ListVariable</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>ListVariable</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Creates a string of comma separated values from the list.\nCreate a string of comma separated values from the specified list.</string>
          </map>
          <key>llList2Float</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
             <key>arguments</key>
-            <map>
-               <key>ListVariable</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>ListVariable</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
                </map>
-               <key>Index</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Index</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Copies the float at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to a float, then zero is returned.</string>
          </map>
          <key>llList2Integer</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
             <key>arguments</key>
-            <map>
-               <key>ListVariable</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>ListVariable</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
                </map>
-               <key>Index</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Index</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Copies the integer at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to an integer, then zero is returned.</string>
          </map>
          <key>llList2Json</key>
          <map>
-            <key>energy</key>
-            <real>0</real>
-            <key>sleep</key>
-            <real>0</real>
-            <key>return</key>
-            <string>string</string>
             <key>arguments</key>
-            <map>
-               <key>JsonType</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>JsonType</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-               <key>Values</key>
                <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Values</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>sleep</key>
+            <real>0</real>
             <key>tooltip</key>
             <string>Converts either a strided list of key:value pairs to a JSON_OBJECT, or a list of values to a JSON_ARRAY.</string>
          </map>
          <key>llList2Key</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>key</string>
             <key>arguments</key>
-            <map>
-               <key>ListVariable</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>ListVariable</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
                </map>
-               <key>Index</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Index</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Copies the key at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to a key, then null string is returned.</string>
          </map>
          <key>llList2List</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>list</string>
             <key>arguments</key>
-            <map>
-               <key>ListVariable</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>ListVariable</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
                </map>
-               <key>Start</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Start</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>End</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>End</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Copies the slice of the list from Start to End.\nReturns the slice of the list from start to end from the list as a new list. The start and end parameters are inclusive.\n
 				Using negative numbers for start and/or end causes the index to count backwards from the length of the list, so 0, -1 would capture the entire list.\n
@@ -11226,169 +11818,197 @@
          </map>
          <key>llList2ListStrided</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>list</string>
             <key>arguments</key>
-            <map>
-               <key>ListVariable</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>ListVariable</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
                </map>
-               <key>Start</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Start</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>End</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>End</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>Stride</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Stride</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Copies the strided slice of the list from Start to End.\nReturns a copy of the strided slice of the specified list from Start to End.</string>
          </map>
          <key>llList2Rot</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>rotation</string>
             <key>arguments</key>
-            <map>
-               <key>ListVariable</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>ListVariable</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
                </map>
-               <key>Index</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Index</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>rotation</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Copies the rotation at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to rotation, thenZERO_ROTATION is returned.</string>
          </map>
          <key>llList2String</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
             <key>arguments</key>
-            <map>
-               <key>ListVariable</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>ListVariable</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
                </map>
-               <key>Index</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Index</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Copies the string at Index in the list.\nReturns the value at Index in the specified list as a string. If Index describes a location not in the list then null string is returned.</string>
          </map>
          <key>llList2Vector</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>vector</string>
             <key>arguments</key>
-            <map>
-               <key>ListVariable</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>ListVariable</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
                </map>
-               <key>Index</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Index</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Copies the vector at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to a vector, then ZERO_VECTOR is returned.</string>
          </map>
          <key>llListen</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
             <key>arguments</key>
-            <map>
-               <key>Channel</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Channel</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>SpeakersName</key>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>SpeakersName</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-               <key>SpeakersID</key>
                <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>SpeakersID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
                </map>
-               <key>Text</key>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Sets a callback for Text on Channel from SpeakersName and SpeakersID (SpeakersName, SpeakersID, and/or Text can be empty) and returns an identifier that can be used to deactivate or remove the listen.\nSets a listen event callback on the specified channel. Specifying values for speakername, speakerID, and message will filter the results accordingly, which is advisable or your listen event will respond to every thing said on the channel potentially causing a great deal of lag.\n
 				Returns an identifier that can be used to deactivate or remove the listen. The name, id and/or msg parameters\n
@@ -11396,360 +12016,414 @@
          </map>
          <key>llListenControl</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>ChannelHandle</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>ChannelHandle</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>Active</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Active</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Makes a listen event callback active or inactive.\nMake a listen event callback active or inactive. Pass in the value returned from llListen to the iChannelHandle parameter to specify which event you are controlling.\n
 				Use boolean values to specify Active</string>
          </map>
          <key>llListenRemove</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>ChannelHandle</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>ChannelHandle</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Removes listen event callback number.\nRemoves a listen event callback. Pass in the value returned from llListen to the iChannelHandle parameter to specify which event to remove.</string>
          </map>
          <key>llListFindList</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
             <key>arguments</key>
-            <map>
-               <key>ListVariable</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>ListVariable</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
                </map>
-               <key>Find</key>
                <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Find</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the index of the first instance of Find in ListVariable. Returns -1 if not found.\nReturns the position of the first instance of the Find list in the ListVariable. Returns -1 if not found.</string>
          </map>
          <key>llListInsertList</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>list</string>
             <key>arguments</key>
-            <map>
-               <key>Target</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Target</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
                </map>
-               <key>ListVariable</key>
                <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>ListVariable</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
                </map>
-               <key>Position</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Position</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns a list that contains all the elements from Target but with the elements from ListVariable inserted at Position start.\nReturns a new list, created by inserting ListVariable into the Target list at Position. Note this does not alter the Target.</string>
          </map>
          <key>llListRandomize</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>list</string>
             <key>arguments</key>
-            <map>
-               <key>ListVariable</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>ListVariable</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
                </map>
-               <key>Stride</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Stride</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns a randomized list of blocks of size Stride.\nReturns the specified list randomized into blocks of size stride.\n
 				If the remainder from the length of the list, divided by the stride is non-zero, this function does not randomize the list.</string>
          </map>
          <key>llListReplaceList</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>list</string>
             <key>arguments</key>
-            <map>
-               <key>Target</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Target</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
                </map>
-               <key>ListVariable</key>
                <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>ListVariable</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
                </map>
-               <key>Start</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Start</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>End</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>End</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns a list that is Target with Start through End removed and ListVariable inserted at Start.\nReturns a list replacing the slice of the Target list from Start to End with the specified ListVariable. Start and End are inclusive, so 0, 1 would replace the first two entries and 0, 0 would replace only the first list entry.</string>
          </map>
          <key>llListSort</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>list</string>
             <key>arguments</key>
-            <map>
-               <key>ListVariable</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>ListVariable</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
                </map>
-               <key>Stride</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Stride</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>Ascending</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Ascending</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Sorts the list into blocks of stride, in Ascending order if Ascending == TRUE. The sort order is affected by type.\nReturns the specified list, sorted into blocks of stride in ascending order (if Ascending is TRUE, otherwise descending). Note that sort only works if the first entry of each block is the same type.</string>
          </map>
          <key>llListStatistics</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
             <key>arguments</key>
-            <map>
-               <key>Operation</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Operation</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>ListVariable</key>
                <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>ListVariable</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Performs statistical aggregate functions on ListVariable using LIST_STAT_* Operations.\nThis function allows a script to perform a statistical operation as defined by operation on a list composed of integers and floats.</string>
          </map>
          <key>llLoadURL</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>AvatarID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
                </map>
-               <key>Text</key>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-               <key>URL</key>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>URL</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>10.0</real>
             <key>tooltip</key>
             <string>Shows dialog to avatar AvatarID offering to load web page at URL.	If user clicks yes, launches their web browser.\nllLoadURL displays a dialogue box to the user, offering to load the specified web page using the default web browser.</string>
          </map>
          <key>llLog</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Value</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>Value</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the natural logarithm of Value. Returns zero if Value &lt;= 0.\nReturns the base e (natural) logarithm of the specified Value.</string>
          </map>
          <key>llLog10</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Value</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>Value</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the base 10 logarithm of Value. Returns zero if Value &lt;= 0.\nReturns the base 10 (common) logarithm of the specified Value.</string>
          </map>
          <key>llLookAt</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>Target</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Target</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-               <key>Strength</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Strength</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-               <key>Damping</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Damping</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Cause object name to point it's forward axis towards Target.\nCause object to point the forward axis toward Target.\n
 				Good Strength values are around half the mass of the object and good Damping values are less than 1/10th of the Strength.\n
@@ -11757,29 +12431,33 @@
          </map>
          <key>llLoopSound</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>Sound</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Sound</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-               <key>Volume</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Volume</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Plays attached Sound, looping indefinitely, at Volume (0.0 - 1.0).\nSimilar to llPlaySound, this function plays a sound attached to an object, but will continuously repeat that sound until llStopSound or llPlaySound is called.\n
 			Only one sound may be attached to an object at a time. A second call to llLoopSound with the same key will not restart the sound, but the new volume will be used. This allows control over the volume of already playing sounds.\n
@@ -11788,58 +12466,66 @@
          </map>
          <key>llLoopSoundMaster</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>Sound</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Sound</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-               <key>Volume</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Volume</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Plays attached Sound, looping at volume (0.0 - 1.0), and declares it a sync master.\nBehaviour is identical to llLoopSound, with the addition of marking the source as a "Sync Master", causing "Slave" sounds to sync to it. If there are multiple masters within a viewers interest area, the most audible one (a function of both distance and volume) will win out as the master.\n
 				The use of multiple masters within a small area is unlikely to produce the desired effect.</string>
          </map>
          <key>llLoopSoundSlave</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>Sound</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Sound</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-               <key>Volume</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Volume</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Plays attached sound looping at volume (0.0 - 1.0), synced to most audible sync master.\nBehaviour is identical to llLoopSound, unless there is a "Sync Master" present.\n
 				If a Sync Master is already playing the Slave sound will begin playing from the same point the master is in its loop synchronizing the loop points of both sounds.\n
@@ -11847,325 +12533,391 @@
          </map>
          <key>llMakeExplosion</key>
          <map>
-            <key>deprecated</key>
-            <boolean>true</boolean>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.1</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>Particles</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Particles</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>Scale</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Scale</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-               <key>Velocity</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Velocity</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-               <key>Lifetime</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Lifetime</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-               <key>Arc</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Arc</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-               <key>Texture</key>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Texture</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-               <key>Offset</key>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Offset</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-            </map>
-            <key>tooltip</key>
-            <string>Make a round explosion of particles. Deprecated: Use llParticleSystem instead.\nMake a round explosion of particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.</string>
-         </map>
-         <key>llMakeFire</key>
-         <map>
+            </array>
             <key>deprecated</key>
             <boolean>true</boolean>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.1</real>
             <key>return</key>
             <string>void</string>
+            <key>sleep</key>
+            <real>0.1</real>
+            <key>tooltip</key>
+            <string>Make a round explosion of particles. Deprecated: Use llParticleSystem instead.\nMake a round explosion of particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.</string>
+         </map>
+         <key>llMakeFire</key>
+         <map>
             <key>arguments</key>
-            <map>
-               <key>Particles</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Particles</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>Scale</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Scale</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-               <key>Velocity</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Velocity</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-               <key>Lifetime</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Lifetime</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-               <key>Arc</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Arc</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-               <key>Texture</key>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Texture</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-               <key>Offset</key>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Offset</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-            </map>
-            <key>tooltip</key>
-            <string>Make fire like particles. Deprecated: Use llParticleSystem instead.\nMake fire particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.</string>
-         </map>
-         <key>llMakeFountain</key>
-         <map>
+            </array>
             <key>deprecated</key>
             <boolean>true</boolean>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.1</real>
             <key>return</key>
             <string>void</string>
+            <key>sleep</key>
+            <real>0.1</real>
+            <key>tooltip</key>
+            <string>Make fire like particles. Deprecated: Use llParticleSystem instead.\nMake fire particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.</string>
+         </map>
+         <key>llMakeFountain</key>
+         <map>
             <key>arguments</key>
-            <map>
-               <key>Particles</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Particles</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>Scale</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Scale</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-               <key>Velocity</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Velocity</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-               <key>Lifetime</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Lifetime</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-               <key>Arc</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Arc</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-               <key>Texture</key>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Texture</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-               <key>Offset</key>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Offset</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-            </map>
-            <key>tooltip</key>
-            <string>Make a fountain of particles. Deprecated: Use llParticleSystem instead.\nMake a fountain of particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.</string>
-         </map>
-         <key>llMakeSmoke</key>
-         <map>
+            </array>
             <key>deprecated</key>
             <boolean>true</boolean>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.1</real>
             <key>return</key>
             <string>void</string>
+            <key>sleep</key>
+            <real>0.1</real>
+            <key>tooltip</key>
+            <string>Make a fountain of particles. Deprecated: Use llParticleSystem instead.\nMake a fountain of particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.</string>
+         </map>
+         <key>llMakeSmoke</key>
+         <map>
             <key>arguments</key>
-            <map>
-               <key>Particles</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Particles</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>Scale</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Scale</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-               <key>Velocity</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Velocity</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-               <key>Lifetime</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Lifetime</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-               <key>Arc</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Arc</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-               <key>Texture</key>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Texture</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-               <key>Offset</key>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Offset</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.1</real>
             <key>tooltip</key>
             <string>Make smoke like particles. Deprecated: Use llParticleSystem instead.\nMake smoky particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.</string>
          </map>
          <key>llManageEstateAccess</key>
          <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real/>
-            <key>return</key>
-            <string>integer</string>
             <key>arguments</key>
-            <map>
-               <key>Action</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Action</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>AvatarID</key>
                <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>AvatarID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real/>
+            <key>return</key>
+            <string>integer</string>
+            <key>sleep</key>
+            <real/>
             <key>tooltip</key>
             <string>Use to add or remove agents from the estate's agent access or ban lists or groups from the estate's group access list.\nUse to add or remove agents from the estate's agent access or ban lists or groups from the estate's group access list.\n
 			Returns an integer representing a boolean, TRUE if the call was successful; FALSE if throttled, invalid action, invalid or null id or object owner is not allowed to manage the estate.</string>
          </map>
          <key>llMapDestination</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>1.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>RegionName</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>RegionName</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-               <key>Position</key>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Position</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-               <key>Direction</key>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Direction</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>1.0</real>
             <key>tooltip</key>
             <string>Opens world map centred on region with Position highlighted. Only works for scripts attached to avatar, or during touch events. NOTE: Direction currently does nothing.\nShows a given location on the map, opening the map window whenever it is called.\n
 				There is no way to simply set the map position without opening the window.\n
@@ -12173,264 +12925,302 @@
          </map>
          <key>llMD5String</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
             <key>arguments</key>
-            <map>
-               <key>Text</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-               <key>Nonce</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Nonce</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns a string of 32 hex characters that is an RSA Data Security Inc., MD5 Message-Digest Algorithm of Text with Nonce.\nPerforms an RSA Data Security, Inc. MD5 Message-Digest Algorithm on the specified string using the nonce (also known as salt).\n
 				Returns a 32-character hex string. (128-bit in binary.)</string>
          </map>
          <key>llMessageLinked</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>LinkNumber</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>LinkNumber</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>Number</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Number</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>Text</key>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-               <key>ID</key>
                <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>ID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Sends Number, Text, and ID to members of the link set identified by LinkNumber (LINK_ROOT sends to root task in a linked set, LINK_SET sends to all tasks, LINK_ALL_OTHERS to all other tasks, LINK_ALL_CHILDREN to all children, LINK_THIS to the task the script it is in).\nSends the specified number, string, and key to members of the link set.\n
 				The LinkNumber parameter is either a linked number available through llGetLinkNumber or a LINK_* constant.</string>
          </map>
          <key>llMinEventDelay</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Delay</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Delay</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Set the minimum time between events being handled.</string>
          </map>
          <key>llModifyLand</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>Action</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Action</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>Area</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Area</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Modify land with action (LAND_LEVEL, LAND_RAISE, LAND_LOWER, LAND_SMOOTH, LAND_NOISE, LAND_REVERT) on size (LAND_SMALL_BRUSH, LAND_MEDIUM_BRUSH, LAND_LARGE_BRUSH).\nModify land with action on size area. The parameters can be chosen from the land constants.</string>
          </map>
          <key>llModPow</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>1.0</real>
-            <key>return</key>
-            <string>integer</string>
             <key>arguments</key>
-            <map>
-               <key>Value</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Value</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>Power</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Power</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>Modulus</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Modulus</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>sleep</key>
+            <real>1.0</real>
             <key>tooltip</key>
             <string>Returns a Value raised to the Power, mod Modulus. ((a**b)%c) b is capped at 0xFFFF (16 bits).\nReturns (Value ^ Power) % Modulus. (Value raised to the Power, Modulus). Value is capped at 0xFFFF (16 bits).</string>
          </map>
          <key>llMoveToTarget</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>Target</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Target</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-               <key>Tau</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Tau</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Critically damp to Target in Tau seconds (if the script is physical).\nCritically damp to position target in tau-seconds if the script is physical. Good tau-values are greater than 0.2. A tau of 0.0 stops the critical damping.</string>
          </map>
          <key>llNavigateTo</key>
          <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real/>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>Location</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Location</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-               <key>Options</key>
                <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Options</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real/>
             <key>tooltip</key>
             <string>Navigate to destination.\nDirects an object to travel to a defined position in the region or adjacent regions.</string>
          </map>
          <key>llOffsetTexture</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.2</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>OffsetS</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>OffsetS</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-               <key>OffsetT</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>OffsetT</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-               <key>Face</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Face</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.2</real>
             <key>tooltip</key>
             <string>Sets the texture S and T offsets for the chosen Face.\nSets the texture s and t offsets of face.\n
 			If Face is ALL_SIDES this function sets the texture offsets for all faces.</string>
          </map>
          <key>llOpenRemoteDataChannel</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>deprecated</key>
             <boolean>true</boolean>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>1.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>1.0</real>
             <key>tooltip</key>
             <string>Requests a channel to listen for XML-RPC calls. Will trigger a remote_data event with channel ID once it is available.\nRequests a channel to listen for XML-RPC calls. (Deprecated: XML-RPC should not be used. Use http-in instead.)\n
 				Will trigger a remote_data event with type = REMOTE_DATA_CHANNEL and a channel ID (key) once it is available.\n
@@ -12438,121 +13228,135 @@
          </map>
          <key>llOverMyLand</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>ID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>ID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns TRUE if id ID over land owned by the script owner, otherwise FALSE.\nReturns TRUE if key ID is over land owned by the object owner, FALSE otherwise.</string>
          </map>
          <key>llOwnerSay</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>says Text to owner only (if owner is in region).\nSays Text to the owner of the object running the script, if the owner has been within the object's simulator since logging into Second Life, regardless of where they may be in-world.</string>
          </map>
          <key>llParcelMediaCommandList</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>CommandList</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>2.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>CommandList</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>2.0</real>
             <key>tooltip</key>
             <string>Sends a list of commands, some with arguments, to a parcel.\nControls the playback of multimedia resources on a parcel or for an agent.</string>
          </map>
          <key>llParcelMediaQuery</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>QueryList</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>2.0</real>
             <key>return</key>
             <string>list</string>
-            <key>arguments</key>
-            <map>
-               <key>QueryList</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>2.0</real>
             <key>tooltip</key>
             <string>Returns a list containing results of the sent query.\nQueries the texture and/or URL for QuickTime-playable video on the land parcel.\n
 				This function will only work if the script is contained within an object owned by the land-owner (or if the land is owned by a group, only if the object has been deeded to the group). It will not work for group land if the object owner is a member of the group. The object actually has to be owned by the group.</string>
          </map>
          <key>llParseString2List</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>list</string>
             <key>arguments</key>
-            <map>
-               <key>Text</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-               <key>Separators</key>
                <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Separators</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
                </map>
-               <key>Spacers</key>
                <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Spacers</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Breaks Text into a list, discarding Separators, keeping Spacers (Separators and Spacers must be lists of strings, maximum of 8 each).\nBreaks the Text into a list using Separators and Spacers to delimit entries. Separators are discarded, while Spacers are kept. Any empty entries are ignored.\n
 				The separators and spacers must be lists of strings with a maximum of 8 entries each. So, if you had made the call:\n
@@ -12561,57 +13365,65 @@
          </map>
          <key>llParseStringKeepNulls</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>list</string>
             <key>arguments</key>
-            <map>
-               <key>Text</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-               <key>Separators</key>
                <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Separators</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
                </map>
-               <key>Spacers</key>
                <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Spacers</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Breaks Text into a list, discarding separators, keeping spacers, keeping any null values generated. (separators and spacers must be lists of strings, maximum of 8 each).\nllParseStringKeepNulls works almost exactly like llParseString2List, except that if a null is found it will add a null-string instead of discarding it like llParseString2List does.</string>
          </map>
          <key>llParticleSystem</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Parameters</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Parameters</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Creates a particle system based on Parameters.	An empty list removes particle system from object.
 				List format is [ rule-1, data-1, rule-2, data-2 . . . rule-n, data-n ].\nMakes a particle system based on the parameter list.\n
@@ -12621,101 +13433,113 @@
          </map>
          <key>llPassCollisions</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Pass</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Pass</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>If Pass == TRUE, collisions are passed from children on to parents (default is FALSE).\nIf pass is TRUE, land and object collisions are passed from children on to parents.\n
 				The default is FALSE if there is no script to handle the collision events.</string>
          </map>
          <key>llPassTouches</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>Pass</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Pass</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
-            <key>tooltip</key>
-            <string>If pass == TRUE, touches are passed from children on to parents (default is FALSE).\nIf pass is TRUE, touches are passed from children on to parents.\n
-				The default is TRUE if there is no script to handle the touch events.</string>
-         </map>
-         <key>llPatrolPoints</key>
-         <map>
+            </array>
             <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real/>
+            <real>10.0</real>
             <key>return</key>
             <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>tooltip</key>
+            <string>If pass == TRUE, touches are passed from children on to parents (default is FALSE).\nIf pass is TRUE, touches are passed from children on to parents.\n
+				The default is TRUE if there is no script to handle the touch events.</string>
+         </map>
+         <key>llPatrolPoints</key>
+         <map>
             <key>arguments</key>
-            <map>
-               <key>Points</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Points</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
                </map>
-               <key>Options</key>
                <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Options</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real/>
             <key>tooltip</key>
             <string>Patrol a list of points.\nSets the points for a character (llCreateCharacter) to patrol along.</string>
          </map>
          <key>llPlaySound</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>Sound</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Sound</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-               <key>Volume</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Volume</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Plays attached Sound once, at Volume (0.0 - 1.0).\nPlays a sound once. The sound will be attached to the object and follow object's movement. Only one sound may be attached to an object at a time, and attaching a new sound or calling llStopSound will stop the previously attached sound.\n
 				A second call to llPlaySound with the same sound will not restart the sound, but the new volume will be used, which allows control over the volume of already playing sounds.\n
@@ -12723,326 +13547,370 @@
          </map>
          <key>llPlaySoundSlave</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>Sound</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Sound</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-               <key>Volume</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Volume</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Plays attached Sound once, at Volume (0.0 - 1.0), synced to next loop of most audible sync master.\nBehaviour is identical to llPlaySound, unless there is a "Sync Master" present. If a Sync Master is already playing, the Slave sound will not be played until the Master hits its loop point and returns to the beginning.\n
 				llPlaySoundSlave will play the sound exactly once; if it is desired to have the sound play every time the Master loops, either use llLoopSoundSlave with extra silence padded on the end of the sound or ensure that llPlaySoundSlave is called at least once per loop of the Master.</string>
          </map>
          <key>llPow</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>Value</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Value</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-               <key>Exponent</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Exponent</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the Value raised to the power Exponent, or returns 0 and triggers Math Error for imaginary results.\nReturns the Value raised to the Exponent.</string>
          </map>
          <key>llPreloadSound</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Sound</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>1.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Sound</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>1.0</real>
             <key>tooltip</key>
             <string>Preloads a sound on viewers within range.\nCauses nearby viewers to preload the Sound from the object's inventory. This is intended to prevent delays in starting new sounds when called upon.</string>
          </map>
          <key>llPursue</key>
          <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real/>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>TargetID</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>TargetID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
                </map>
-               <key>Options</key>
                <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Options</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real/>
             <key>tooltip</key>
             <string>Chase after a target.\nCauses the character (llCharacter) to pursue the target defined by TargetID.</string>
          </map>
          <key>llPushObject</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>ObjectID</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>ObjectID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
                </map>
-               <key>Impulse</key>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Impulse</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-               <key>AngularImpulse</key>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>AngularImpulse</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-               <key>Local</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Local</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Applies Impulse and AngularImpulse to ObjectID.\nApplies the supplied impulse and angular impulse to the object specified.</string>
          </map>
          <key>llRefreshPrimURL</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>20.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>20.0</real>
             <key>tooltip</key>
             <string>Reloads the web page shown on the sides of the object.</string>
          </map>
          <key>llRegionSay</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>Channel</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Channel</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>Text</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Broadcasts Text to entire region on Channel (not 0.).\nSays the Text on the specified non-zero Channel, so that it can be heard anywhere in the region by a script listening on that channel.</string>
          </map>
          <key>llRegionSayTo</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>TargetID</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>TargetID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
                </map>
-               <key>Channel</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Channel</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>Text</key>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Says Text, on Channel, to avatar or object indicated by TargetID (if within region).\nSays the Text on the supplied channel number, to the object or avatar specified.</string>
          </map>
          <key>llReleaseCamera</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>AvatarID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+            </array>
             <key>deprecated</key>
             <boolean>true</boolean>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Return camera to agent.\nDeprecated: Use llClearCameraParams instead.</string>
          </map>
          <key>llReleaseControls</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Stop taking inputs.\nStop taking inputs from the avatar.</string>
          </map>
          <key>llReleaseURL</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>URL</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>URL</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Releases the specified URL, it will no longer be usable.</string>
          </map>
          <key>llRemoteDataReply</key>
          <map>
-            <key>deprecated</key>
-            <boolean>true</boolean>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>3.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>ChannelID</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>ChannelID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
                </map>
-               <key>MessageID</key>
                <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>MessageID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
                </map>
-               <key>Data</key>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Data</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-               <key>Data</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Data</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>3.0</real>
             <key>tooltip</key>
             <string>Send an XML-RPC reply to MessageID on ChannelID with payload of string sData and integer iData. Deprecated: Use HTTP functions/events instead.\nDeprecated: Use HTTP functions/events instead.\n
 				Send an XML-RPC reply to the request with kMessageID on kChannelID with payload of string sData and integer iData.\n
@@ -13050,16 +13918,16 @@
          </map>
          <key>llRemoteDataSetRegion</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>deprecated</key>
             <boolean>true</boolean>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Deprecated: Use HTTP functions/events instead.\n
 				If an object using remote data channels changes regions, you must call this function to re-register the remote data channels.
@@ -13068,183 +13936,207 @@
          </map>
          <key>llRemoteLoadScriptPin</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>3.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>ObjectID</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>ObjectID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
                </map>
-               <key>ScriptName</key>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>ScriptName</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-               <key>PIN</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>PIN</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>Running</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Running</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>StartParameter</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>StartParameter</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>3.0</real>
             <key>tooltip</key>
             <string>If the owner of the object this script is attached to can modify ObjectID, they are in the same region, and the matching PIN is used, copy ScriptName into target, if Running == TRUE, start the script with StartParameter.\nIf the owner of the object containing this script can modify the object identified by the specified object key, and if the PIN matches the PIN previously set using llSetRemoteScriptAccessPin (on the target prim), then the script will be copied into target.</string>
          </map>
          <key>llRemoveFromLandBanList</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>AvatarID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Remove avatar from the land ban list.\nRemove specified avatar from the land parcel ban list.</string>
          </map>
          <key>llRemoveFromLandPassList</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>AvatarID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Remove avatar from the land pass list.\nRemove specified avatar from the land parcel pass list.</string>
          </map>
          <key>llRemoveInventory</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>InventoryItem</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>InventoryItem</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Remove the named inventory item.\nRemove the named inventory item from the object inventory.</string>
          </map>
          <key>llRemoveVehicleFlags</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Vehiclelags</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Vehiclelags</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Removes the enabled bits in 'flags'.\nSets the vehicle flags to FALSE. Valid parameters can be found in the vehicle flags constants section.</string>
          </map>
          <key>llRequestAgentData</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.1</real>
-            <key>return</key>
-            <string>key</string>
             <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>AvatarID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
                </map>
-               <key>Data</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Data</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>sleep</key>
+            <real>0.1</real>
             <key>tooltip</key>
             <string>Requests data about AvatarID. When data is available the dataserver event will be raised.\nThis function requests data about an avatar. If and when the information is collected, the dataserver event is triggered with the key returned from this function passed in the requested parameter. See the agent data constants (DATA_*) for details about valid values of data and what each will return in the dataserver event.</string>
          </map>
          <key>llRequestDisplayName</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>AvatarID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>key</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Requests name of an avatar. When data is available, the dataserver event will be raised.\nRequests the Display Name of the agent. When the Display Name is available the dataserver event will be raised.\n
 				The avatar identified does not need to be in the same region or online at the time of the request.\n
@@ -13252,22 +14144,24 @@
          </map>
          <key>llRequestInventoryData</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>InventoryItem</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>1.0</real>
             <key>return</key>
             <string>key</string>
-            <key>arguments</key>
-            <map>
-               <key>InventoryItem</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>1.0</real>
             <key>tooltip</key>
             <string>Requests data from object's inventory object. When data is available the dataserver event will be raised.\nRequests data for the object inventory item named.\n
 				When data is available the dataserver event will be raised with the key returned from this function in the requested parameter.\n
@@ -13275,29 +14169,33 @@
          </map>
          <key>llRequestPermissions</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>AvatarID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
                </map>
-               <key>PermmissionMask</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>PermmissionMask</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Ask AvatarID to allow the script to do PermmissionMask (NB: Debit, ownership, link, joint, and permission requests can only go to the task's owner).\nAsk avatar to allow the script to perform certain actions. The permission flag should be one or more PERMISSION_* constants.\n
 				Multiple permissions can be requested simultaneously by ORing the constants together. Many of the permissions requests can only go to object owner.\n
@@ -13306,538 +14204,600 @@
          </map>
          <key>llRequestSecureURL</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>key</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Requests one HTTPS:// (SSL) URL for use by this object. An http_request event is triggered with the results.\nRequests one HTTPS:// (SSL) URL for use by this object. The http_request event is triggered with results.\n
 				Returns a key that is the handle used for identifying the request in the http_request event.</string>
          </map>
          <key>llRequestSimulatorData</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>1.0</real>
-            <key>return</key>
-            <string>key</string>
             <key>arguments</key>
-            <map>
-               <key>RegionName</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>RegionName</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-               <key>Data</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Data</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>sleep</key>
+            <real>1.0</real>
             <key>tooltip</key>
             <string>Requests data about a simulator. When data is available the dataserver event will be raised.\nRequests data about the region named. Data should use one of the DATA_SIM_* constants.\n
 			Returns a dataserver query ID and triggers the dataserver event when data is found. The region name is usually not case-sensitive, but sometimes will return data for a similarly-named region if the supplied case doesn't match the intended region's actual name.</string>
          </map>
          <key>llRequestURL</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>key</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Requests one HTTP:// URL for use by this object. An http_request event is triggered with the results.\nRequests one HTTP:// URL for use by this script. The http_request event is triggered with the result of the request.\n
 				Returns a key that is the handle used for identifying the result in the http_request event.</string>
          </map>
          <key>llRequestUsername</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>AvatarID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>key</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Requests single-word user-name of an avatar. When data is available the dataserver event will be raised.\nRequests the user-name of the identified agent. When the user-name is available the dataserver event is raised.\nThe agent identified does not need to be in the same region or online at the time of the request.\nReturns a key that is used to identify the dataserver event when it is raised.</string>
          </map>
          <key>llResetAnimationOverride</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>AnimationState</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>0</real>
-            <key>sleep</key>
-            <real>0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>AnimationState</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0</real>
             <key>tooltip</key>
             <string>Resets the animation of the specified animation state to the default value.\nIf animation state equals "ALL", then all animation states are reset.</string>
          </map>
          <key>llResetLandBanList</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Removes all residents from the land ban list.</string>
          </map>
          <key>llResetLandPassList</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Removes all residents from the land access/pass list.</string>
          </map>
          <key>llResetOtherScript</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>ScriptName</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>ScriptName</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Resets the named script.</string>
          </map>
          <key>llResetScript</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Resets the script.</string>
          </map>
          <key>llResetTime</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Sets the time to zero.\nSets the internal timer to zero.</string>
          </map>
          <key>llReturnObjectsByID</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>ObjectIDs</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>ObjectIDs</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Return objects using their UUIDs</string>
          </map>
          <key>llReturnObjectsByOwner</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
             <key>arguments</key>
-            <map>
-               <key>ID</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>ID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
                </map>
-               <key>Scope</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Scope</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Return objects based upon their owner and a scope of parcel, parcel owner, or region.</string>
          </map>
          <key>llRezAtRoot</key>
          <map>
-            <key>energy</key>
-            <real>200.0</real>
-            <key>sleep</key>
-            <real>0.1</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>InventoryItem</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>InventoryItem</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-               <key>Position</key>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Position</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-               <key>Velocity</key>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Velocity</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-               <key>Rotation</key>
                <map>
-                  <key>type</key>
-                  <string>rotation</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Rotation</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>rotation</string>
+                  </map>
                </map>
-               <key>StartParameter</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>StartParameter</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>200.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.1</real>
             <key>tooltip</key>
             <string>Instantiate owner's InventoryItem at Position with Velocity, Rotation and with StartParameter. The last selected root object's location will be set to Position.\nCreates object's inventory item at the given Position, with Velocity, Rotation, and StartParameter.</string>
          </map>
          <key>llRezObject</key>
          <map>
-            <key>energy</key>
-            <real>200</real>
-            <key>sleep</key>
-            <real>0.1</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>InventoryItem</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>InventoryItem</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-               <key>Position</key>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Position</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-               <key>Velocity</key>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Velocity</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-               <key>Rotation</key>
                <map>
-                  <key>type</key>
-                  <string>rotation</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Rotation</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>rotation</string>
+                  </map>
                </map>
-               <key>StartParameter</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>StartParameter</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>200</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.1</real>
             <key>tooltip</key>
             <string>Instantiate owners InventoryItem at Position with Velocity, Rotation and with start StartParameter.\nCreates object's inventory item at Position with Velocity and Rotation supplied. The StartParameter value will be available to the newly created object in the on_rez event or through the llGetStartParameter function.\nThe Velocity parameter is ignored if the rezzed object is not physical.</string>
          </map>
          <key>llRot2Angle</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Rotation</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>rotation</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>Rotation</key>
-               <map>
-                  <key>type</key>
-                  <string>rotation</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the rotation angle represented by Rotation.\nReturns the angle represented by the Rotation.</string>
          </map>
          <key>llRot2Axis</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Rotation</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>rotation</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>Rotation</key>
-               <map>
-                  <key>type</key>
-                  <string>rotation</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the rotation axis represented by Rotation.\nReturns the axis represented by the Rotation.</string>
          </map>
          <key>llRot2Euler</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Rotation</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>rotation</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>Rotation</key>
-               <map>
-                  <key>type</key>
-                  <string>rotation</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the Euler representation (roll, pitch, yaw) of Rotation.\nReturns the Euler Angle representation of the Rotation.</string>
          </map>
          <key>llRot2Fwd</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Rotation</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>rotation</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>Rotation</key>
-               <map>
-                  <key>type</key>
-                  <string>rotation</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the forward vector defined by Rotation.\nReturns the forward axis represented by the Rotation.</string>
          </map>
          <key>llRot2Left</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Rotation</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>rotation</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>Rotation</key>
-               <map>
-                  <key>type</key>
-                  <string>rotation</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the left vector defined by Rotation.\nReturns the left axis represented by the Rotation.</string>
          </map>
          <key>llRot2Up</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Rotation</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>rotation</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>Rotation</key>
-               <map>
-                  <key>type</key>
-                  <string>rotation</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the up vector defined by Rotation.\nReturns the up axis represented by the Rotation.</string>
          </map>
          <key>llRotateTexture</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.2</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>Radians</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Radians</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-               <key>Face</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Face</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.2</real>
             <key>tooltip</key>
             <string>Sets the texture rotation for the chosen face.\nSets the rotation of the texture on the given side.\n
 				If face is ALL_SIDES, rotates the texture of all sides.</string>
          </map>
          <key>llRotBetween</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>rotation</string>
             <key>arguments</key>
-            <map>
-               <key>Vector1</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Vector1</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-               <key>Vector2</key>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Vector2</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>rotation</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the rotation to rotate Vector1 to Vector2.\nReturns the rotation needed to rotate Vector1 to Vector2.</string>
          </map>
          <key>llRotLookAt</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>Rotation</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>rotation</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Rotation</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>rotation</string>
+                  </map>
                </map>
-               <key>Strength</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Strength</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-               <key>Damping</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Damping</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Cause object to point it's forward axis towards Rotation.\nCause object to rotate to Rotation. Good strength values are around half the mass of the object and good damping values are less than 1/10th of the strength.\n
 				Asymmetrical shapes require smaller damping.\n
@@ -13845,157 +14805,177 @@
          </map>
          <key>llRotTarget</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
             <key>arguments</key>
-            <map>
-               <key>Rotation</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>rotation</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Rotation</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>rotation</string>
+                  </map>
                </map>
-               <key>LeeWay</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>LeeWay</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Set rotations with error of LeeWay as a rotational target and return an ID for the rotational target.\nSet object rotation within the given lee way of rotation as a rotational target and return an integer number for the target.\n
 				The returned number is a handle that can be used in llRotTargetRemove.</string>
          </map>
          <key>llRotTargetRemove</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Handle</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Handle</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Removes rotational target number.\nRemove rotational target indicated by the handle.</string>
          </map>
          <key>llRound</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Value</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Value</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns Value rounded to the nearest integer.\nReturns the Value rounded to the nearest integer.</string>
          </map>
          <key>llSameGroup</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>ID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>ID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns TRUE if avatar ID is in the same region and has the same active group, otherwise FALSE.\nReturns TRUE if the object or agent identified is in the same simulator and has the same active group as this object. Otherwise, returns FALSE.</string>
          </map>
          <key>llSay</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>Channel</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Channel</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>Text</key>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Says Text on Channel.\nSay Text on channel.\n
 			Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 to 2,147,483,648 are private channels that are not sent to avatars but other scripts can listen for through the llListen/listen event system.</string>
          </map>
          <key>llScaleTexture</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.2</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>Horizontal</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Horizontal</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-               <key>Vertical</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Vertical</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-               <key>Face</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Face</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.2</real>
             <key>tooltip</key>
             <string>Sets the texture's S and T scales for the chosen Face.\nSets the Horizontal and Vertical repeats per Face on Face.\n
 				If Face == ALL_SIDES, all sides are set in one call.\n
@@ -14003,43 +14983,47 @@
          </map>
          <key>llScriptDanger</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Position</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Position</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns TRUE if Position is over public land, sandbox land, land that doesn't allow everyone to edit and build, or land that doesn't allow outside scripts.\nReturns true if the position is over public land, land that doesn't allow everyone to edit and build, or land that doesn't allow outside scripts.</string>
          </map>
          <key>llScriptProfiler</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>State</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>State</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Enables or disables script profiling options. Currently only supports PROFILE_SCRIPT_MEMORY (Mono only) and PROFILE_NONE.\n
 				MAY SIGNIFICANTLY REDUCE SCRIPT PERFORMANCE!.\nEnables or disables the scripts profiling state.. Currently only supports PROFILE_SCRIPT_MEMORY (Mono only) and PROFILE_NONE.\n
@@ -14047,45 +15031,53 @@
          </map>
          <key>llSendRemoteData</key>
          <map>
-            <key>deprecated</key>
-            <boolean>true</boolean>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>3.0</real>
-            <key>return</key>
-            <string>key</string>
             <key>arguments</key>
-            <map>
-               <key>ChannelID</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>ChannelID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
                </map>
-               <key>Destination</key>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Destination</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-               <key>Value</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Value</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>Text</key>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>sleep</key>
+            <real>3.0</real>
             <key>tooltip</key>
             <string>Deprecated: use HTTP instead.\n
 				Sends an XML-RPC request to Destination through ChannelID with payload of ChannelID (in a string), integer Value and string Text.
@@ -14093,1141 +15085,1311 @@
          </map>
          <key>llSensor</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>Name</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Name</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-               <key>ID</key>
                <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>ID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
                </map>
-               <key>Type</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Type</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>Range</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Range</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-               <key>Arc</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Arc</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Performs a single scan for Name and ID with Type (AGENT, ACTIVE, PASSIVE, and/or SCRIPTED) within Range meters and Arc radians of forward vector (Name, ID, and/or Type can be empty or 0).\nPerforms a single scan for Name and ID with Type within Range meters and Arc radians of the forward vector.\n
 				Specifying a blank Name or NULL_KEY ID will prevent filtering results for a particular Name or ID. A range of 0.0 does not perform a scan. The Type parameter should be an object type constant value.</string>
          </map>
          <key>llSensorRemove</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>removes sensor.\nRemoves the sensor set by llSensorRepeat.</string>
          </map>
          <key>llSensorRepeat</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>Name</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Name</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-               <key>ID</key>
                <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>ID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
                </map>
-               <key>Type</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Type</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>Range</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Range</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-               <key>Arc</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Arc</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-               <key>Rate</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Rate</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Sets a callback for Name and ID with Type (AGENT, ACTIVE, PASSIVE, and/or SCRIPTED) within Range meters and Arc radians of forward vector (Name, ID, and/or Type can be empty or 0) and repeats every Rate seconds.\nPerforms a repeating sensor scan for Name and ID with Type within Range meters and Arc radians of the forward vector (Name and/or ID can be empty or NULL_KEY).\n
 				A range of 0.0m does not perform a scan. The parameters have the same function as llSensor, except Rate, which defines the number of seconds between repeated scans and subsequent sensor or no_sensor events.</string>
          </map>
          <key>llSetAlpha</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>Opacity</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Opacity</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-               <key>Face</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Face</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Sets the alpha (opacity) of Face.\nSets the alpha (opacity) value for Face. If Face is ALL_SIDES, sets the alpha for all faces. The alpha value is interpreted as an opacity percentage (1.0 is fully opaque, and 0.2 is mostly transparent). This function will clamp alpha values less than 0.1 to 0.1 and greater than 1.0 to 1.</string>
          </map>
          <key>llSetAngularVelocity</key>
          <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>Force</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Force</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-               <key>Local</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Local</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Sets an object's angular velocity, in local coordinates if local == TRUE (if the script is physical).\nApplies angular (rotational) velocity to a physical object. Has no effect on non-physical objects.</string>
          </map>
          <key>llSetAnimationOverride</key>
          <map>
-            <key>energy</key>
-            <real>0</real>
-            <key>sleep</key>
-            <real>0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>AnimationState</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>AnimationState</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-               <key>AnimationName</key>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>AnimationName</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0</real>
             <key>tooltip</key>
             <string>Sets the animation (in object inventory) that will play for the given animation state.\nTo use this function the script must obtain the PERMISSION_OVERRIDE_ANIMATIONS permission.</string>
          </map>
          <key>llSetBuoyancy</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Buoyancy</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Buoyancy</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Set the tasks buoyancy (0 is none, &lt; 1.0 sinks, 1.0 floats, &gt; 1.0 rises).\nSet the object buoyancy. A value of 0 is none, less than 1.0 sinks, 1.0 floats, and greater than 1.0 rises.</string>
          </map>
          <key>llSetCameraAtOffset</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Offset</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Offset</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Sets the camera used in this object, at offset, if an avatar sits on it.\nSets the offset that an avatar's camera will be moved to if the avatar sits on the object.</string>
          </map>
          <key>llSetCameraEyeOffset</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Offset</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Offset</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Sets the camera eye offset used in this object if an avatar sits on it.</string>
          </map>
          <key>llSetCameraParams</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Parameters</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Parameters</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Sets multiple camera parameters at once. List format is [ rule-1, data-1, rule-2, data-2 . . . rule-n, data-n ].\nSets multiple camera parameters at once.\n
 				List format is [rule-1, value-1, rule-2, value-2 ... rule-N, value-N]</string>
          </map>
          <key>llSetClickAction</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Action</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Action</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Sets the action performed when a prim is clicked upon.</string>
          </map>
          <key>llSetColor</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>Colour</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Colour</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-               <key>Face</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Face</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Sets the color, for the face.\nSets the colour of the side specified. If Face is ALL_SIDES, sets the colour on all faces.</string>
          </map>
          <key>llSetContentType</key>
          <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real/>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>HTTPRequestID</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>HTTPRequestID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
                </map>
-               <key>ContentType</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>ContentType</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real/>
             <key>tooltip</key>
             <string>Set the media type of an LSL HTTP server response.</string>
          </map>
          <key>llSetDamage</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Damage</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Damage</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Sets the amount of damage that will be done to an avatar that this task hits.	Task will be killed.\nSets the amount of damage that will be done to an avatar that this object hits. This object will be destroyed on damaging an avatar, and no collision event is triggered.</string>
          </map>
          <key>llSetForce</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>Force</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Force</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-               <key>Local</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Local</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Sets Force on object, in local coordinates if Local == TRUE (if the script is physical).\nIf the object is physical, this function sets the force.\n
 				The vector is in local coordinates if local is TRUE, global if FALSE.</string>
          </map>
          <key>llSetForceAndTorque</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>Force</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Force</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-               <key>Torque</key>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Torque</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-               <key>Local</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Local</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Sets the Force and Torque of object, in local coordinates if Local == TRUE (if the script is physical).\nIf the object is physical, this function sets the Force and Torque. The vectors are in local coordinates if Local is TRUE, global if FALSE.</string>
          </map>
          <key>llSetHoverHeight</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>Height</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Height</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-               <key>Water</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Water</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>Tau</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Tau</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Critically damps to a Height (either above ground level or above the higher of land and water if water == TRUE).\nCritically damps to a Height. The height is above ground and water (which ever is greater) if water is TRUE. Only works with physics-enabled objects.\n
 				Do not use with vehicles. Use llStopHover to stop hovering.</string>
          </map>
          <key>llSetInventoryPermMask</key>
          <map>
-            <key>god-mode</key>
-            <boolean>true</boolean>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>InventoryItem</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>InventoryItem</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-               <key>PermissionFlag</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>PermissionFlag</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>PermissionMask</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>PermissionMask</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>god-mode</key>
+            <boolean>true</boolean>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Sets the given permission mask to the new value on the inventory item.</string>
          </map>
          <key>llSetKeyframedMotion</key>
          <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real/>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>Keyframes</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Keyframes</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
                </map>
-               <key>Options</key>
                <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Options</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real/>
             <key>tooltip</key>
             <string>Requests that a non-physical object be key-framed according to key-frame list.\nSpecify a list of times, positions, and orientations to be followed by an object. The object will be smoothly moved between key-frames by the simulator. Collisions with other non-physical or key-framed objects will be ignored (no script events will fire and collision processing will not occur). Collisions with physical objects will be computed and reported, but the key-framed object will be unaffected by those collisions.</string>
          </map>
          <key>llSetLinkAlpha</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>LinkNumber</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>LinkNumber</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>Opacity</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Opacity</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-               <key>Face</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Face</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>If a prim exists in the link chain at LinkNumber, set Face to Opacity.\nSets the Face, on the linked prim specified, to the Opacity.</string>
          </map>
          <key>llSetLinkCamera</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>LinkNumber</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>LinkNumber</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>EyeOffset</key>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>EyeOffset</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-               <key>LookOffset</key>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>LookOffset</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Sets the camera eye offset, and the offset that camera is looking at, for avatars that sit on the linked prim.</string>
          </map>
          <key>llSetLinkColor</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>LinkNumber</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>LinkNumber</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>Colour</key>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Colour</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-               <key>Face</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Face</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>If a task exists in the link chain at LinkNumber, set the Face to color.\nSets the colour of the linked child's side, specified by LinkNumber.</string>
          </map>
          <key>llSetLinkMedia</key>
          <map>
-            <key>energy</key>
-            <real>0.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
             <key>arguments</key>
-            <map>
-               <key>Link</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Link</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>Face</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Face</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>Parameters</key>
                <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Parameters</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Set the media parameters for a particular face on linked prim.	Parameters is a list of name/value pairs (in no particular order). If media is not already on this object, add it. Parameters not specified are unchanged, or if new media is added set to the default specified.\nSet the media parameters for a particular face on the linked prim(s) without a delay.\n
 				Returns an integer that is a STATUS_* flag which details the success/failure of the operation(s).</string>
          </map>
          <key>llSetLinkPrimitiveParams</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.2</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>LinkNumber</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>LinkNumber</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>Parameters</key>
                <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Parameters</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.2</real>
             <key>tooltip</key>
             <string>Set primitive parameters for LinkNumber based on Parameters.\nSets the parameters (or properties) of any linked prim in one step.</string>
          </map>
          <key>llSetLinkPrimitiveParamsFast</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>LinkNumber</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>LinkNumber</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>Parameters</key>
                <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Parameters</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Set primitive parameters for LinkNumber based on Parameters, without a delay.\nSet parameters for link number, from the list of Parameters, with no built-in script sleep. This function is identical to llSetLinkPrimitiveParams, except without the delay.</string>
          </map>
          <key>llSetLinkTexture</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.2</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>LinkNumber</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>LinkNumber</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>Texture</key>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Texture</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-               <key>Face</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Face</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.2</real>
             <key>tooltip</key>
             <string>Sets the Texture of Face for LinkNumber.\nSets the Texture of linked prims.</string>
          </map>
          <key>llSetLinkTextureAnim</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>LinkNumber</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>LinkNumber</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>Mode</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Mode</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>Face</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Face</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>SizeX</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>SizeX</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>SizeY</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>SizeY</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>Start</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Start</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-               <key>Length</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Length</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-               <key>Rate</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Rate</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Animate the texture on the specified prim's face/faces.\nAnimate the texture on the specified face/faces of the specified prim/prims by setting the texture scale and offset.\n
 				Identical to llSetTextureAnim except able to modify any prim in the link set.</string>
          </map>
          <key>llSetLocalRot</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Rotation</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>rotation</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.2</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Rotation</key>
-               <map>
-                  <key>type</key>
-                  <string>rotation</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.2</real>
             <key>tooltip</key>
             <string>Sets the rotation of a child prim relative to the root prim.</string>
          </map>
          <key>llSetMemoryLimit</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Limit</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real/>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Limit</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Request Limit bytes to be reserved for this script. This function has no effect if the script is running in the LSO VM.\nRequest Limit bytes to be reserved for this script. This function has no effect if the script is running in the LSO VM.\n
 				Return TRUE or FALSE indicating whether the limit was set successfully.</string>
          </map>
          <key>llSetObjectDesc</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Description</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Description</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Sets the object's description.\nSets the description of the scripted prim. You can get the description using llGetObjectDesc.\n
 				The description is limited to 127 characters.</string>
          </map>
          <key>llSetObjectName</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Name</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Name</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Sets the object's name.</string>
          </map>
          <key>llSetObjectPermMask</key>
          <map>
-            <key>god-mode</key>
-            <boolean>true</boolean>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>PermissionFlag</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>PermissionFlag</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>PermissionMask</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>PermissionMask</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>god-mode</key>
+            <boolean>true</boolean>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Sets the given permission mask to the new value on the root object the task is attached to.</string>
          </map>
          <key>llSetParcelMusicURL</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>URL</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>2.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>URL</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>2.0</real>
             <key>tooltip</key>
             <string>Sets the streaming audio URL for the parcel object is on.\nSets the streaming audio URL for the parcel the scripted object is on (the object must be owned by the owner of the parcel, if the parcel is group owned the object must be owned by that group).</string>
          </map>
          <key>llSetPayPrice</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>Price</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Price</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>QuickButtons</key>
                <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>QuickButtons</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Sets the default amount when someone chooses to pay this object.\nSets the values of the buttons and the text box default for the Pay dialogue, when a user right-clicks on the object and selects "Pay".\n
 				llSetPayPrice will affect what buttons exist, what their values are, and whether or not there is a manual payment text entry box.</string>
          </map>
          <key>llSetPhysicsMaterial</key>
          <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real/>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>MaterialBits</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>MaterialBits</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>GravityMultiplier</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>GravityMultiplier</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-               <key>Restitution</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Restitution</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-               <key>Friction</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Friction</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-               <key>Density</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Density</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real/>
             <key>tooltip</key>
             <string>Sets the requested attributes of the root object's physics material.</string>
          </map>
          <key>llSetPos</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Position</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.2</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Position</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.2</real>
             <key>tooltip</key>
             <string>Sets the position (if the script isn't physical).\nIf the object is not physical, this function sets the position in region coordinates. If the object is a child prim, the position is treated as root relative and the link-set is adjusted.</string>
          </map>
          <key>llSetPrimitiveParams</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.2</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>Parameters</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Parameters</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
                </map>
-            </map>
-            <key>tooltip</key>
-            <string>Set primitive parameters.\nThis function changes the many properties (or "parameters") of a prim in one operation. The Parameters are a list of changes.</string>
-         </map>
-         <key>llSetPrimMediaParams</key>
-         <map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.1</real>
             <key>return</key>
-            <string>integer</string>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.2</real>
+            <key>tooltip</key>
+            <string>Set primitive parameters.\nThis function changes the many properties (or "parameters") of a prim in one operation. The Parameters are a list of changes.</string>
+         </map>
+         <key>llSetPrimMediaParams</key>
+         <map>
             <key>arguments</key>
-            <map>
-               <key>Face</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Face</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>MediaParameters</key>
                <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>MediaParameters</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>sleep</key>
+            <real>0.1</real>
             <key>tooltip</key>
             <string>Sets the MediaParameters for a particular Face on an object. If media is not already on this object, add it.
 				MediaParameters is a set of name/value pairs in no particular order. Parameters not specified are unchanged, or if new media is added then set to the default specified.\nSet the MediaParameters for a particular face.\n
@@ -15235,45 +16397,49 @@
          </map>
          <key>llSetPrimURL</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>URL</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
             <key>deprecated</key>
             <boolean>true</boolean>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>20.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>URL</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>20.0</real>
             <key>tooltip</key>
             <string>Deprecated: Use llSetPrimMediaParams instead.\nDeprecated: Use llSetPrimMediaParams instead. Updates the URL for the web page shown on the sides of the object.</string>
          </map>
          <key>llSetRegionPos</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Position</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>0.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Position</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Sets the Position anywhere within the region (if the object isn't physical).\nTries to moves the entire object so that the root prim is within 0.1m of Position.\n
 				Returns an integer boolean, TRUE if the object is successfully placed within 0.1 m of Position, FALSE otherwise.\n
@@ -15281,911 +16447,1021 @@
          </map>
          <key>llSetRemoteScriptAccessPin</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>PIN</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.2</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>PIN</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.2</real>
             <key>tooltip</key>
             <string>If PIN is set to a non-zero number, the task will accept remote script loads via llRemoteLoadScriptPin if it passes in the correct PIN. Othersise, llRemoteLoadScriptPin is ignored.\nIf PIN is set to a non-zero number, the task will accept remote script loads via llRemoteLoadScriptPin if passed the matching PIN. Otherwise llRemoteLoadScriptPin is ignored</string>
          </map>
          <key>llSetRot</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Rotation</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>rotation</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.2</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Rotation</key>
-               <map>
-                  <key>type</key>
-                  <string>rotation</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.2</real>
             <key>tooltip</key>
             <string>Sets the rotation (if the script isn't physical).\nIf the object is not physical, this function sets the rotation.\n
 				If the script is in a child prim, the position is treated as root relative and the linked set is adjusted.</string>
          </map>
          <key>llSetScale</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Scale</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Scale</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Sets the scale.\nSets the prim's scale (size).</string>
          </map>
          <key>llSetScriptState</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>ScriptName</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>ScriptName</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-               <key>Running</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Running</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Control the state of a named script.\nControl the state of a script in the prim.</string>
          </map>
          <key>llSetSitText</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Displays Text rather than "Sit" in context menu.\nDisplays Text rather than 'Sit' in the viewer's menu.</string>
          </map>
          <key>llSetSoundQueueing</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>QueueEnable</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>QueueEnable</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Determines whether attached sound calls wait for the current sound to finish (0 = no [default], non-zero = yes).\nSets whether successive calls to llPlaySound, llLoopSound, etc., (attached sounds) interrupt the playing sound.\n
 				The default for objects is FALSE. Setting this value to TRUE will make the sound wait until the current playing sound reaches its end. The queue is one level deep.</string>
          </map>
          <key>llSetSoundRadius</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Radius</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Radius</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Establishes a hard cut-off radius for audibility of scripted sounds (both attached and triggered).</string>
          </map>
          <key>llSetStatus</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>Status</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Status</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>Value</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Value</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Sets status (STATUS_PHYSICS, STATUS_PHANTOM, STATUS_BLOCK_GRAB, STATUS_ROTATE_X, STATUS_ROTATE_Y, and/or STATUS_ROTATE_Z) to value.\nSets the Status to Value. Use STATUS_* constants for the values of status.</string>
          </map>
          <key>llSetText</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>Text</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-               <key>Colour</key>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Colour</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-               <key>Opacity</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Opacity</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Set text floating over object.\nSets the text that floats above the object, using the specified colour and opacity level.</string>
          </map>
          <key>llSetTexture</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.2</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>Texture</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Texture</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-               <key>Face</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Face</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.2</real>
             <key>tooltip</key>
             <string>Sets the Texture of Face.\nSets the Texture of Face. If Face is ALL_SIDES, set the texture on all faces.</string>
          </map>
          <key>llSetTextureAnim</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>Mode</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Mode</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>Face</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Face</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>SizeX</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>SizeX</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>SizeY</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>SizeY</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>Start</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Start</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-               <key>Length</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Length</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-               <key>Rate</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Rate</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Animate the texture on the specified face/faces.\nAnimates a texture by setting the texture scale and offset.</string>
          </map>
          <key>llSetTimerEvent</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Rate</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Rate</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Cause the timer event to be triggered every Rate seconds.\nSets the timer event to be triggered at the specified Rate, in seconds.\n
 				Passing in 0.0 stops further timer events.</string>
          </map>
          <key>llSetTorque</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>Torque</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Torque</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-               <key>Local</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Local</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Sets the Torque of object, in local coordinates if Local == TRUE (if the script is physical).\nIf the object is physical, this function sets the torque.\n
 			The vector is in local coordinates if Local is TRUE, global if FALSE.</string>
          </map>
          <key>llSetTouchText</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Displays Text in the menu that acts on a touch.\nDisplays Text in the viewer context menu that acts on a touch.</string>
          </map>
          <key>llSetVehicleFlags</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Flags</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Flags</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Sets the enabled bits in 'flags'.\nSets the vehicle flags to TRUE.\nValid parameters can be found in the vehicle flags constants section.</string>
          </map>
          <key>llSetVehicleFloatParam</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>ParameterName</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>ParameterName</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>ParameterValue</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>ParameterValue</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Sets the specified vehicle float parameter.\nSets the vehicle floating point parameter.\n
 				Valid parameters and their expected values can be found in the vehicle parameter constants section.</string>
          </map>
          <key>llSetVehicleRotationParam</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>ParameterName</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>ParameterName</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>ParameterValue</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>ParameterValue</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Sets the specified vehicle rotation parameter.\nSets the vehicle rotation parameter.\n
 				Valid parameters can be found in the vehicle parameter constants section.</string>
          </map>
          <key>llSetVehicleType</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Type</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Type</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Sets vehicle to one of the default types.\nActivates the vehicle action and choose vehicle Type.\n
 				Valid Types and an explanation of their characteristics can be found in the vehicle type constants section.</string>
          </map>
          <key>llSetVehicleVectorParam</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>ParameterName</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>ParameterName</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>ParameterValue</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>ParameterValue</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Sets the specified vehicle vector parameter.\nSets the vehicle vector parameter.\nValid parameters can be found in the vehicle parameter constants section.</string>
          </map>
          <key>llSetVelocity</key>
          <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>Force</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Force</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-               <key>Local</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Local</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Sets an objects velocity, in local coordinates if Local == TRUE (if the script is physical).\nApplies Force to a physical object.</string>
          </map>
          <key>llSHA1String</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
             <key>arguments</key>
-            <map>
-               <key>Text</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns a string of 40 hex characters that is the SHA1 security Hash of Text.\nReturns a string of 40 hex characters that is the SHA1 security hash of the supplied string.</string>
          </map>
          <key>llShout</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>Channel</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Channel</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>Text</key>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>shouts Text on Channel.\nShout Text on Channel. Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 to 2,147,483,648 are private channels that are not sent to avatars but other scripts can listen for through the llListen function.</string>
          </map>
          <key>llSin</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Theta</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>Theta</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the sine of Theta (Theta in radians).\nReturns the sine of Theta in radians.</string>
          </map>
          <key>llSitTarget</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>Offset</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Offset</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-               <key>Rotation</key>
                <map>
-                  <key>type</key>
-                  <string>rotation</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Rotation</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>rotation</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Set the sit location for this object (if offset == &lt;0,0,0&gt; clear it).\nSet the sit location for this object. If offset == ZERO_VECTOR, clears the sit target.</string>
          </map>
          <key>llSleep</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Time</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Time</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Put script to sleep for Time seconds.\nPuts the script to sleep for time specified, in seconds.</string>
          </map>
          <key>llSound</key>
          <map>
-            <key>deprecated</key>
-            <boolean>true</boolean>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>Sound</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Sound</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-               <key>Volume</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Volume</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-               <key>Queue</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Queue</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>Loop</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Loop</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Deprecated: Use llPlaySound instead.\nDeprecated: Use llPlaySound instead.\nPlays Sound at Volume and specifies whether it should loop or not.</string>
          </map>
          <key>llSoundPreload</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Sound</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
             <key>deprecated</key>
             <boolean>true</boolean>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Sound</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Deprecated: Use llPreloadSound instead.\nDeprecated: Use llPreloadSound instead.\nPreloads a sound on viewers within range.</string>
          </map>
          <key>llSqrt</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Value</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>Value</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the square root of Value, or returns 0 and triggers a Math Error for imaginary results.\nReturns the square root of the value. If the value is less than 0.0, this function returns 0.0 and raises a maths runtime error.</string>
          </map>
          <key>llStartAnimation</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Animation</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Animation</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Start Animation for agent that owns object.\nThis function starts the animation for the last avatar that granted the object PERMISSION_TRIGGER_ANIMATION permission.</string>
          </map>
          <key>llStopAnimation</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Animation</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Animation</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Stop Animation for agent that owns object.\nThis function stops the animation for the last avatar that granted the object PERMISSION_TRIGGER_ANIMATION permission.</string>
          </map>
          <key>llStopHover</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Stop hovering to a height.\nStop hovering at a height.</string>
          </map>
          <key>llStopLookAt</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Stop causing object to point at a target.\nStop causing object to look at target.</string>
          </map>
          <key>llStopMoveToTarget</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Stops critically damped motion.</string>
          </map>
          <key>llStopSound</key>
          <map>
+            <key>arguments</key>
+            <undef/>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <undef/>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Stops currently attached sound.\nStops the currently playing attached sound started with llPlaySound or llLoopSound. Has no effect on sounds started with llTriggerSound.</string>
          </map>
          <key>llStringLength</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>integer</string>
-            <key>arguments</key>
-            <map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the length of string.\nReturns the number of characters in the specified text.</string>
          </map>
          <key>llStringToBase64</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Converts a string to the Base64 representation of the string.\nConverts a string to the Base 64 representation of the string.</string>
          </map>
          <key>llStringTrim</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
             <key>arguments</key>
-            <map>
-               <key>Text</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-               <key>TrimType</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>TrimType</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Trims the leading and/or trailing white spaces from a string.\n
 				TrimType can be STRING_TRIM, STRING_TRIM_HEAD or STRING_TRIM_TAIL.\nOutputs a string, eliminating white-space from the start and/or end of the specified string.\n
@@ -16196,434 +17472,496 @@
          </map>
          <key>llSubStringIndex</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
             <key>arguments</key>
-            <map>
-               <key>Text</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-               <key>Sequence</key>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Sequence</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns an integer that is the index in source where pattern first appears. Returns -1 if not found.\nReturns an index of the text where the sequence of characters first appears.\n
 				Returns -1 if no match is found.</string>
          </map>
          <key>llTakeCamera</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>AvatarID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+            </array>
             <key>deprecated</key>
             <boolean>true</boolean>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Deprecated: Use llSetCameraParams instead.\nDeprecated: Use llSetCameraParams instead. Move avatar's viewpoint to task.</string>
          </map>
          <key>llTakeControls</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>Controls</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Controls</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>Accept</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Accept</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>PassOn</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>PassOn</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Take controls from agent task has permissions for.	If (Accept == (controls &amp; input)), send input to task.	If PassOn send to agent also.\nRequires the PERMISSION_TAKE_CONTROLS permission to run.</string>
          </map>
          <key>llTan</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Theta</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>Theta</key>
-               <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the tangent of Theta (Theta in radians).\nReturns the tangent of Theta radians.</string>
          </map>
          <key>llTarget</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
             <key>arguments</key>
-            <map>
-               <key>Position</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Position</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-               <key>Range</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Range</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Sets positions within range of position as a target and return an ID for the target.\nSet object position, within range of position, as a target and returns an integer ID for the target.</string>
          </map>
          <key>llTargetOmega</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>Axis</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Axis</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-               <key>SpinRate</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>SpinRate</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-               <key>Gain</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Gain</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Attempt to spin at SpinRate with strength Gain.\nAttempt to spin at SpinRate with strength Gain on axis.\n
 			A spin-rate of 0.0 cancels the spin. This function always works in object local coordinates.</string>
          </map>
          <key>llTargetRemove</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>Target</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Target</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
-            <key>tooltip</key>
-            <string>Removes target number.\nRemove target number.</string>
-         </map>
-         <key>llTeleportAgent</key>
-         <map>
+            </array>
             <key>energy</key>
-            <real>0</real>
-            <key>sleep</key>
-            <real>0</real>
+            <real>10.0</real>
             <key>return</key>
             <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>tooltip</key>
+            <string>Removes target number.\nRemove target number.</string>
+         </map>
+         <key>llTeleportAgent</key>
+         <map>
             <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>AvatarID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
                </map>
-               <key>LandmarkName</key>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>LandmarkName</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-               <key>Position</key>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Position</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-               <key>LookAtPoint</key>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>LookAtPoint</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0</real>
             <key>tooltip</key>
             <string>Requests a teleport of avatar to a landmark stored in the object's inventory. If no landmark is provided (an empty string), the avatar is teleported to the location position in the current region. In either case, the avatar is turned to face the position given by look_at in local coordinates.
 				Requires the PERMISSION_TELEPORT permission. This function can only teleport the owner of the object.</string>
          </map>
          <key>llTeleportAgentGlobalCoords</key>
          <map>
-            <key>energy</key>
-            <real>0</real>
-            <key>sleep</key>
-            <real>0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>AvatarID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
                </map>
-               <key>GlobalPosition</key>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>GlobalPosition</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-               <key>RegionPosition</key>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>RegionPosition</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-               <key>LookAtPoint</key>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>LookAtPoint</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0</real>
             <key>tooltip</key>
             <string>Teleports an agent to set of a region_coordinates within a region at the specified global_coordinates. The agent lands facing the position defined by look_at local coordinates.</string>
          </map>
          <key>llTeleportAgentHome</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>AvatarID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>100.0</real>
-            <key>sleep</key>
-            <real>5.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>5.0</real>
             <key>tooltip</key>
             <string>Teleports agent on owner's land to agent's home location.\nTeleport agent over the owner's land to agent's home location.</string>
          </map>
          <key>llTextBox</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>1.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>AvatarID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
                </map>
-               <key>Text</key>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-               <key>Channel</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Channel</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>1.0</real>
             <key>tooltip</key>
             <string>Shows a dialog box on the avatar's screen with the message. A text box asks for input, and if entered the Text is chatted on Channel.\nShows a dialogue box on avatar's screen with the text message.\n
 				It contains a text box for input. Any text that is entered is said on the specified channel (as if by the avatar) when the "OK" button is clicked.</string>
          </map>
          <key>llToLower</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns a string that is Text with all lower-case characters.\nReturns Text in all lower case.</string>
          </map>
          <key>llToUpper</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>Text</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns a string that is Text with all upper-case characters.\nReturns Text in all upper case.</string>
          </map>
          <key>llTransferLindenDollars</key>
          <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>key</string>
             <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>AvatarID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
                </map>
-               <key>Amount</key>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Amount</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real/>
+            <key>return</key>
+            <string>key</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Transfer Amount of linden dollars (L$) from script owner to AvatarID. Returns a key to a corresponding transaction_result event for the success of the transfer.\nAttempts to send the amount of money to the specified avatar, and trigger a transaction_result event identified by the returned key.</string>
          </map>
          <key>llTriggerSound</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>Sound</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Sound</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-               <key>Volume</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Volume</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Plays Sound at Volume (0.0 - 1.0), centered at but not attached to object.\nPlays a transient sound NOT attached to an object.\n
 				The sound plays from a stationary position located at the centre of the object at the time of the triggering.\n
@@ -16631,43 +17969,51 @@
          </map>
          <key>llTriggerSoundLimited</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>Sound</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Sound</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-               <key>Volume</key>
                <map>
-                  <key>type</key>
-                  <string>float</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Volume</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
                </map>
-               <key>TNE</key>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>TNE</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-               <key>BSW</key>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>BSW</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Plays Sound at Volume (0.0 - 1.0), centered at but not attached to object, limited to axis-aligned bounding box defined by vectors top-north-east (TNE) and bottom-south-west (BSW).\nPlays a transient sound NOT attached to an object, with its audible range limited by the axis-aligned bounding box define by TNE (top-north-east) and BSW (bottom-south-west).\n
 				The sound plays from a stationary position located at the centre of the object at the time of the triggering.\n
@@ -16675,156 +18021,172 @@
          </map>
          <key>llUnescapeURL</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>URL</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>URL</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns an unescaped/ unencoded version of URL, replacing %20 with spaces etc.\nReturns the string that is the URL unescaped, replacing "%20" with spaces, etc., version of URL.\n
 				The function can output raw UTF-8 strings.</string>
          </map>
          <key>llUnSit</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>AvatarID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>AvatarID</key>
-               <map>
-                  <key>type</key>
-                  <string>key</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>If agent identified by AvatarID is sitting on the object the script is attached to or is over land owned by the objects owner, the agent is forced to stand up.\nIf the agent identified is sitting on the object the script is attached to or is over land owned by the objects owner, the agent is forced to stand up.</string>
          </map>
          <key>llUpdateCharacter</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Options</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real/>
-            <key>sleep</key>
-            <real/>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>Options</key>
-               <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real/>
             <key>tooltip</key>
             <string>Change the character's settings.\nUpdates settings for a character.</string>
          </map>
          <key>llVecDist</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>float</string>
             <key>arguments</key>
-            <map>
-               <key>Location1</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Location1</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-               <key>Location2</key>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Location2</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the 3D distance between Location1 and Location2.\nReturns the distance from location 1 to location 2.</string>
          </map>
          <key>llVecMag</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Vector</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>Vector</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the magnitude of Vector.\nReturns the magnitude of the vector.</string>
          </map>
          <key>llVecNorm</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Vector</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>Vector</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the v normalized.\nReturns normalized vector.</string>
          </map>
          <key>llVolumeDetect</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>DetectEnabled</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>void</string>
-            <key>arguments</key>
-            <map>
-               <key>DetectEnabled</key>
-               <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>If DetectEnabled = TRUE, object becomes phantom but triggers collision_start and collision_end events when other objects start and stop interpenetrating. Must be applied to the root object.\nWhen detect = TRUE, this makes the entire link set the script is attached to phantom. If another object (including avatars) interpenetrates it, it will get a collision_start event.\n
 				When an object stops interpenetrating, a collision_end event is generated. While the other is inter-penetrating, collision events are NOT generated. The script must be applied to the root object of the link set to get the collision events.\n
@@ -16832,195 +18194,221 @@
          </map>
          <key>llWanderWithin</key>
          <map>
-            <key>energy</key>
-            <real/>
-            <key>sleep</key>
-            <real/>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>Origin</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Origin</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-               <key>Area</key>
                <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Area</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
                </map>
-               <key>Options</key>
                <map>
-                  <key>type</key>
-                  <string>list</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Options</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real/>
             <key>tooltip</key>
             <string>Wander within a specified volume.\nSets a character to wander about a central spot within a specified area.</string>
          </map>
          <key>llWater</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Offset</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>float</string>
-            <key>arguments</key>
-            <map>
-               <key>Offset</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the water height below the object position + offset.\nReturns the water height at the object's position + offset.</string>
          </map>
          <key>llWhisper</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
             <key>arguments</key>
-            <map>
-               <key>Channel</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>integer</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Channel</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
                </map>
-               <key>Text</key>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Whispers Text on Channel.\nWhisper Text on Channel. Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 to 2,147,483,648 are private channels that are not sent to avatars but other scripts can listen for through the llListen function.</string>
          </map>
          <key>llWind</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Offset</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+            </array>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>vector</string>
-            <key>arguments</key>
-            <map>
-               <key>Offset</key>
-               <map>
-                  <key>type</key>
-                  <string>vector</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Returns the wind velocity at the object position + offset.\nReturns the wind velocity at the object's position + offset.</string>
          </map>
          <key>llXorBase64</key>
          <map>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>sleep</key>
-            <real>0.3</real>
-            <key>return</key>
-            <string>string</string>
             <key>arguments</key>
-            <map>
-               <key>Text1</key>
+            <array>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Text1</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-               <key>Text2</key>
                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
+                  <key>Text2</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
                </map>
-            </map>
+            </array>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>sleep</key>
+            <real>0.3</real>
             <key>tooltip</key>
             <string>Performs an exclusive OR on two Base64 strings and returns a Base64 string.	Text2 repeats if it is shorter than Text1.	Retained for backwards compatibility.\nDeprecated: Use llXorBase64StringsCorrect instead.\nIncorrectly performs an exclusive OR on two Base64 strings and returns a Base64 string.</string>
          </map>
          <key>llXorBase64Strings</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Text1</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Text2</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
             <key>deprecated</key>
             <boolean>true</boolean>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.3</real>
             <key>return</key>
             <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>Text1</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Text2</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.3</real>
             <key>tooltip</key>
             <string>Deprecated: Please use llXorBase64 instead.\n
 				Incorrectly performs an exclusive OR on two Base64 strings and returns a Base64 string.	Text2 repeats if it is shorter than Text1.	Retained for backwards compatibility.\nDeprecated: Use llXorBase64StringsCorrect instead.\nIncorrectly performs an exclusive OR on two Base64 strings and returns a Base64 string.</string>
          </map>
          <key>llXorBase64StringsCorrect</key>
          <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Text1</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Text2</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
             <key>deprecated</key>
             <boolean>true</boolean>
             <key>energy</key>
             <real>10.0</real>
-            <key>sleep</key>
-            <real>0.0</real>
             <key>return</key>
             <string>string</string>
-            <key>arguments</key>
-            <map>
-               <key>Text1</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-               <key>Text2</key>
-               <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-               </map>
-            </map>
+            <key>sleep</key>
+            <real>0.0</real>
             <key>tooltip</key>
             <string>Deprecated: Please use llXorBase64 instead.\n
 				Correctly (unless nulls are present) performs an exclusive OR on two Base64 strings and returns a Base64 string.\n
@@ -17029,4 +18417,4 @@
          </map>
       </map>
    </map>
-</llsd>
\ No newline at end of file
+</llsd>
-- 
cgit v1.2.3


From fd643f07c8a3e3f1cfb146684f2d68db4b4126e7 Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Sat, 4 Jan 2014 01:27:57 +0000
Subject: storm-1831 In the LLSD, functions are in a <map> which makes sorting
 unnecessary (loading sorts them).

---
 indra/newview/llpreviewscript.cpp | 5 -----
 1 file changed, 5 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp
index 41c172e629..aedf687f0d 100755
--- a/indra/newview/llpreviewscript.cpp
+++ b/indra/newview/llpreviewscript.cpp
@@ -440,11 +440,6 @@ void LLScriptEdCore::onRegionChangeInitialiseKeywords()
 		}
 	}
 
-	// Case-insensitive dictionary sort for primary keywords. We don't sort the secondary
-	// keywords. They're intelligently grouped in keywords.ini.
-	// As we don't use keywords.ini, this is no longer true. Do we need to sort now?
-	std::stable_sort( primary_keywords.begin(), primary_keywords.end(), LLSECKeywordCompare() );
-
 	for (std::vector<std::string>::const_iterator iter= primary_keywords.begin();
 			iter!= primary_keywords.end(); ++iter)
 	{
-- 
cgit v1.2.3


From a4173dc81a21dfac6a8b57e8e1c354b9a37fe5ba Mon Sep 17 00:00:00 2001
From: Jonathan Yap <none@none>
Date: Wed, 8 Jan 2014 09:30:30 -0500
Subject: STORM-68 Remove obsolete note.  Refactor a few blocks of code to not
 have early returns

---
 indra/newview/llagentwearables.cpp  | 29 ++++++------
 indra/newview/llfloaterperms.cpp    |  1 -
 indra/newview/llpanelcontents.cpp   |  1 -
 indra/newview/llviewerinventory.cpp | 89 +++++++++++++++++++------------------
 4 files changed, 60 insertions(+), 60 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llagentwearables.cpp b/indra/newview/llagentwearables.cpp
index f71b49010d..aa97bddec8 100755
--- a/indra/newview/llagentwearables.cpp
+++ b/indra/newview/llagentwearables.cpp
@@ -88,23 +88,22 @@ void wear_and_edit_cb(const LLUUID& inv_item)
 
 void wear_cb(const LLUUID& inv_item)
 {
-	if (inv_item.isNull())
+	if (!inv_item.isNull())
 	{
-		return;
+		LLViewerInventoryItem* item = gInventory.getItem(inv_item);
+		if (item)
+		{
+			LLPermissions perm = item->getPermissions();
+			perm.setMaskNext(LLFloaterPerms::getNextOwnerPerms("Wearables"));
+			perm.setMaskEveryone(LLFloaterPerms::getEveryonePerms("Wearables"));
+			perm.setMaskGroup(LLFloaterPerms::getGroupPerms("Wearables"));
+			item->setPermissions(perm);
+
+			item->updateServer(FALSE);
+			gInventory.updateItem(item);
+			gInventory.notifyObservers();
+		}
 	}
-
-	LLViewerInventoryItem* item = gInventory.getItem(inv_item);
-	if (!item) return;
-
-	LLPermissions perm = item->getPermissions();
-	perm.setMaskNext(LLFloaterPerms::getNextOwnerPerms("Wearables"));
-	perm.setMaskEveryone(LLFloaterPerms::getEveryonePerms("Wearables"));
-	perm.setMaskGroup(LLFloaterPerms::getGroupPerms("Wearables"));
-	item->setPermissions(perm);
-
-	item->updateServer(FALSE);
-	gInventory.updateItem(item);
-	gInventory.notifyObservers();
 }
 
 ///////////////////////////////////////////////////////////////////////////////
diff --git a/indra/newview/llfloaterperms.cpp b/indra/newview/llfloaterperms.cpp
index cc1ff54cb4..0880a5f35a 100755
--- a/indra/newview/llfloaterperms.cpp
+++ b/indra/newview/llfloaterperms.cpp
@@ -119,7 +119,6 @@ const std::string LLFloaterPermsDefault::sCategoryNames[CAT_LAST] =
 	"Wearables"
 };
 
-
 BOOL LLFloaterPermsDefault::postBuild()
 {
 	if(!gSavedSettings.getBOOL("DefaultUploadPermissionsConverted"))
diff --git a/indra/newview/llpanelcontents.cpp b/indra/newview/llpanelcontents.cpp
index 697841ab88..89a9e0dc16 100755
--- a/indra/newview/llpanelcontents.cpp
+++ b/indra/newview/llpanelcontents.cpp
@@ -162,7 +162,6 @@ void LLPanelContents::onClickNewScript(void *userdata)
 		perm.initMasks(
 			PERM_ALL,
 			PERM_ALL,
-			// *NOTE: this does not work, needs server change
 			LLFloaterPerms::getEveryonePerms("Scripts"),
 			LLFloaterPerms::getGroupPerms("Scripts"),
 			PERM_MOVE | LLFloaterPerms::getNextOwnerPerms("Scripts"));
diff --git a/indra/newview/llviewerinventory.cpp b/indra/newview/llviewerinventory.cpp
index 5c41ef52b6..e8ae621e41 100755
--- a/indra/newview/llviewerinventory.cpp
+++ b/indra/newview/llviewerinventory.cpp
@@ -992,66 +992,69 @@ void activate_gesture_cb(const LLUUID& inv_item)
 
 void create_script_cb(const LLUUID& inv_item)
 {
-	if (inv_item.isNull())
-		return;
-
-	LLViewerInventoryItem* item = gInventory.getItem(inv_item);
-	if (!item) return;
-
-	LLPermissions perm = item->getPermissions();
-	perm.setMaskEveryone(LLFloaterPerms::getEveryonePerms("Scripts"));
-	perm.setMaskGroup(LLFloaterPerms::getGroupPerms("Scripts"));
+	if (!inv_item.isNull())
+	{
+		LLViewerInventoryItem* item = gInventory.getItem(inv_item);
+		if (item)
+		{
+			LLPermissions perm = item->getPermissions();
+			perm.setMaskEveryone(LLFloaterPerms::getEveryonePerms("Scripts"));
+			perm.setMaskGroup(LLFloaterPerms::getGroupPerms("Scripts"));
 
-	item->setPermissions(perm);
+			item->setPermissions(perm);
 
-	item->updateServer(FALSE);
-	gInventory.updateItem(item);
-	gInventory.notifyObservers();
+			item->updateServer(FALSE);
+			gInventory.updateItem(item);
+			gInventory.notifyObservers();
+		}
+	}
 }
 
 void create_gesture_cb(const LLUUID& inv_item)
 {
-	if (inv_item.isNull())
-		return;
-
-	LLGestureMgr::instance().activateGesture(inv_item);
+	if (!inv_item.isNull())
+	{
+		LLGestureMgr::instance().activateGesture(inv_item);
 	
-	LLViewerInventoryItem* item = gInventory.getItem(inv_item);
-	if (!item) return;
-
-	LLPermissions perm = item->getPermissions();
-	perm.setMaskEveryone(LLFloaterPerms::getEveryonePerms("Gestures"));
-	perm.setMaskGroup(LLFloaterPerms::getGroupPerms("Gestures"));
+		LLViewerInventoryItem* item = gInventory.getItem(inv_item);
+		if (item)
+		{
+			LLPermissions perm = item->getPermissions();
+			perm.setMaskEveryone(LLFloaterPerms::getEveryonePerms("Gestures"));
+			perm.setMaskGroup(LLFloaterPerms::getGroupPerms("Gestures"));
 
-	item->setPermissions(perm);
+			item->setPermissions(perm);
 
-	item->updateServer(FALSE);
-    gInventory.updateItem(item);
-    gInventory.notifyObservers();
+			item->updateServer(FALSE);
+			gInventory.updateItem(item);
+			gInventory.notifyObservers();
 
-	LLPreviewGesture* preview = LLPreviewGesture::show(inv_item,  LLUUID::null);
-	// Force to be entirely onscreen.
-	gFloaterView->adjustToFitScreen(preview, FALSE);
+			LLPreviewGesture* preview = LLPreviewGesture::show(inv_item,  LLUUID::null);
+			// Force to be entirely onscreen.
+			gFloaterView->adjustToFitScreen(preview, FALSE);
+		}
+	}
 }
 
 
 void create_notecard_cb(const LLUUID& inv_item)
 {
-	if (inv_item.isNull())
-		return;
-	
-	LLViewerInventoryItem* item = gInventory.getItem(inv_item);
-	if (!item) return;
-
-	LLPermissions perm = item->getPermissions();
-	perm.setMaskEveryone(LLFloaterPerms::getEveryonePerms("Notecards"));
-	perm.setMaskGroup(LLFloaterPerms::getGroupPerms("Notecards"));
+	if (!inv_item.isNull())
+		{
+		LLViewerInventoryItem* item = gInventory.getItem(inv_item);
+		if (item)
+		{
+			LLPermissions perm = item->getPermissions();
+			perm.setMaskEveryone(LLFloaterPerms::getEveryonePerms("Notecards"));
+			perm.setMaskGroup(LLFloaterPerms::getGroupPerms("Notecards"));
 
-	item->setPermissions(perm);
+			item->setPermissions(perm);
 
-	item->updateServer(FALSE);
-	gInventory.updateItem(item);
-	gInventory.notifyObservers();
+			item->updateServer(FALSE);
+			gInventory.updateItem(item);
+			gInventory.notifyObservers();
+		}
+	}
 }
 
 LLInventoryCallbackManager gInventoryCallbacks;
-- 
cgit v1.2.3


From 025e0b07ab716f2ab07f6a43bf19450fe08115c5 Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Sat, 11 Jan 2014 03:19:34 +0000
Subject: Correcting int to U32

---
 indra/llui/llkeywords.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'indra')

diff --git a/indra/llui/llkeywords.cpp b/indra/llui/llkeywords.cpp
index b7de4d5224..050573e699 100755
--- a/indra/llui/llkeywords.cpp
+++ b/indra/llui/llkeywords.cpp
@@ -136,7 +136,7 @@ std::string LLKeywords::getArguments(LLSD& arguments)
 
 	if (arguments.isArray())
 	{
-		int argsCount = arguments.size();
+		U32 argsCount = arguments.size();
 		LLSD::array_iterator arrayIt = arguments.beginArray();
 		for ( ; arrayIt != arguments.endArray(); ++arrayIt)
 		{
-- 
cgit v1.2.3


From 541ea58f44ef855994263458a520bdfb253d2620 Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Sat, 11 Jan 2014 04:41:56 +0000
Subject: Updated indenting of XML file to use a single tab per indent level.
 This also reduces the file size by over 200KB

---
 .../newview/app_settings/keywords_lsl_default.xml  | 36010 +++++++++----------
 1 file changed, 18005 insertions(+), 18005 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/app_settings/keywords_lsl_default.xml b/indra/newview/app_settings/keywords_lsl_default.xml
index f02a2136c0..12601a753f 100755
--- a/indra/newview/app_settings/keywords_lsl_default.xml
+++ b/indra/newview/app_settings/keywords_lsl_default.xml
@@ -1,5146 +1,5146 @@
 <?xml version="1.0" encoding="utf-8"?><?xml-model href="llsd-lsl-syntax.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
 <llsd>
-   <map>
-      <key>controls</key>
-      <map>
-         <key>default</key>
-         <map>
-            <key>tooltip</key>
-            <string>All scripts must have a default state, which is the first state entered when the script starts.\nIf another state is defined before the default state, the compiler will report a syntax error.</string>
-         </map>
-         <key>do</key>
-         <map>
-            <key>tooltip</key>
-            <string>do / while loop\ndo {\n...\n} while (&lt;condition&gt;);</string>
-         </map>
-         <key>else</key>
-         <map>
-            <key>tooltip</key>
-            <string>if / else block\nif (&lt;condition&gt;) {\n...\n[} else [if (&lt;condition&gt;) {\n...]]\n}</string>
-         </map>
-         <key>for</key>
-         <map>
-            <key>tooltip</key>
-            <string>for loop\nfor (&lt;initialiser&gt;; &lt;condition&gt;; &lt;post-iteration-statement&gt;)\n{ ...\n}</string>
-         </map>
-         <key>if</key>
-         <map>
-            <key>tooltip</key>
-            <string>if / else block\nif (&lt;condition&gt;) {\n...\n[} else [if (&lt;condition&gt;) {\n...]]\n}</string>
-         </map>
-         <key>jump</key>
-         <map>
-            <key>tooltip</key>
-            <string>jump statement\njump &lt;label&gt;</string>
-         </map>
-         <key>return</key>
-         <map>
-            <key>tooltip</key>
-            <string>Leave current event or function.\nreturn [&lt;variable&gt;];\nOptionally pass back a variable's value, from a function.</string>
-         </map>
-         <key>state</key>
-         <map>
-            <key>tooltip</key>
-            <string>state &lt;target&gt;\nIf the target state is not the same as the current one, change to the target state.</string>
-         </map>
-         <key>while</key>
-         <map>
-            <key>tooltip</key>
-            <string>while loop\nwhile (&lt;condition&gt;) {\n,,,\n}</string>
-         </map>
-      </map>
-      <key>types</key>
-      <map>
-         <key>float</key>
-         <map>
-            <key>tooltip</key>
-            <string>32 bit floating point value.\nThe range is 1.175494351E-38 to 3.402823466E+38.</string>
-         </map>
-         <key>integer</key>
-         <map>
-            <key>tooltip</key>
-            <string>32 bit integer value.\n−2,147,483,648 and +2,147,483,647 (that is 0x80000000 to 0x7FFFFFFF in hex).</string>
-         </map>
-         <key>key</key>
-         <map>
-            <key>tooltip</key>
-            <string>A 128 bit unique identifier (UUID).\nThe key is represented as hexidecimal characters (A-F and 0-9), grouped into sections (8,4,4,4,12 characters) and separated by hyphens (for a total of 36 characters). e.g. "A822FF2B-FF02-461D-B45D-DCD10A2DE0C2".</string>
-         </map>
-         <key>list</key>
-         <map>
-            <key>tooltip</key>
-            <string>A collection of other data types.\nLists are signified by square brackets surrounding their elements; the elements inside are separated by commas. e.g. [0, 1, 2, 3, 4] or ["Yes", "No", "Perhaps"].</string>
-         </map>
-         <key>quaternion</key>
-         <map>
-            <key>tooltip</key>
-            <string>The quaternion type is a left over from way back when LSL was created. It was later renamed to &lt;rotation&gt; to make it more user friendly, but it appears someone forgot to remove it ;-)</string>
-         </map>
-         <key>rotation</key>
-         <map>
-            <key>tooltip</key>
-            <string>The rotation type is one of several ways to represent an orientation in 3D.\nIt is a mathematical object called a quaternion. You can think of a quaternion as four numbers (x, y, z, w), three of which represent the direction an object is facing and a fourth that represents the object's banking left or right around that direction.</string>
-         </map>
-         <key>string</key>
-         <map>
-            <key>tooltip</key>
-            <string>Text data.\nThe editor accepts UTF-8 encoded text.</string>
-         </map>
-         <key>vector</key>
-         <map>
-            <key>tooltip</key>
-            <string>A vector is a data type that contains a set of three float values.\nVectors are used to represent colours (RGB), positions, and directions/velocities.</string>
-         </map>
-      </map>
-      <key>constants</key>
-      <map>
-         <key>ACTIVE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x2</integer>
-            <key>tooltip</key>
-            <string>Objects in world that are running a script or currently physically moving.</string>
-         </map>
-         <key>AGENT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x1</integer>
-            <key>tooltip</key>
-            <string>Objects in world that are agents.</string>
-         </map>
-         <key>AGENT_ALWAYS_RUN</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x1000</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>AGENT_ATTACHMENTS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x2</integer>
-            <key>tooltip</key>
-            <string>The agent has attachments.</string>
-         </map>
-         <key>AGENT_AUTOPILOT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x2000</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>AGENT_AWAY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x40</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>AGENT_BUSY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x800</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>AGENT_BY_LEGACY_NAME</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>AGENT_BY_USERNAME</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x10</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>AGENT_CROUCHING</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x400</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>AGENT_FLYING</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x1</integer>
-            <key>tooltip</key>
-            <string>The agent is flying.</string>
-         </map>
-         <key>AGENT_IN_AIR</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x100</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>AGENT_LIST_PARCEL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>Agents on the same parcel where the script is running.</string>
-         </map>
-         <key>AGENT_LIST_PARCEL_OWNER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>Agents on any parcel in the region where the parcel owner is the same as the owner of the parcel under the scripted object.</string>
-         </map>
-         <key>AGENT_LIST_REGION</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string>All agents in the region.</string>
-         </map>
-         <key>AGENT_MOUSELOOK</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x8</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>AGENT_ON_OBJECT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x20</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>AGENT_SCRIPTED</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x4</integer>
-            <key>tooltip</key>
-            <string>The agent has scripted attachments.</string>
-         </map>
-         <key>AGENT_SITTING</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x10</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>AGENT_TYPING</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x200</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>AGENT_WALKING</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x80</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>ALL_SIDES</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>-1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>ANIM_ON</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x1</integer>
-            <key>tooltip</key>
-            <string>Texture animation is on.</string>
-         </map>
-         <key>ATTACH_AVATAR_CENTER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>40</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's geometric centre.</string>
-         </map>
-         <key>ATTACH_BACK</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>9</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's back.</string>
-         </map>
-         <key>ATTACH_BELLY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>28</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's belly.</string>
-         </map>
-         <key>ATTACH_CHEST</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's chest.</string>
-         </map>
-         <key>ATTACH_CHIN</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>12</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's chin.</string>
-         </map>
-         <key>ATTACH_HEAD</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's head.</string>
-         </map>
-         <key>ATTACH_HUD_BOTTOM</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>37</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>ATTACH_HUD_BOTTOM_LEFT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>36</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>ATTACH_HUD_BOTTOM_RIGHT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>38</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>ATTACH_HUD_CENTER_1</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>35</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>ATTACH_HUD_CENTER_2</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>31</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>ATTACH_HUD_TOP_CENTER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>33</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>ATTACH_HUD_TOP_LEFT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>34</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>ATTACH_HUD_TOP_RIGHT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>32</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>ATTACH_LEAR</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>13</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's left ear.</string>
-         </map>
-         <key>ATTACH_LEFT_PEC</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>29</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's left pectoral.</string>
-         </map>
-         <key>ATTACH_LEYE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>15</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's left eye.</string>
-         </map>
-         <key>ATTACH_LFOOT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>7</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's left foot.</string>
-         </map>
-         <key>ATTACH_LHAND</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's left hand.</string>
-         </map>
-         <key>ATTACH_LHIP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>25</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's left hip.</string>
-         </map>
-         <key>ATTACH_LLARM</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>21</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's left lower arm.</string>
-         </map>
-         <key>ATTACH_LLLEG</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>27</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's lower left leg.</string>
-         </map>
-         <key>ATTACH_LPEC</key>
-         <map>
-            <key>deprecated</key>
-            <boolean>true</boolean>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>30</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's right pectoral. (Deprecated, use ATTACH_RIGHT_PEC)</string>
-         </map>
-         <key>ATTACH_LSHOULDER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's left shoulder.</string>
-         </map>
-         <key>ATTACH_LUARM</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>20</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's left upper arm.</string>
-         </map>
-         <key>ATTACH_LULEG</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>27</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's lower upper leg.</string>
-         </map>
-         <key>ATTACH_MOUTH</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>11</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's mouth.</string>
-         </map>
-         <key>ATTACH_NECK</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>39</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's neck.</string>
-         </map>
-         <key>ATTACH_NOSE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>17</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's nose.</string>
-         </map>
-         <key>ATTACH_PELVIS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>10</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's pelvis.</string>
-         </map>
-         <key>ATTACH_REAR</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>14</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's right ear.</string>
-         </map>
-         <key>ATTACH_REYE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>16</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's right eye.</string>
-         </map>
-         <key>ATTACH_RFOOT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>8</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's right foot.</string>
-         </map>
-         <key>ATTACH_RHAND</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>6</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's right hand.</string>
-         </map>
-         <key>ATTACH_RHIP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>22</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's right hip.</string>
-         </map>
-         <key>ATTACH_RIGHT_PEC</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>30</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's right pectoral.</string>
-         </map>
-         <key>ATTACH_RLARM</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>19</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's right lower arm.</string>
-         </map>
-         <key>ATTACH_RLLEG</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>24</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's right lower leg.</string>
-         </map>
-         <key>ATTACH_RPEC</key>
-         <map>
-            <key>deprecated</key>
-            <boolean>true</boolean>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>29</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's left pectoral. (deprecated, use ATTACH_LEFT_PEC)</string>
-         </map>
-         <key>ATTACH_RSHOULDER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's right shoulder.</string>
-         </map>
-         <key>ATTACH_RUARM</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>18</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's right upper arm.</string>
-         </map>
-         <key>ATTACH_RULEG</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>23</integer>
-            <key>tooltip</key>
-            <string>Attach to the avatar's right upper leg.</string>
-         </map>
-         <key>AVOID_CHARACTERS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>AVOID_DYNAMIC_OBSTACLES</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>AVOID_NONE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CAMERA_ACTIVE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>12</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CAMERA_BEHINDNESS_ANGLE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>8</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CAMERA_BEHINDNESS_LAG</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>9</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CAMERA_DISTANCE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>7</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CAMERA_FOCUS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>17</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CAMERA_FOCUS_LAG</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>6</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CAMERA_FOCUS_LOCKED</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>22</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CAMERA_FOCUS_OFFSET</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CAMERA_FOCUS_THRESHOLD</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>11</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CAMERA_PITCH</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CAMERA_POSITION</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>13</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CAMERA_POSITION_LAG</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>6</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CAMERA_POSITION_LOCKED</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>22</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CAMERA_POSITION_THRESHOLD</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>10</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CHANGED_ALLOWED_DROP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x40</integer>
-            <key>tooltip</key>
-            <string>The object inventory has changed because an item was added through the llAllowInventoryDrop interface.</string>
-         </map>
-         <key>CHANGED_COLOR</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x2</integer>
-            <key>tooltip</key>
-            <string>The object colour has changed.</string>
-         </map>
-         <key>CHANGED_INVENTORY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x1</integer>
-            <key>tooltip</key>
-            <string>The object inventory has changed.</string>
-         </map>
-         <key>CHANGED_LINK</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x20</integer>
-            <key>tooltip</key>
-            <string>The object has linked or its links were broken.</string>
-         </map>
-         <key>CHANGED_MEDIA</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2048</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CHANGED_OWNER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x80</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CHANGED_REGION</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x100</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CHANGED_REGION_START</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x400</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CHANGED_SCALE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x8</integer>
-            <key>tooltip</key>
-            <string>The object scale (size) has changed.</string>
-         </map>
-         <key>CHANGED_SHAPE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x4</integer>
-            <key>tooltip</key>
-            <string>The object base shape has changed, e.g., a box to a cylinder.</string>
-         </map>
-         <key>CHANGED_TELEPORT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x200</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CHANGED_TEXTURE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x10</integer>
-            <key>tooltip</key>
-            <string>The texture offset, scale rotation, or simply the object texture has changed.</string>
-         </map>
-         <key>CHARACTER_ACCOUNT_FOR_SKIPPED_FRAMES</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>14</integer>
-            <key>tooltip</key>
-            <string>If set to false, character will not attempt to catch up on lost time when pathfinding performance is low, potentially providing more reliable movement (albeit while potentially appearing to be more stuttery). Default is true to match pre-existing behavior.</string>
-         </map>
-         <key>CHARACTER_AVOIDANCE_MODE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string>Allows you to specify that a character should not try to avoid other characters, should not try to avoid dynamic obstacles (relatively fast moving objects and avatars), or both.</string>
-         </map>
-         <key>CHARACTER_CMD_JUMP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x01</integer>
-            <key>tooltip</key>
-            <string>Makes the character jump. Requires an additional parameter, the height to jump, between 0.1m and 2.0m. This must be provided as the first element of the llExecCharacterCmd option list.</string>
-         </map>
-         <key>CHARACTER_CMD_SMOOTH_STOP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CHARACTER_CMD_STOP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x00</integer>
-            <key>tooltip</key>
-            <string>Stops any current pathfinding operation.</string>
-         </map>
-         <key>CHARACTER_DESIRED_SPEED</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>Speed of pursuit in meters per second.</string>
-         </map>
-         <key>CHARACTER_DESIRED_TURN_SPEED</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>12</integer>
-            <key>tooltip</key>
-            <string>The character's maximum speed while turning about the Z axis. - Note that this is only loosely enforced.</string>
-         </map>
-         <key>CHARACTER_LENGTH</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string>Set collision capsule length - cannot be less than two times the radius.</string>
-         </map>
-         <key>CHARACTER_MAX_ACCEL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>8</integer>
-            <key>tooltip</key>
-            <string>The character's maximum acceleration rate.</string>
-         </map>
-         <key>CHARACTER_MAX_DECEL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>9</integer>
-            <key>tooltip</key>
-            <string>The character's maximum deceleration rate.</string>
-         </map>
-         <key>CHARACTER_MAX_SPEED</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>13</integer>
-            <key>tooltip</key>
-            <string>The character's maximum speed.</string>
-         </map>
-         <key>CHARACTER_MAX_TURN_RADIUS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>10</integer>
-            <key>tooltip</key>
-            <string>The character's turn radius when travelling at CHARACTER_MAX_TURN_SPEED.</string>
-         </map>
-         <key>CHARACTER_ORIENTATION</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string>Valid options are: VERTICAL, HORIZONTAL.</string>
-         </map>
-         <key>CHARACTER_RADIUS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>Set collision capsule radius.</string>
-         </map>
-         <key>CHARACTER_STAY_WITHIN_PARCEL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>15</integer>
-            <key>tooltip</key>
-            <string>Determines whether a character can leave its starting parcel.\nTakes a boolean parameter. If TRUE, the character cannot voluntarilly leave the parcel, but can return to it.</string>
-         </map>
-         <key>CHARACTER_TYPE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>6</integer>
-            <key>tooltip</key>
-            <string>Specifies which walk-ability coefficient will be used by this character.</string>
-         </map>
-         <key>CHARACTER_TYPE_A</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CHARACTER_TYPE_B</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CHARACTER_TYPE_C</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CHARACTER_TYPE_D</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CHARACTER_TYPE_NONE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>CLICK_ACTION_BUY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>When the prim is clicked, the buy dialog is opened.</string>
-         </map>
-         <key>CLICK_ACTION_NONE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string>Performs the default action: when the prim is clicked, touch events are triggered".</string>
-         </map>
-         <key>CLICK_ACTION_OPEN</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string>When the prim is clicked, the object inventory dialog is opened.</string>
-         </map>
-         <key>CLICK_ACTION_OPEN_MEDIA</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>6</integer>
-            <key>tooltip</key>
-            <string>When the prim is touched, the web media dialog is opened".</string>
-         </map>
-         <key>CLICK_ACTION_PAY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string>When the prim is clicked, the pay dialog is opened.</string>
-         </map>
-         <key>CLICK_ACTION_PLAY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string>When the prim is clicked, html-on-a-prim is enabled?</string>
-         </map>
-         <key>CLICK_ACTION_SIT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>When the prim is clicked, the avatar sits upon it.</string>
-         </map>
-         <key>CLICK_ACTION_TOUCH</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string>When the prim is clicked, touch events are triggered".</string>
-         </map>
-         <key>CONTENT_TYPE_ATOM</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string>"application/atom+xml"</string>
-         </map>
-         <key>CONTENT_TYPE_FORM</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>7</integer>
-            <key>tooltip</key>
-            <string>"application/x-www-form-urlencoded"</string>
-         </map>
-         <key>CONTENT_TYPE_HTML</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>"text/html", only valid for embedded browsers on content owned by the person viewing. Falls back to "text/plain" otherwise.</string>
-         </map>
-         <key>CONTENT_TYPE_JSON</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string>"application/json"</string>
-         </map>
-         <key>CONTENT_TYPE_LLSD</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>6</integer>
-            <key>tooltip</key>
-            <string>"application/llsd+xml"</string>
-         </map>
-         <key>CONTENT_TYPE_RSS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>8</integer>
-            <key>tooltip</key>
-            <string>"application/rss+xml"</string>
-         </map>
-         <key>CONTENT_TYPE_TEXT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string>"text/plain"</string>
-         </map>
-         <key>CONTENT_TYPE_XHTML</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string>"application/xhtml+xml"</string>
-         </map>
-         <key>CONTENT_TYPE_XML</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>"application/xml"</string>
-         </map>
-         <key>CONTROL_BACK</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x2</integer>
-            <key>tooltip</key>
-            <string>Test for the avatar move back control.</string>
-         </map>
-         <key>CONTROL_DOWN</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x20</integer>
-            <key>tooltip</key>
-            <string>Test for the avatar move down control.</string>
-         </map>
-         <key>CONTROL_FWD</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x1</integer>
-            <key>tooltip</key>
-            <string>Test for the avatar move forward control.</string>
-         </map>
-         <key>CONTROL_LBUTTON</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x10000000</integer>
-            <key>tooltip</key>
-            <string>Test for the avatar left button control.</string>
-         </map>
-         <key>CONTROL_LEFT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x4</integer>
-            <key>tooltip</key>
-            <string>Test for the avatar move left control.</string>
-         </map>
-         <key>CONTROL_ML_LBUTTON</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x40000000</integer>
-            <key>tooltip</key>
-            <string>Test for the avatar left button control while in mouse look.</string>
-         </map>
-         <key>CONTROL_RIGHT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x8</integer>
-            <key>tooltip</key>
-            <string>Test for the avatar move right control.</string>
-         </map>
-         <key>CONTROL_ROT_LEFT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x100</integer>
-            <key>tooltip</key>
-            <string>Test for the avatar rotate left control.</string>
-         </map>
-         <key>CONTROL_ROT_RIGHT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x200</integer>
-            <key>tooltip</key>
-            <string>Test for the avatar rotate right control.</string>
-         </map>
-         <key>CONTROL_UP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x10</integer>
-            <key>tooltip</key>
-            <string>Test for the avatar move up control.</string>
-         </map>
-         <key>DATA_BORN</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string>The date the agent was born, returned in ISO 8601 format of YYYY-MM-DD.</string>
-         </map>
-         <key>DATA_NAME</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>The name of the agent.</string>
-         </map>
-         <key>DATA_ONLINE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>TRUE for online, FALSE for offline.</string>
-         </map>
-         <key>DATA_PAYINFO</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>8</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>DATA_RATING</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string>Returns the agent ratings as a comma separated string of six integers. They are:
+	<map>
+		<key>controls</key>
+		<map>
+			<key>default</key>
+			<map>
+				<key>tooltip</key>
+				<string>All scripts must have a default state, which is the first state entered when the script starts.\nIf another state is defined before the default state, the compiler will report a syntax error.</string>
+			</map>
+			<key>do</key>
+			<map>
+				<key>tooltip</key>
+				<string>do / while loop\ndo {\n...\n} while (&lt;condition&gt;);</string>
+			</map>
+			<key>else</key>
+			<map>
+				<key>tooltip</key>
+				<string>if / else block\nif (&lt;condition&gt;) {\n...\n[} else [if (&lt;condition&gt;) {\n...]]\n}</string>
+			</map>
+			<key>for</key>
+			<map>
+				<key>tooltip</key>
+				<string>for loop\nfor (&lt;initialiser&gt;; &lt;condition&gt;; &lt;post-iteration-statement&gt;)\n{ ...\n}</string>
+			</map>
+			<key>if</key>
+			<map>
+				<key>tooltip</key>
+				<string>if / else block\nif (&lt;condition&gt;) {\n...\n[} else [if (&lt;condition&gt;) {\n...]]\n}</string>
+			</map>
+			<key>jump</key>
+			<map>
+				<key>tooltip</key>
+				<string>jump statement\njump &lt;label&gt;</string>
+			</map>
+			<key>return</key>
+			<map>
+				<key>tooltip</key>
+				<string>Leave current event or function.\nreturn [&lt;variable&gt;];\nOptionally pass back a variable's value, from a function.</string>
+			</map>
+			<key>state</key>
+			<map>
+				<key>tooltip</key>
+				<string>state &lt;target&gt;\nIf the target state is not the same as the current one, change to the target state.</string>
+			</map>
+			<key>while</key>
+			<map>
+				<key>tooltip</key>
+				<string>while loop\nwhile (&lt;condition&gt;) {\n,,,\n}</string>
+			</map>
+		</map>
+		<key>types</key>
+		<map>
+			<key>float</key>
+			<map>
+				<key>tooltip</key>
+				<string>32 bit floating point value.\nThe range is 1.175494351E-38 to 3.402823466E+38.</string>
+			</map>
+			<key>integer</key>
+			<map>
+				<key>tooltip</key>
+				<string>32 bit integer value.\n−2,147,483,648 and +2,147,483,647 (that is 0x80000000 to 0x7FFFFFFF in hex).</string>
+			</map>
+			<key>key</key>
+			<map>
+				<key>tooltip</key>
+				<string>A 128 bit unique identifier (UUID).\nThe key is represented as hexidecimal characters (A-F and 0-9), grouped into sections (8,4,4,4,12 characters) and separated by hyphens (for a total of 36 characters). e.g. "A822FF2B-FF02-461D-B45D-DCD10A2DE0C2".</string>
+			</map>
+			<key>list</key>
+			<map>
+				<key>tooltip</key>
+				<string>A collection of other data types.\nLists are signified by square brackets surrounding their elements; the elements inside are separated by commas. e.g. [0, 1, 2, 3, 4] or ["Yes", "No", "Perhaps"].</string>
+			</map>
+			<key>quaternion</key>
+			<map>
+				<key>tooltip</key>
+				<string>The quaternion type is a left over from way back when LSL was created. It was later renamed to &lt;rotation&gt; to make it more user friendly, but it appears someone forgot to remove it ;-)</string>
+			</map>
+			<key>rotation</key>
+			<map>
+				<key>tooltip</key>
+				<string>The rotation type is one of several ways to represent an orientation in 3D.\nIt is a mathematical object called a quaternion. You can think of a quaternion as four numbers (x, y, z, w), three of which represent the direction an object is facing and a fourth that represents the object's banking left or right around that direction.</string>
+			</map>
+			<key>string</key>
+			<map>
+				<key>tooltip</key>
+				<string>Text data.\nThe editor accepts UTF-8 encoded text.</string>
+			</map>
+			<key>vector</key>
+			<map>
+				<key>tooltip</key>
+				<string>A vector is a data type that contains a set of three float values.\nVectors are used to represent colours (RGB), positions, and directions/velocities.</string>
+			</map>
+		</map>
+		<key>constants</key>
+		<map>
+			<key>ACTIVE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x2</integer>
+				<key>tooltip</key>
+				<string>Objects in world that are running a script or currently physically moving.</string>
+			</map>
+			<key>AGENT</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x1</integer>
+				<key>tooltip</key>
+				<string>Objects in world that are agents.</string>
+			</map>
+			<key>AGENT_ALWAYS_RUN</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x1000</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>AGENT_ATTACHMENTS</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x2</integer>
+				<key>tooltip</key>
+				<string>The agent has attachments.</string>
+			</map>
+			<key>AGENT_AUTOPILOT</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x2000</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>AGENT_AWAY</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x40</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>AGENT_BUSY</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x800</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>AGENT_BY_LEGACY_NAME</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x1</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>AGENT_BY_USERNAME</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x10</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>AGENT_CROUCHING</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x400</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>AGENT_FLYING</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x1</integer>
+				<key>tooltip</key>
+				<string>The agent is flying.</string>
+			</map>
+			<key>AGENT_IN_AIR</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x100</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>AGENT_LIST_PARCEL</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>1</integer>
+				<key>tooltip</key>
+				<string>Agents on the same parcel where the script is running.</string>
+			</map>
+			<key>AGENT_LIST_PARCEL_OWNER</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>2</integer>
+				<key>tooltip</key>
+				<string>Agents on any parcel in the region where the parcel owner is the same as the owner of the parcel under the scripted object.</string>
+			</map>
+			<key>AGENT_LIST_REGION</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>4</integer>
+				<key>tooltip</key>
+				<string>All agents in the region.</string>
+			</map>
+			<key>AGENT_MOUSELOOK</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x8</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>AGENT_ON_OBJECT</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x20</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>AGENT_SCRIPTED</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x4</integer>
+				<key>tooltip</key>
+				<string>The agent has scripted attachments.</string>
+			</map>
+			<key>AGENT_SITTING</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x10</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>AGENT_TYPING</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x200</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>AGENT_WALKING</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x80</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>ALL_SIDES</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>-1</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>ANIM_ON</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x1</integer>
+				<key>tooltip</key>
+				<string>Texture animation is on.</string>
+			</map>
+			<key>ATTACH_AVATAR_CENTER</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>40</integer>
+				<key>tooltip</key>
+				<string>Attach to the avatar's geometric centre.</string>
+			</map>
+			<key>ATTACH_BACK</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>9</integer>
+				<key>tooltip</key>
+				<string>Attach to the avatar's back.</string>
+			</map>
+			<key>ATTACH_BELLY</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>28</integer>
+				<key>tooltip</key>
+				<string>Attach to the avatar's belly.</string>
+			</map>
+			<key>ATTACH_CHEST</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>1</integer>
+				<key>tooltip</key>
+				<string>Attach to the avatar's chest.</string>
+			</map>
+			<key>ATTACH_CHIN</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>12</integer>
+				<key>tooltip</key>
+				<string>Attach to the avatar's chin.</string>
+			</map>
+			<key>ATTACH_HEAD</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>2</integer>
+				<key>tooltip</key>
+				<string>Attach to the avatar's head.</string>
+			</map>
+			<key>ATTACH_HUD_BOTTOM</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>37</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>ATTACH_HUD_BOTTOM_LEFT</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>36</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>ATTACH_HUD_BOTTOM_RIGHT</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>38</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>ATTACH_HUD_CENTER_1</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>35</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>ATTACH_HUD_CENTER_2</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>31</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>ATTACH_HUD_TOP_CENTER</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>33</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>ATTACH_HUD_TOP_LEFT</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>34</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>ATTACH_HUD_TOP_RIGHT</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>32</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>ATTACH_LEAR</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>13</integer>
+				<key>tooltip</key>
+				<string>Attach to the avatar's left ear.</string>
+			</map>
+			<key>ATTACH_LEFT_PEC</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>29</integer>
+				<key>tooltip</key>
+				<string>Attach to the avatar's left pectoral.</string>
+			</map>
+			<key>ATTACH_LEYE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>15</integer>
+				<key>tooltip</key>
+				<string>Attach to the avatar's left eye.</string>
+			</map>
+			<key>ATTACH_LFOOT</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>7</integer>
+				<key>tooltip</key>
+				<string>Attach to the avatar's left foot.</string>
+			</map>
+			<key>ATTACH_LHAND</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>5</integer>
+				<key>tooltip</key>
+				<string>Attach to the avatar's left hand.</string>
+			</map>
+			<key>ATTACH_LHIP</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>25</integer>
+				<key>tooltip</key>
+				<string>Attach to the avatar's left hip.</string>
+			</map>
+			<key>ATTACH_LLARM</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>21</integer>
+				<key>tooltip</key>
+				<string>Attach to the avatar's left lower arm.</string>
+			</map>
+			<key>ATTACH_LLLEG</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>27</integer>
+				<key>tooltip</key>
+				<string>Attach to the avatar's lower left leg.</string>
+			</map>
+			<key>ATTACH_LPEC</key>
+			<map>
+				<key>deprecated</key>
+				<boolean>true</boolean>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>30</integer>
+				<key>tooltip</key>
+				<string>Attach to the avatar's right pectoral. (Deprecated, use ATTACH_RIGHT_PEC)</string>
+			</map>
+			<key>ATTACH_LSHOULDER</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>3</integer>
+				<key>tooltip</key>
+				<string>Attach to the avatar's left shoulder.</string>
+			</map>
+			<key>ATTACH_LUARM</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>20</integer>
+				<key>tooltip</key>
+				<string>Attach to the avatar's left upper arm.</string>
+			</map>
+			<key>ATTACH_LULEG</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>27</integer>
+				<key>tooltip</key>
+				<string>Attach to the avatar's lower upper leg.</string>
+			</map>
+			<key>ATTACH_MOUTH</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>11</integer>
+				<key>tooltip</key>
+				<string>Attach to the avatar's mouth.</string>
+			</map>
+			<key>ATTACH_NECK</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>39</integer>
+				<key>tooltip</key>
+				<string>Attach to the avatar's neck.</string>
+			</map>
+			<key>ATTACH_NOSE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>17</integer>
+				<key>tooltip</key>
+				<string>Attach to the avatar's nose.</string>
+			</map>
+			<key>ATTACH_PELVIS</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>10</integer>
+				<key>tooltip</key>
+				<string>Attach to the avatar's pelvis.</string>
+			</map>
+			<key>ATTACH_REAR</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>14</integer>
+				<key>tooltip</key>
+				<string>Attach to the avatar's right ear.</string>
+			</map>
+			<key>ATTACH_REYE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>16</integer>
+				<key>tooltip</key>
+				<string>Attach to the avatar's right eye.</string>
+			</map>
+			<key>ATTACH_RFOOT</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>8</integer>
+				<key>tooltip</key>
+				<string>Attach to the avatar's right foot.</string>
+			</map>
+			<key>ATTACH_RHAND</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>6</integer>
+				<key>tooltip</key>
+				<string>Attach to the avatar's right hand.</string>
+			</map>
+			<key>ATTACH_RHIP</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>22</integer>
+				<key>tooltip</key>
+				<string>Attach to the avatar's right hip.</string>
+			</map>
+			<key>ATTACH_RIGHT_PEC</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>30</integer>
+				<key>tooltip</key>
+				<string>Attach to the avatar's right pectoral.</string>
+			</map>
+			<key>ATTACH_RLARM</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>19</integer>
+				<key>tooltip</key>
+				<string>Attach to the avatar's right lower arm.</string>
+			</map>
+			<key>ATTACH_RLLEG</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>24</integer>
+				<key>tooltip</key>
+				<string>Attach to the avatar's right lower leg.</string>
+			</map>
+			<key>ATTACH_RPEC</key>
+			<map>
+				<key>deprecated</key>
+				<boolean>true</boolean>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>29</integer>
+				<key>tooltip</key>
+				<string>Attach to the avatar's left pectoral. (deprecated, use ATTACH_LEFT_PEC)</string>
+			</map>
+			<key>ATTACH_RSHOULDER</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>4</integer>
+				<key>tooltip</key>
+				<string>Attach to the avatar's right shoulder.</string>
+			</map>
+			<key>ATTACH_RUARM</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>18</integer>
+				<key>tooltip</key>
+				<string>Attach to the avatar's right upper arm.</string>
+			</map>
+			<key>ATTACH_RULEG</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>23</integer>
+				<key>tooltip</key>
+				<string>Attach to the avatar's right upper leg.</string>
+			</map>
+			<key>AVOID_CHARACTERS</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>1</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>AVOID_DYNAMIC_OBSTACLES</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>2</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>AVOID_NONE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>CAMERA_ACTIVE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>12</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>CAMERA_BEHINDNESS_ANGLE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>8</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>CAMERA_BEHINDNESS_LAG</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>9</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>CAMERA_DISTANCE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>7</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>CAMERA_FOCUS</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>17</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>CAMERA_FOCUS_LAG</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>6</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>CAMERA_FOCUS_LOCKED</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>22</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>CAMERA_FOCUS_OFFSET</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>1</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>CAMERA_FOCUS_THRESHOLD</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>11</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>CAMERA_PITCH</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>CAMERA_POSITION</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>13</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>CAMERA_POSITION_LAG</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>6</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>CAMERA_POSITION_LOCKED</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>22</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>CAMERA_POSITION_THRESHOLD</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>10</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>CHANGED_ALLOWED_DROP</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x40</integer>
+				<key>tooltip</key>
+				<string>The object inventory has changed because an item was added through the llAllowInventoryDrop interface.</string>
+			</map>
+			<key>CHANGED_COLOR</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x2</integer>
+				<key>tooltip</key>
+				<string>The object colour has changed.</string>
+			</map>
+			<key>CHANGED_INVENTORY</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x1</integer>
+				<key>tooltip</key>
+				<string>The object inventory has changed.</string>
+			</map>
+			<key>CHANGED_LINK</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x20</integer>
+				<key>tooltip</key>
+				<string>The object has linked or its links were broken.</string>
+			</map>
+			<key>CHANGED_MEDIA</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>2048</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>CHANGED_OWNER</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x80</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>CHANGED_REGION</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x100</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>CHANGED_REGION_START</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x400</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>CHANGED_SCALE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x8</integer>
+				<key>tooltip</key>
+				<string>The object scale (size) has changed.</string>
+			</map>
+			<key>CHANGED_SHAPE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x4</integer>
+				<key>tooltip</key>
+				<string>The object base shape has changed, e.g., a box to a cylinder.</string>
+			</map>
+			<key>CHANGED_TELEPORT</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x200</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>CHANGED_TEXTURE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x10</integer>
+				<key>tooltip</key>
+				<string>The texture offset, scale rotation, or simply the object texture has changed.</string>
+			</map>
+			<key>CHARACTER_ACCOUNT_FOR_SKIPPED_FRAMES</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>14</integer>
+				<key>tooltip</key>
+				<string>If set to false, character will not attempt to catch up on lost time when pathfinding performance is low, potentially providing more reliable movement (albeit while potentially appearing to be more stuttery). Default is true to match pre-existing behavior.</string>
+			</map>
+			<key>CHARACTER_AVOIDANCE_MODE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>5</integer>
+				<key>tooltip</key>
+				<string>Allows you to specify that a character should not try to avoid other characters, should not try to avoid dynamic obstacles (relatively fast moving objects and avatars), or both.</string>
+			</map>
+			<key>CHARACTER_CMD_JUMP</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x01</integer>
+				<key>tooltip</key>
+				<string>Makes the character jump. Requires an additional parameter, the height to jump, between 0.1m and 2.0m. This must be provided as the first element of the llExecCharacterCmd option list.</string>
+			</map>
+			<key>CHARACTER_CMD_SMOOTH_STOP</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>2</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>CHARACTER_CMD_STOP</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x00</integer>
+				<key>tooltip</key>
+				<string>Stops any current pathfinding operation.</string>
+			</map>
+			<key>CHARACTER_DESIRED_SPEED</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>1</integer>
+				<key>tooltip</key>
+				<string>Speed of pursuit in meters per second.</string>
+			</map>
+			<key>CHARACTER_DESIRED_TURN_SPEED</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>12</integer>
+				<key>tooltip</key>
+				<string>The character's maximum speed while turning about the Z axis. - Note that this is only loosely enforced.</string>
+			</map>
+			<key>CHARACTER_LENGTH</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>3</integer>
+				<key>tooltip</key>
+				<string>Set collision capsule length - cannot be less than two times the radius.</string>
+			</map>
+			<key>CHARACTER_MAX_ACCEL</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>8</integer>
+				<key>tooltip</key>
+				<string>The character's maximum acceleration rate.</string>
+			</map>
+			<key>CHARACTER_MAX_DECEL</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>9</integer>
+				<key>tooltip</key>
+				<string>The character's maximum deceleration rate.</string>
+			</map>
+			<key>CHARACTER_MAX_SPEED</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>13</integer>
+				<key>tooltip</key>
+				<string>The character's maximum speed.</string>
+			</map>
+			<key>CHARACTER_MAX_TURN_RADIUS</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>10</integer>
+				<key>tooltip</key>
+				<string>The character's turn radius when travelling at CHARACTER_MAX_TURN_SPEED.</string>
+			</map>
+			<key>CHARACTER_ORIENTATION</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>4</integer>
+				<key>tooltip</key>
+				<string>Valid options are: VERTICAL, HORIZONTAL.</string>
+			</map>
+			<key>CHARACTER_RADIUS</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>2</integer>
+				<key>tooltip</key>
+				<string>Set collision capsule radius.</string>
+			</map>
+			<key>CHARACTER_STAY_WITHIN_PARCEL</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>15</integer>
+				<key>tooltip</key>
+				<string>Determines whether a character can leave its starting parcel.\nTakes a boolean parameter. If TRUE, the character cannot voluntarilly leave the parcel, but can return to it.</string>
+			</map>
+			<key>CHARACTER_TYPE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>6</integer>
+				<key>tooltip</key>
+				<string>Specifies which walk-ability coefficient will be used by this character.</string>
+			</map>
+			<key>CHARACTER_TYPE_A</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>CHARACTER_TYPE_B</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>1</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>CHARACTER_TYPE_C</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>2</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>CHARACTER_TYPE_D</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>3</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>CHARACTER_TYPE_NONE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>4</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>CLICK_ACTION_BUY</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>2</integer>
+				<key>tooltip</key>
+				<string>When the prim is clicked, the buy dialog is opened.</string>
+			</map>
+			<key>CLICK_ACTION_NONE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0</integer>
+				<key>tooltip</key>
+				<string>Performs the default action: when the prim is clicked, touch events are triggered".</string>
+			</map>
+			<key>CLICK_ACTION_OPEN</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>4</integer>
+				<key>tooltip</key>
+				<string>When the prim is clicked, the object inventory dialog is opened.</string>
+			</map>
+			<key>CLICK_ACTION_OPEN_MEDIA</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>6</integer>
+				<key>tooltip</key>
+				<string>When the prim is touched, the web media dialog is opened".</string>
+			</map>
+			<key>CLICK_ACTION_PAY</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>3</integer>
+				<key>tooltip</key>
+				<string>When the prim is clicked, the pay dialog is opened.</string>
+			</map>
+			<key>CLICK_ACTION_PLAY</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>5</integer>
+				<key>tooltip</key>
+				<string>When the prim is clicked, html-on-a-prim is enabled?</string>
+			</map>
+			<key>CLICK_ACTION_SIT</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>1</integer>
+				<key>tooltip</key>
+				<string>When the prim is clicked, the avatar sits upon it.</string>
+			</map>
+			<key>CLICK_ACTION_TOUCH</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0</integer>
+				<key>tooltip</key>
+				<string>When the prim is clicked, touch events are triggered".</string>
+			</map>
+			<key>CONTENT_TYPE_ATOM</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>4</integer>
+				<key>tooltip</key>
+				<string>"application/atom+xml"</string>
+			</map>
+			<key>CONTENT_TYPE_FORM</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>7</integer>
+				<key>tooltip</key>
+				<string>"application/x-www-form-urlencoded"</string>
+			</map>
+			<key>CONTENT_TYPE_HTML</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>1</integer>
+				<key>tooltip</key>
+				<string>"text/html", only valid for embedded browsers on content owned by the person viewing. Falls back to "text/plain" otherwise.</string>
+			</map>
+			<key>CONTENT_TYPE_JSON</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>5</integer>
+				<key>tooltip</key>
+				<string>"application/json"</string>
+			</map>
+			<key>CONTENT_TYPE_LLSD</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>6</integer>
+				<key>tooltip</key>
+				<string>"application/llsd+xml"</string>
+			</map>
+			<key>CONTENT_TYPE_RSS</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>8</integer>
+				<key>tooltip</key>
+				<string>"application/rss+xml"</string>
+			</map>
+			<key>CONTENT_TYPE_TEXT</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0</integer>
+				<key>tooltip</key>
+				<string>"text/plain"</string>
+			</map>
+			<key>CONTENT_TYPE_XHTML</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>3</integer>
+				<key>tooltip</key>
+				<string>"application/xhtml+xml"</string>
+			</map>
+			<key>CONTENT_TYPE_XML</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>2</integer>
+				<key>tooltip</key>
+				<string>"application/xml"</string>
+			</map>
+			<key>CONTROL_BACK</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x2</integer>
+				<key>tooltip</key>
+				<string>Test for the avatar move back control.</string>
+			</map>
+			<key>CONTROL_DOWN</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x20</integer>
+				<key>tooltip</key>
+				<string>Test for the avatar move down control.</string>
+			</map>
+			<key>CONTROL_FWD</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x1</integer>
+				<key>tooltip</key>
+				<string>Test for the avatar move forward control.</string>
+			</map>
+			<key>CONTROL_LBUTTON</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x10000000</integer>
+				<key>tooltip</key>
+				<string>Test for the avatar left button control.</string>
+			</map>
+			<key>CONTROL_LEFT</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x4</integer>
+				<key>tooltip</key>
+				<string>Test for the avatar move left control.</string>
+			</map>
+			<key>CONTROL_ML_LBUTTON</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x40000000</integer>
+				<key>tooltip</key>
+				<string>Test for the avatar left button control while in mouse look.</string>
+			</map>
+			<key>CONTROL_RIGHT</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x8</integer>
+				<key>tooltip</key>
+				<string>Test for the avatar move right control.</string>
+			</map>
+			<key>CONTROL_ROT_LEFT</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x100</integer>
+				<key>tooltip</key>
+				<string>Test for the avatar rotate left control.</string>
+			</map>
+			<key>CONTROL_ROT_RIGHT</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x200</integer>
+				<key>tooltip</key>
+				<string>Test for the avatar rotate right control.</string>
+			</map>
+			<key>CONTROL_UP</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x10</integer>
+				<key>tooltip</key>
+				<string>Test for the avatar move up control.</string>
+			</map>
+			<key>DATA_BORN</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>3</integer>
+				<key>tooltip</key>
+				<string>The date the agent was born, returned in ISO 8601 format of YYYY-MM-DD.</string>
+			</map>
+			<key>DATA_NAME</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>2</integer>
+				<key>tooltip</key>
+				<string>The name of the agent.</string>
+			</map>
+			<key>DATA_ONLINE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>1</integer>
+				<key>tooltip</key>
+				<string>TRUE for online, FALSE for offline.</string>
+			</map>
+			<key>DATA_PAYINFO</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>8</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>DATA_RATING</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>4</integer>
+				<key>tooltip</key>
+				<string>Returns the agent ratings as a comma separated string of six integers. They are:
 			1) Positive rated behaviour
 			2) Negative rated behaviour
 			3) Positive rated appearance
 			4) Negative rated appearance
 			5) Positive rated building
 			6) Negative rated building</string>
-         </map>
-         <key>DATA_SIM_POS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>DATA_SIM_RATING</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>7</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>DATA_SIM_STATUS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>6</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>DEBUG_CHANNEL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2147483647</integer>
-            <key>tooltip</key>
-            <string>DEBUG_CHANNEL is an integer constant that, when passed to llSay, llWhisper, or llShout as a channel parameter, will print text to the Script Warning/Error Window.</string>
-         </map>
-         <key>DEG_TO_RAD</key>
-         <map>
-            <key>type</key>
-            <string>float</string>
-            <key>value</key>
-            <real>0.01745329</real>
-            <key>tooltip</key>
-            <string>0.01745329 - Number of radians per degree.
+			</map>
+			<key>DATA_SIM_POS</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>5</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>DATA_SIM_RATING</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>7</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>DATA_SIM_STATUS</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>6</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>DEBUG_CHANNEL</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>2147483647</integer>
+				<key>tooltip</key>
+				<string>DEBUG_CHANNEL is an integer constant that, when passed to llSay, llWhisper, or llShout as a channel parameter, will print text to the Script Warning/Error Window.</string>
+			</map>
+			<key>DEG_TO_RAD</key>
+			<map>
+				<key>type</key>
+				<string>float</string>
+				<key>value</key>
+				<real>0.01745329</real>
+				<key>tooltip</key>
+				<string>0.01745329 - Number of radians per degree.
 			You can use this to convert degrees to radians by multiplying the degrees by this number.</string>
-         </map>
-         <key>DENSITY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>Used with llSetPhysicsMaterial to enable the density value. Must be between 1.0 and 22587.0 (in Kg/m^3 -- see if you can figure out what 22587 represents)</string>
-         </map>
-         <key>EOF</key>
-         <map>
-            <key>type</key>
-            <string>string</string>
-            <key>value</key>
-            <string>\n\n\n</string>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>ERR_GENERIC</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>-1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>ERR_MALFORMED_PARAMS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>-3</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>ERR_PARCEL_PERMISSIONS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>-2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>ERR_RUNTIME_PERMISSIONS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>-4</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>ERR_THROTTLED</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>-5</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>ESTATE_ACCESS_ALLOWED_AGENT_ADD</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string>Add the agent to this estate's Allowed Residents list.</string>
-         </map>
-         <key>ESTATE_ACCESS_ALLOWED_AGENT_REMOVE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>8</integer>
-            <key>tooltip</key>
-            <string>Remove the agent from this estate's Allowed Residents list.</string>
-         </map>
-         <key>ESTATE_ACCESS_ALLOWED_GROUP_ADD</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>16</integer>
-            <key>tooltip</key>
-            <string>Add the group to this estate's Allowed groups list.</string>
-         </map>
-         <key>ESTATE_ACCESS_ALLOWED_GROUP_REMOVE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>32</integer>
-            <key>tooltip</key>
-            <string>Remove the group from this estate's Allowed groups list.</string>
-         </map>
-         <key>ESTATE_ACCESS_BANNED_AGENT_ADD</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>64</integer>
-            <key>tooltip</key>
-            <string>Add the agent to this estate's Banned residents list.</string>
-         </map>
-         <key>ESTATE_ACCESS_BANNED_AGENT_REMOVE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>128</integer>
-            <key>tooltip</key>
-            <string>Remove the agent from this estate's Banned residents list.</string>
-         </map>
-         <key>FALSE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string>An integer constant for boolean comparisons. Has the value '0'.</string>
-         </map>
-         <key>FORCE_DIRECT_PATH</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>Makes character navigate in a straight line toward position. May be set to TRUE or FALSE.</string>
-         </map>
-         <key>FRICTION</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>Used with llSetPhysicsMaterial to enable the friction value. Must be between 0.0 and 255.0</string>
-         </map>
-         <key>GRAVITY_MULTIPLIER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>8</integer>
-            <key>tooltip</key>
-            <string>Used with llSetPhysicsMaterial to enable the gravity multiplier value. Must be between -1.0 and +28.0</string>
-         </map>
-         <key>HORIZONTAL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>HTTP_BODY_MAXLENGTH</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>HTTP_BODY_TRUNCATED</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>HTTP_CUSTOM_HEADER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string>Add an extra custom HTTP header to the request. The first string is the name of the parameter to change, e.g. "Pragma", and the second string is the value, e.g. "no-cache". Up to 8 custom headers may be configured per request. Note that certain headers, such as the default headers, are blocked for security reasons.</string>
-         </map>
-         <key>HTTP_METHOD</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>HTTP_MIMETYPE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>HTTP_PRAGMA_NO_CACHE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>6</integer>
-            <key>tooltip</key>
-            <string>Allows enabling/disbling of the "Pragma: no-cache" header.\nUsage: [HTTP_PRAGMA_NO_CACHE, integer SendHeader]. When SendHeader is TRUE, the "Pragma: no-cache" header is sent by the script. This matches the default behavior. When SendHeader is FALSE, no "Pragma" header is sent by the script.</string>
-         </map>
-         <key>HTTP_VERBOSE_THROTTLE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>HTTP_VERIFY_CERT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>INVENTORY_ALL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>-1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>INVENTORY_ANIMATION</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>20</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>INVENTORY_BODYPART</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>13</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>INVENTORY_CLOTHING</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>INVENTORY_GESTURE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>21</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>INVENTORY_LANDMARK</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>INVENTORY_NONE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>-1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>INVENTORY_NOTECARD</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>7</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>INVENTORY_OBJECT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>6</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>INVENTORY_SCRIPT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>10</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>INVENTORY_SOUND</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>INVENTORY_TEXTURE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>JSON_APPEND</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>-1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>JSON_ARRAY</key>
-         <map>
-            <key>type</key>
-            <string>string</string>
-            <key>value</key>
-            <string>U+FDD2</string>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>JSON_DELETE</key>
-         <map>
-            <key>type</key>
-            <string>string</string>
-            <key>value</key>
-            <string>U+FDD8</string>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>JSON_FALSE</key>
-         <map>
-            <key>type</key>
-            <string>string</string>
-            <key>value</key>
-            <string>U+FDD7</string>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>JSON_INVALID</key>
-         <map>
-            <key>type</key>
-            <string>string</string>
-            <key>value</key>
-            <string>U+FDD0</string>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>JSON_NULL</key>
-         <map>
-            <key>type</key>
-            <string>string</string>
-            <key>value</key>
-            <string>U+FDD5</string>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>JSON_NUMBER</key>
-         <map>
-            <key>type</key>
-            <string>string</string>
-            <key>value</key>
-            <string>U+FDD3</string>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>JSON_OBJECT</key>
-         <map>
-            <key>type</key>
-            <string>string</string>
-            <key>value</key>
-            <string>U+FDD1</string>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>JSON_STRING</key>
-         <map>
-            <key>type</key>
-            <string>string</string>
-            <key>value</key>
-            <string>U+FDD4</string>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>JSON_TRUE</key>
-         <map>
-            <key>type</key>
-            <string>string</string>
-            <key>value</key>
-            <string>U+FDD6</string>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>KFM_CMD_PAUSE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>For use with KFM_COMMAND.</string>
-         </map>
-         <key>KFM_CMD_PLAY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string>For use with KFM_COMMAND.</string>
-         </map>
-         <key>KFM_CMD_STOP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>For use with KFM_COMMAND.</string>
-         </map>
-         <key>KFM_COMMAND</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>KFM_DATA</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>KFM_FORWARD</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string>For use with KFM_MODE.</string>
-         </map>
-         <key>KFM_LOOP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>For use with KFM_MODE.</string>
-         </map>
-         <key>KFM_MODE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>KFM_PING_PONG</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>For use with KFM_MODE.</string>
-         </map>
-         <key>KFM_REVERSE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>For use with KFM_MODE.</string>
-         </map>
-         <key>KFM_ROTATION</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>For use with KFM_DATA.</string>
-         </map>
-         <key>KFM_TRANSLATION</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>For use with KFM_DATA.</string>
-         </map>
-         <key>LAND_LARGE_BRUSH</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string>Use a large brush size.</string>
-         </map>
-         <key>LAND_LEVEL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string>Action to level the land.</string>
-         </map>
-         <key>LAND_LOWER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>Action to lower the land.</string>
-         </map>
-         <key>LAND_MEDIUM_BRUSH</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>Use a medium brush size.</string>
-         </map>
-         <key>LAND_NOISE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>LAND_RAISE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>Action to raise the land.</string>
-         </map>
-         <key>LAND_REVERT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>LAND_SMALL_BRUSH</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>Use a small brush size.</string>
-         </map>
-         <key>LAND_SMOOTH</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>LINK_ALL_CHILDREN</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>-3</integer>
-            <key>tooltip</key>
-            <string>This targets every object except the root in the linked set.</string>
-         </map>
-         <key>LINK_ALL_OTHERS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>-2</integer>
-            <key>tooltip</key>
-            <string>This targets every object in the linked set except the object with the script.</string>
-         </map>
-         <key>LINK_ROOT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string>This targets the root of the linked set.</string>
-         </map>
-         <key>LINK_SET</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>-1</integer>
-            <key>tooltip</key>
-            <string>This targets every object in the linked set.</string>
-         </map>
-         <key>LINK_THIS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>-4</integer>
-            <key>tooltip</key>
-            <string>The link number of the prim containing the script.</string>
-         </map>
-         <key>LIST_STAT_GEOMETRIC_MEAN</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>9</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>LIST_STAT_MAX</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>LIST_STAT_MEAN</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>LIST_STAT_MEDIAN</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>LIST_STAT_MIN</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>LIST_STAT_NUM_COUNT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>8</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>LIST_STAT_RANGE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>LIST_STAT_STD_DEV</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>LIST_STAT_SUM</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>6</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>LIST_STAT_SUM_SQUARES</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>7</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>LOOP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x2</integer>
-            <key>tooltip</key>
-            <string>Loop the texture animation.</string>
-         </map>
-         <key>MASK_BASE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>MASK_EVERYONE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>MASK_GROUP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>MASK_NEXT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>MASK_OWNER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>NULL_KEY</key>
-         <map>
-            <key>type</key>
-            <string>key</string>
-            <key>value</key>
-            <uuid>00000000-0000-0000-0000-000000000000</uuid>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>OBJECT_ATTACHED_POINT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>19</integer>
-            <key>tooltip</key>
-            <string>Gets the attachment point to which the object is attached.\nReturns 0 if the object is not an attachment (or is an avatar, etc).</string>
-         </map>
-         <key>OBJECT_CHARACTER_TIME</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>17</integer>
-            <key>tooltip</key>
-            <string>Units in seconds</string>
-         </map>
-         <key>OBJECT_CREATOR</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>8</integer>
-            <key>tooltip</key>
-            <string>Gets the object's creator key. If id is an avatar, a NULL_KEY is returned.</string>
-         </map>
-         <key>OBJECT_DESC</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>Gets the object's description. If id is an avatar, an empty string is returned.</string>
-         </map>
-         <key>OBJECT_GROUP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>7</integer>
-            <key>tooltip</key>
-            <string>Gets the prims's group key. If id is an avatar, a NULL_KEY is returned.</string>
-         </map>
-         <key>OBJECT_NAME</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>Gets the object's name.</string>
-         </map>
-         <key>OBJECT_OWNER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>6</integer>
-            <key>tooltip</key>
-            <string>Gets an object's owner's key. If id is group owned, a NULL_KEY is returned.</string>
-         </map>
-         <key>OBJECT_PATHFINDING_TYPE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>20</integer>
-            <key>tooltip</key>
-            <string>Returns the pathfinding setting of any object in the region. It returns an integer matching one of the OPT_* constants.</string>
-         </map>
-         <key>OBJECT_PHANTOM</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>22</integer>
-            <key>tooltip</key>
-            <string>Returns boolean, detailing if phantom is enabled or disabled on the object.\nIf id is an avatar or attachment, 0 is returned.</string>
-         </map>
-         <key>OBJECT_PHYSICS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>21</integer>
-            <key>tooltip</key>
-            <string>Returns boolean, detailing if physics is enabled or disabled on the object.\nIf id is an avatar or attachment, 0 is returned.</string>
-         </map>
-         <key>OBJECT_PHYSICS_COST</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>16</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>OBJECT_POS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string>Gets the object's position in region coordinates.</string>
-         </map>
-         <key>OBJECT_PRIM_EQUIVALENCE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>13</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>OBJECT_RETURN_PARCEL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>OBJECT_RETURN_PARCEL_OWNER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>OBJECT_RETURN_REGION</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>OBJECT_ROOT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>18</integer>
-            <key>tooltip</key>
-            <string>Gets the id of the root prim of the object requested.\nIf id is an avatar, return the id of the root prim of the linkset the avatar is sitting on (or the avatar's own id if the avatar is not sitting on an object within the region).</string>
-         </map>
-         <key>OBJECT_ROT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string>Gets the object's rotation.</string>
-         </map>
-         <key>OBJECT_RUNNING_SCRIPT_COUNT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>9</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>OBJECT_SCRIPT_MEMORY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>11</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>OBJECT_SCRIPT_TIME</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>12</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>OBJECT_SERVER_COST</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>14</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>OBJECT_STREAMING_COST</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>15</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>OBJECT_TEMP_ON_REZ</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>23</integer>
-            <key>tooltip</key>
-            <string>Returns boolean, detailing if temporary is enabled or disabled on the object.</string>
-         </map>
-         <key>OBJECT_TOTAL_SCRIPT_COUNT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>10</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>OBJECT_UNKNOWN_DETAIL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>-1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>OBJECT_VELOCITY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string>Gets the object's velocity.</string>
-         </map>
-         <key>OPT_AVATAR</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>Returned for avatars.</string>
-         </map>
-         <key>OPT_CHARACTER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>Returned for pathfinding characters.</string>
-         </map>
-         <key>OPT_EXCLUSION_VOLUME</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>6</integer>
-            <key>tooltip</key>
-            <string>Returned for exclusion volumes.</string>
-         </map>
-         <key>OPT_LEGACY_LINKSET</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string>Returned for movable obstacles, movable phantoms, physical, and volumedetect objects.</string>
-         </map>
-         <key>OPT_MATERIAL_VOLUME</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string>Returned for material volumes.</string>
-         </map>
-         <key>OPT_OTHER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>-1</integer>
-            <key>tooltip</key>
-            <string>Returned for attachments, Linden trees, and grass.</string>
-         </map>
-         <key>OPT_STATIC_OBSTACLE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string>Returned for static obstacles.</string>
-         </map>
-         <key>OPT_WALKABLE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string>Returned for walkable objects.</string>
-         </map>
-         <key>PARCEL_COUNT_GROUP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_COUNT_OTHER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_COUNT_OWNER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_COUNT_SELECTED</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_COUNT_TEMP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_COUNT_TOTAL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_DETAILS_AREA</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string>The parcel's area, in square meters. (5 chars.).</string>
-         </map>
-         <key>PARCEL_DETAILS_DESC</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>The description of the parcel. (127 chars).</string>
-         </map>
-         <key>PARCEL_DETAILS_GROUP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string>The parcel group's key. (36 chars.).</string>
-         </map>
-         <key>PARCEL_DETAILS_ID</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string>The parcel's key. (36 chars.).</string>
-         </map>
-         <key>PARCEL_DETAILS_NAME</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string>The name of the parcel. (63 chars.).</string>
-         </map>
-         <key>PARCEL_DETAILS_OWNER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>The parcel owner's key. (36 chars.).</string>
-         </map>
-         <key>PARCEL_DETAILS_SEE_AVATARS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>6</integer>
-            <key>tooltip</key>
-            <string>The parcel's avatar visibility setting. (1 char.).</string>
-         </map>
-         <key>PARCEL_FLAG_ALLOW_ALL_OBJECT_ENTRY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x08000000</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_FLAG_ALLOW_CREATE_GROUP_OBJECTS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x4000000</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_FLAG_ALLOW_CREATE_OBJECTS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x40</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_FLAG_ALLOW_DAMAGE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x20</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_FLAG_ALLOW_FLY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_FLAG_ALLOW_GROUP_OBJECT_ENTRY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x10000000</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_FLAG_ALLOW_GROUP_SCRIPTS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x2000000</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_FLAG_ALLOW_LANDMARK</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x8</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_FLAG_ALLOW_SCRIPTS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_FLAG_ALLOW_TERRAFORM</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x10</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_FLAG_LOCAL_SOUND_ONLY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x8000</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_FLAG_RESTRICT_PUSHOBJECT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x200000</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_FLAG_USE_ACCESS_GROUP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x100</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_FLAG_USE_ACCESS_LIST</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x200</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_FLAG_USE_BAN_LIST</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x400</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_FLAG_USE_LAND_PASS_LIST</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x800</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_MEDIA_COMMAND_AGENT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>7</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_MEDIA_COMMAND_AUTO_ALIGN</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>9</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_MEDIA_COMMAND_DESC</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>12</integer>
-            <key>tooltip</key>
-            <string>Use this to get or set the parcel media description.</string>
-         </map>
-         <key>PARCEL_MEDIA_COMMAND_LOOP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_MEDIA_COMMAND_LOOP_SET</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>13</integer>
-            <key>tooltip</key>
-            <string>Used to get or set the parcel's media looping variable.</string>
-         </map>
-         <key>PARCEL_MEDIA_COMMAND_PAUSE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_MEDIA_COMMAND_PLAY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_MEDIA_COMMAND_SIZE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>11</integer>
-            <key>tooltip</key>
-            <string>Use this to get or set the parcel media pixel resolution.</string>
-         </map>
-         <key>PARCEL_MEDIA_COMMAND_STOP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_MEDIA_COMMAND_TEXTURE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_MEDIA_COMMAND_TIME</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>6</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_MEDIA_COMMAND_TYPE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>10</integer>
-            <key>tooltip</key>
-            <string>Use this to get or set the parcel media MIME type (e.g. "text/html").</string>
-         </map>
-         <key>PARCEL_MEDIA_COMMAND_UNLOAD</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>8</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PARCEL_MEDIA_COMMAND_URL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PASSIVE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x4</integer>
-            <key>tooltip</key>
-            <string>Static in-world objects.</string>
-         </map>
-         <key>PATROL_PAUSE_AT_WAYPOINTS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PAY_DEFAULT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>-2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PAY_HIDE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>-1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PAYMENT_INFO_ON_FILE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PAYMENT_INFO_USED</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PERM_ALL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x7FFFFFFF</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PERM_COPY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x8000</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PERM_MODIFY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x4000</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PERM_MOVE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x80000</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PERM_TRANSFER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x2000</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PERMISSION_ATTACH</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x20</integer>
-            <key>tooltip</key>
-            <string>If this permission is enabled, the object can successfully call llAttachToAvatar to attach to the given avatar.</string>
-         </map>
-         <key>PERMISSION_CHANGE_JOINTS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x100</integer>
-            <key>tooltip</key>
-            <string>(not yet implemented)</string>
-         </map>
-         <key>PERMISSION_CHANGE_LINKS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x80</integer>
-            <key>tooltip</key>
-            <string>If this permission is enabled, the object can successfully call llCreateLink, llBreakLink, and llBreakAllLinks to change links to other objects.</string>
-         </map>
-         <key>PERMISSION_CHANGE_PERMISSIONS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x200</integer>
-            <key>tooltip</key>
-            <string>(not yet implemented)</string>
-         </map>
-         <key>PERMISSION_CONTROL_CAMERA</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x800</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PERMISSION_DEBIT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x2</integer>
-            <key>tooltip</key>
-            <string>If this permission is enabled, the object can successfully call llGiveMoney or llTransferLindenDollars to debit the owners account.</string>
-         </map>
-         <key>PERMISSION_OVERRIDE_ANIMATIONS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x8000</integer>
-            <key>tooltip</key>
-            <string>Permission to override default animations.</string>
-         </map>
-         <key>PERMISSION_RELEASE_OWNERSHIP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x40</integer>
-            <key>tooltip</key>
-            <string>(not yet implemented)</string>
-         </map>
-         <key>PERMISSION_REMAP_CONTROLS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x8</integer>
-            <key>tooltip</key>
-            <string>(not yet implemented)</string>
-         </map>
-         <key>PERMISSION_RETURN_OBJECTS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>65536</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PERMISSION_TAKE_CONTROLS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x4</integer>
-            <key>tooltip</key>
-            <string>If this permission enabled, the object can successfully call the llTakeControls libray call.</string>
-         </map>
-         <key>PERMISSION_TELEPORT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x1000</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PERMISSION_TRACK_CAMERA</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x400</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PERMISSION_TRIGGER_ANIMATION</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x10</integer>
-            <key>tooltip</key>
-            <string>If this permission is enabled, the object can successfully call llStartAnimation for the avatar that owns this.</string>
-         </map>
-         <key>PI</key>
-         <map>
-            <key>type</key>
-            <string>float</string>
-            <key>value</key>
-            <real>3.14159265</real>
-            <key>tooltip</key>
-            <string>3.14159265 - The number of radians in a semi-circle.</string>
-         </map>
-         <key>PI_BY_TWO</key>
-         <map>
-            <key>type</key>
-            <string>float</string>
-            <key>value</key>
-            <real>1.57079633</real>
-            <key>tooltip</key>
-            <string>1.57079633 - The number of radians in a quarter circle.</string>
-         </map>
-         <key>PING_PONG</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x8</integer>
-            <key>tooltip</key>
-            <string>Play animation going forwards, then backwards.</string>
-         </map>
-         <key>PRIM_BUMP_BARK</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_BUMP_BLOBS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>12</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_BUMP_BRICKS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_BUMP_BRIGHT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_BUMP_CHECKER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>6</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_BUMP_CONCRETE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>7</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_BUMP_DARK</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_BUMP_DISKS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>10</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_BUMP_GRAVEL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>11</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_BUMP_LARGETILE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>14</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_BUMP_NONE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_BUMP_SHINY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>19</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_BUMP_SIDING</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>13</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_BUMP_STONE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>9</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_BUMP_STUCCO</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>15</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_BUMP_SUCTION</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>16</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_BUMP_TILE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>8</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_BUMP_WEAVE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>17</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_BUMP_WOOD</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_CAST_SHADOWS</key>
-         <map>
-            <key>deprecated</key>
-            <boolean>true</boolean>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>24</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_COLOR</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>18</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_DESC</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>28</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_FLEXIBLE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>21</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_FULLBRIGHT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>20</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_GLOW</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>25</integer>
-            <key>tooltip</key>
-            <string>PRIM_GLOW is used to get or set the glow status of the face.</string>
-         </map>
-         <key>PRIM_HOLE_CIRCLE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x10</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_HOLE_DEFAULT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x00</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_HOLE_SQUARE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x20</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_HOLE_TRIANGLE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x30</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_LINK_TARGET</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>34</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_MATERIAL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_MATERIAL_FLESH</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_MATERIAL_GLASS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_MATERIAL_LIGHT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>7</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_MATERIAL_METAL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_MATERIAL_PLASTIC</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_MATERIAL_RUBBER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>6</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_MATERIAL_STONE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_MATERIAL_WOOD</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_MEDIA_ALT_IMAGE_ENABLE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string>Boolean. Gets/Sets the default image state (the image that the user sees before a piece of media is active) for the chosen face. The default image is specified by Second Life's server for that media type.</string>
-         </map>
-         <key>PRIM_MEDIA_AUTO_LOOP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string>Boolean. Gets/Sets whether auto-looping is enabled.</string>
-         </map>
-         <key>PRIM_MEDIA_AUTO_PLAY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string>Boolean. Gets/Sets whether the media auto-plays when a Resident can view it.</string>
-         </map>
-         <key>PRIM_MEDIA_AUTO_SCALE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>6</integer>
-            <key>tooltip</key>
-            <string>Boolean. Gets/Sets whether auto-scaling is enabled. Auto-scaling forces the media to the full size of the texture.</string>
-         </map>
-         <key>PRIM_MEDIA_AUTO_ZOOM</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>7</integer>
-            <key>tooltip</key>
-            <string>Boolean. Gets/Sets whether clicking the media triggers auto-zoom and auto-focus on the media.</string>
-         </map>
-         <key>PRIM_MEDIA_CONTROLS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>Integer. Gets/Sets the style of controls. Can be either PRIM_MEDIA_CONTROLS_STANDARD or PRIM_MEDIA_CONTROLS_MINI.</string>
-         </map>
-         <key>PRIM_MEDIA_CONTROLS_MINI</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>Mini web navigation controls; does not include an address bar.</string>
-         </map>
-         <key>PRIM_MEDIA_CONTROLS_STANDARD</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string>Standard web navigation controls.</string>
-         </map>
-         <key>PRIM_MEDIA_CURRENT_URL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>String. Gets/Sets the current url displayed on the chosen face. Changing this URL causes navigation. 1024 characters Maximum.</string>
-         </map>
-         <key>PRIM_MEDIA_FIRST_CLICK_INTERACT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>8</integer>
-            <key>tooltip</key>
-            <string>Boolean. Gets/Sets whether the first click interaction is enabled.</string>
-         </map>
-         <key>PRIM_MEDIA_HEIGHT_PIXELS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>10</integer>
-            <key>tooltip</key>
-            <string>Integer. Gets/Sets the height of the media in pixels.</string>
-         </map>
-         <key>PRIM_MEDIA_HOME_URL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string>String. Gets/Sets the home URL for the chosen face. 1024 characters maximum.</string>
-         </map>
-         <key>PRIM_MEDIA_PERM_ANYONE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_MEDIA_PERM_GROUP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_MEDIA_PERM_NONE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_MEDIA_PERM_OWNER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_MEDIA_PERMS_CONTROL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>14</integer>
-            <key>tooltip</key>
-            <string>Integer. Gets/Sets the permissions mask that control who can see the media control bar above the object:: PRIM_MEDIA_PERM_ANYONE, PRIM_MEDIA_PERM_GROUP, PRIM_MEDIA_PERM_NONE, PRIM_MEDIA_PERM_OWNER</string>
-         </map>
-         <key>PRIM_MEDIA_PERMS_INTERACT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>13</integer>
-            <key>tooltip</key>
-            <string>Integer. Gets/Sets the permissions mask that control who can interact with the object: PRIM_MEDIA_PERM_ANYONE, PRIM_MEDIA_PERM_GROUP, PRIM_MEDIA_PERM_NONE, PRIM_MEDIA_PERM_OWNER</string>
-         </map>
-         <key>PRIM_MEDIA_WHITELIST</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>12</integer>
-            <key>tooltip</key>
-            <string>String. Gets/Sets the white-list as a string of escaped, comma-separated URLs. This string can hold up to 64 URLs or 1024 characters, whichever comes first.</string>
-         </map>
-         <key>PRIM_MEDIA_WHITELIST_ENABLE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>11</integer>
-            <key>tooltip</key>
-            <string>Boolean. Gets/Sets whether navigation is restricted to URLs in PRIM_MEDIA_WHITELIST.</string>
-         </map>
-         <key>PRIM_MEDIA_WIDTH_PIXELS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>9</integer>
-            <key>tooltip</key>
-            <string>Integer. Gets/Sets the width of the media in pixels.</string>
-         </map>
-         <key>PRIM_NAME</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>27</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_OMEGA</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>32</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_PHANTOM</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_PHYSICS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_PHYSICS_SHAPE_CONVEX</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>Use the convex hull of the prim shape for physics (this is the default for mesh objects).</string>
-         </map>
-         <key>PRIM_PHYSICS_SHAPE_NONE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>Ignore this prim in the physics shape. NB: This cannot be applied to the root prim.</string>
-         </map>
-         <key>PRIM_PHYSICS_SHAPE_PRIM</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string>Use the normal prim shape for physics (this is the default for all non-mesh objects).</string>
-         </map>
-         <key>PRIM_PHYSICS_SHAPE_TYPE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>30</integer>
-            <key>tooltip</key>
-            <string>Allows you to set the physics shape type of a prim via lsl. Permitted values are:
+			</map>
+			<key>DENSITY</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>1</integer>
+				<key>tooltip</key>
+				<string>Used with llSetPhysicsMaterial to enable the density value. Must be between 1.0 and 22587.0 (in Kg/m^3 -- see if you can figure out what 22587 represents)</string>
+			</map>
+			<key>EOF</key>
+			<map>
+				<key>type</key>
+				<string>string</string>
+				<key>value</key>
+				<string>\n\n\n</string>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>ERR_GENERIC</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>-1</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>ERR_MALFORMED_PARAMS</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>-3</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>ERR_PARCEL_PERMISSIONS</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>-2</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>ERR_RUNTIME_PERMISSIONS</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>-4</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>ERR_THROTTLED</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>-5</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>ESTATE_ACCESS_ALLOWED_AGENT_ADD</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>4</integer>
+				<key>tooltip</key>
+				<string>Add the agent to this estate's Allowed Residents list.</string>
+			</map>
+			<key>ESTATE_ACCESS_ALLOWED_AGENT_REMOVE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>8</integer>
+				<key>tooltip</key>
+				<string>Remove the agent from this estate's Allowed Residents list.</string>
+			</map>
+			<key>ESTATE_ACCESS_ALLOWED_GROUP_ADD</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>16</integer>
+				<key>tooltip</key>
+				<string>Add the group to this estate's Allowed groups list.</string>
+			</map>
+			<key>ESTATE_ACCESS_ALLOWED_GROUP_REMOVE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>32</integer>
+				<key>tooltip</key>
+				<string>Remove the group from this estate's Allowed groups list.</string>
+			</map>
+			<key>ESTATE_ACCESS_BANNED_AGENT_ADD</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>64</integer>
+				<key>tooltip</key>
+				<string>Add the agent to this estate's Banned residents list.</string>
+			</map>
+			<key>ESTATE_ACCESS_BANNED_AGENT_REMOVE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>128</integer>
+				<key>tooltip</key>
+				<string>Remove the agent from this estate's Banned residents list.</string>
+			</map>
+			<key>FALSE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0</integer>
+				<key>tooltip</key>
+				<string>An integer constant for boolean comparisons. Has the value '0'.</string>
+			</map>
+			<key>FORCE_DIRECT_PATH</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>1</integer>
+				<key>tooltip</key>
+				<string>Makes character navigate in a straight line toward position. May be set to TRUE or FALSE.</string>
+			</map>
+			<key>FRICTION</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>2</integer>
+				<key>tooltip</key>
+				<string>Used with llSetPhysicsMaterial to enable the friction value. Must be between 0.0 and 255.0</string>
+			</map>
+			<key>GRAVITY_MULTIPLIER</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>8</integer>
+				<key>tooltip</key>
+				<string>Used with llSetPhysicsMaterial to enable the gravity multiplier value. Must be between -1.0 and +28.0</string>
+			</map>
+			<key>HORIZONTAL</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>1</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>HTTP_BODY_MAXLENGTH</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>2</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>HTTP_BODY_TRUNCATED</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>HTTP_CUSTOM_HEADER</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>5</integer>
+				<key>tooltip</key>
+				<string>Add an extra custom HTTP header to the request. The first string is the name of the parameter to change, e.g. "Pragma", and the second string is the value, e.g. "no-cache". Up to 8 custom headers may be configured per request. Note that certain headers, such as the default headers, are blocked for security reasons.</string>
+			</map>
+			<key>HTTP_METHOD</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>HTTP_MIMETYPE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>1</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>HTTP_PRAGMA_NO_CACHE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>6</integer>
+				<key>tooltip</key>
+				<string>Allows enabling/disbling of the "Pragma: no-cache" header.\nUsage: [HTTP_PRAGMA_NO_CACHE, integer SendHeader]. When SendHeader is TRUE, the "Pragma: no-cache" header is sent by the script. This matches the default behavior. When SendHeader is FALSE, no "Pragma" header is sent by the script.</string>
+			</map>
+			<key>HTTP_VERBOSE_THROTTLE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>4</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>HTTP_VERIFY_CERT</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>3</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>INVENTORY_ALL</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>-1</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>INVENTORY_ANIMATION</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>20</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>INVENTORY_BODYPART</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>13</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>INVENTORY_CLOTHING</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>5</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>INVENTORY_GESTURE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>21</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>INVENTORY_LANDMARK</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>3</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>INVENTORY_NONE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>-1</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>INVENTORY_NOTECARD</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>7</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>INVENTORY_OBJECT</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>6</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>INVENTORY_SCRIPT</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>10</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>INVENTORY_SOUND</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>1</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>INVENTORY_TEXTURE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>JSON_APPEND</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>-1</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>JSON_ARRAY</key>
+			<map>
+				<key>type</key>
+				<string>string</string>
+				<key>value</key>
+				<string>U+FDD2</string>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>JSON_DELETE</key>
+			<map>
+				<key>type</key>
+				<string>string</string>
+				<key>value</key>
+				<string>U+FDD8</string>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>JSON_FALSE</key>
+			<map>
+				<key>type</key>
+				<string>string</string>
+				<key>value</key>
+				<string>U+FDD7</string>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>JSON_INVALID</key>
+			<map>
+				<key>type</key>
+				<string>string</string>
+				<key>value</key>
+				<string>U+FDD0</string>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>JSON_NULL</key>
+			<map>
+				<key>type</key>
+				<string>string</string>
+				<key>value</key>
+				<string>U+FDD5</string>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>JSON_NUMBER</key>
+			<map>
+				<key>type</key>
+				<string>string</string>
+				<key>value</key>
+				<string>U+FDD3</string>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>JSON_OBJECT</key>
+			<map>
+				<key>type</key>
+				<string>string</string>
+				<key>value</key>
+				<string>U+FDD1</string>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>JSON_STRING</key>
+			<map>
+				<key>type</key>
+				<string>string</string>
+				<key>value</key>
+				<string>U+FDD4</string>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>JSON_TRUE</key>
+			<map>
+				<key>type</key>
+				<string>string</string>
+				<key>value</key>
+				<string>U+FDD6</string>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>KFM_CMD_PAUSE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>2</integer>
+				<key>tooltip</key>
+				<string>For use with KFM_COMMAND.</string>
+			</map>
+			<key>KFM_CMD_PLAY</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0</integer>
+				<key>tooltip</key>
+				<string>For use with KFM_COMMAND.</string>
+			</map>
+			<key>KFM_CMD_STOP</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>1</integer>
+				<key>tooltip</key>
+				<string>For use with KFM_COMMAND.</string>
+			</map>
+			<key>KFM_COMMAND</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>KFM_DATA</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>2</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>KFM_FORWARD</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0</integer>
+				<key>tooltip</key>
+				<string>For use with KFM_MODE.</string>
+			</map>
+			<key>KFM_LOOP</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>1</integer>
+				<key>tooltip</key>
+				<string>For use with KFM_MODE.</string>
+			</map>
+			<key>KFM_MODE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>1</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>KFM_PING_PONG</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>2</integer>
+				<key>tooltip</key>
+				<string>For use with KFM_MODE.</string>
+			</map>
+			<key>KFM_REVERSE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>2</integer>
+				<key>tooltip</key>
+				<string>For use with KFM_MODE.</string>
+			</map>
+			<key>KFM_ROTATION</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>1</integer>
+				<key>tooltip</key>
+				<string>For use with KFM_DATA.</string>
+			</map>
+			<key>KFM_TRANSLATION</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>2</integer>
+				<key>tooltip</key>
+				<string>For use with KFM_DATA.</string>
+			</map>
+			<key>LAND_LARGE_BRUSH</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>3</integer>
+				<key>tooltip</key>
+				<string>Use a large brush size.</string>
+			</map>
+			<key>LAND_LEVEL</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0</integer>
+				<key>tooltip</key>
+				<string>Action to level the land.</string>
+			</map>
+			<key>LAND_LOWER</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>2</integer>
+				<key>tooltip</key>
+				<string>Action to lower the land.</string>
+			</map>
+			<key>LAND_MEDIUM_BRUSH</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>2</integer>
+				<key>tooltip</key>
+				<string>Use a medium brush size.</string>
+			</map>
+			<key>LAND_NOISE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>4</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>LAND_RAISE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>1</integer>
+				<key>tooltip</key>
+				<string>Action to raise the land.</string>
+			</map>
+			<key>LAND_REVERT</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>5</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>LAND_SMALL_BRUSH</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>1</integer>
+				<key>tooltip</key>
+				<string>Use a small brush size.</string>
+			</map>
+			<key>LAND_SMOOTH</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>3</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>LINK_ALL_CHILDREN</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>-3</integer>
+				<key>tooltip</key>
+				<string>This targets every object except the root in the linked set.</string>
+			</map>
+			<key>LINK_ALL_OTHERS</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>-2</integer>
+				<key>tooltip</key>
+				<string>This targets every object in the linked set except the object with the script.</string>
+			</map>
+			<key>LINK_ROOT</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0</integer>
+				<key>tooltip</key>
+				<string>This targets the root of the linked set.</string>
+			</map>
+			<key>LINK_SET</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>-1</integer>
+				<key>tooltip</key>
+				<string>This targets every object in the linked set.</string>
+			</map>
+			<key>LINK_THIS</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>-4</integer>
+				<key>tooltip</key>
+				<string>The link number of the prim containing the script.</string>
+			</map>
+			<key>LIST_STAT_GEOMETRIC_MEAN</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>9</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>LIST_STAT_MAX</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>2</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>LIST_STAT_MEAN</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>3</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>LIST_STAT_MEDIAN</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>4</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>LIST_STAT_MIN</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>1</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>LIST_STAT_NUM_COUNT</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>8</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>LIST_STAT_RANGE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>LIST_STAT_STD_DEV</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>5</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>LIST_STAT_SUM</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>6</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>LIST_STAT_SUM_SQUARES</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>7</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>LOOP</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x2</integer>
+				<key>tooltip</key>
+				<string>Loop the texture animation.</string>
+			</map>
+			<key>MASK_BASE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>MASK_EVERYONE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>3</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>MASK_GROUP</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>2</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>MASK_NEXT</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>4</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>MASK_OWNER</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>1</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>NULL_KEY</key>
+			<map>
+				<key>type</key>
+				<string>key</string>
+				<key>value</key>
+				<uuid>00000000-0000-0000-0000-000000000000</uuid>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>OBJECT_ATTACHED_POINT</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>19</integer>
+				<key>tooltip</key>
+				<string>Gets the attachment point to which the object is attached.\nReturns 0 if the object is not an attachment (or is an avatar, etc).</string>
+			</map>
+			<key>OBJECT_CHARACTER_TIME</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>17</integer>
+				<key>tooltip</key>
+				<string>Units in seconds</string>
+			</map>
+			<key>OBJECT_CREATOR</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>8</integer>
+				<key>tooltip</key>
+				<string>Gets the object's creator key. If id is an avatar, a NULL_KEY is returned.</string>
+			</map>
+			<key>OBJECT_DESC</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>2</integer>
+				<key>tooltip</key>
+				<string>Gets the object's description. If id is an avatar, an empty string is returned.</string>
+			</map>
+			<key>OBJECT_GROUP</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>7</integer>
+				<key>tooltip</key>
+				<string>Gets the prims's group key. If id is an avatar, a NULL_KEY is returned.</string>
+			</map>
+			<key>OBJECT_NAME</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>1</integer>
+				<key>tooltip</key>
+				<string>Gets the object's name.</string>
+			</map>
+			<key>OBJECT_OWNER</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>6</integer>
+				<key>tooltip</key>
+				<string>Gets an object's owner's key. If id is group owned, a NULL_KEY is returned.</string>
+			</map>
+			<key>OBJECT_PATHFINDING_TYPE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>20</integer>
+				<key>tooltip</key>
+				<string>Returns the pathfinding setting of any object in the region. It returns an integer matching one of the OPT_* constants.</string>
+			</map>
+			<key>OBJECT_PHANTOM</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>22</integer>
+				<key>tooltip</key>
+				<string>Returns boolean, detailing if phantom is enabled or disabled on the object.\nIf id is an avatar or attachment, 0 is returned.</string>
+			</map>
+			<key>OBJECT_PHYSICS</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>21</integer>
+				<key>tooltip</key>
+				<string>Returns boolean, detailing if physics is enabled or disabled on the object.\nIf id is an avatar or attachment, 0 is returned.</string>
+			</map>
+			<key>OBJECT_PHYSICS_COST</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>16</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>OBJECT_POS</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>3</integer>
+				<key>tooltip</key>
+				<string>Gets the object's position in region coordinates.</string>
+			</map>
+			<key>OBJECT_PRIM_EQUIVALENCE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>13</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>OBJECT_RETURN_PARCEL</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>1</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>OBJECT_RETURN_PARCEL_OWNER</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>2</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>OBJECT_RETURN_REGION</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>4</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>OBJECT_ROOT</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>18</integer>
+				<key>tooltip</key>
+				<string>Gets the id of the root prim of the object requested.\nIf id is an avatar, return the id of the root prim of the linkset the avatar is sitting on (or the avatar's own id if the avatar is not sitting on an object within the region).</string>
+			</map>
+			<key>OBJECT_ROT</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>4</integer>
+				<key>tooltip</key>
+				<string>Gets the object's rotation.</string>
+			</map>
+			<key>OBJECT_RUNNING_SCRIPT_COUNT</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>9</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>OBJECT_SCRIPT_MEMORY</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>11</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>OBJECT_SCRIPT_TIME</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>12</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>OBJECT_SERVER_COST</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>14</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>OBJECT_STREAMING_COST</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>15</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>OBJECT_TEMP_ON_REZ</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>23</integer>
+				<key>tooltip</key>
+				<string>Returns boolean, detailing if temporary is enabled or disabled on the object.</string>
+			</map>
+			<key>OBJECT_TOTAL_SCRIPT_COUNT</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>10</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>OBJECT_UNKNOWN_DETAIL</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>-1</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>OBJECT_VELOCITY</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>5</integer>
+				<key>tooltip</key>
+				<string>Gets the object's velocity.</string>
+			</map>
+			<key>OPT_AVATAR</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>1</integer>
+				<key>tooltip</key>
+				<string>Returned for avatars.</string>
+			</map>
+			<key>OPT_CHARACTER</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>2</integer>
+				<key>tooltip</key>
+				<string>Returned for pathfinding characters.</string>
+			</map>
+			<key>OPT_EXCLUSION_VOLUME</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>6</integer>
+				<key>tooltip</key>
+				<string>Returned for exclusion volumes.</string>
+			</map>
+			<key>OPT_LEGACY_LINKSET</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0</integer>
+				<key>tooltip</key>
+				<string>Returned for movable obstacles, movable phantoms, physical, and volumedetect objects.</string>
+			</map>
+			<key>OPT_MATERIAL_VOLUME</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>5</integer>
+				<key>tooltip</key>
+				<string>Returned for material volumes.</string>
+			</map>
+			<key>OPT_OTHER</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>-1</integer>
+				<key>tooltip</key>
+				<string>Returned for attachments, Linden trees, and grass.</string>
+			</map>
+			<key>OPT_STATIC_OBSTACLE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>4</integer>
+				<key>tooltip</key>
+				<string>Returned for static obstacles.</string>
+			</map>
+			<key>OPT_WALKABLE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>3</integer>
+				<key>tooltip</key>
+				<string>Returned for walkable objects.</string>
+			</map>
+			<key>PARCEL_COUNT_GROUP</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>2</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PARCEL_COUNT_OTHER</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>3</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PARCEL_COUNT_OWNER</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>1</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PARCEL_COUNT_SELECTED</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>4</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PARCEL_COUNT_TEMP</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>5</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PARCEL_COUNT_TOTAL</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PARCEL_DETAILS_AREA</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>4</integer>
+				<key>tooltip</key>
+				<string>The parcel's area, in square meters. (5 chars.).</string>
+			</map>
+			<key>PARCEL_DETAILS_DESC</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>1</integer>
+				<key>tooltip</key>
+				<string>The description of the parcel. (127 chars).</string>
+			</map>
+			<key>PARCEL_DETAILS_GROUP</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>3</integer>
+				<key>tooltip</key>
+				<string>The parcel group's key. (36 chars.).</string>
+			</map>
+			<key>PARCEL_DETAILS_ID</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>5</integer>
+				<key>tooltip</key>
+				<string>The parcel's key. (36 chars.).</string>
+			</map>
+			<key>PARCEL_DETAILS_NAME</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0</integer>
+				<key>tooltip</key>
+				<string>The name of the parcel. (63 chars.).</string>
+			</map>
+			<key>PARCEL_DETAILS_OWNER</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>2</integer>
+				<key>tooltip</key>
+				<string>The parcel owner's key. (36 chars.).</string>
+			</map>
+			<key>PARCEL_DETAILS_SEE_AVATARS</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>6</integer>
+				<key>tooltip</key>
+				<string>The parcel's avatar visibility setting. (1 char.).</string>
+			</map>
+			<key>PARCEL_FLAG_ALLOW_ALL_OBJECT_ENTRY</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x08000000</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PARCEL_FLAG_ALLOW_CREATE_GROUP_OBJECTS</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x4000000</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PARCEL_FLAG_ALLOW_CREATE_OBJECTS</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x40</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PARCEL_FLAG_ALLOW_DAMAGE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x20</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PARCEL_FLAG_ALLOW_FLY</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x1</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PARCEL_FLAG_ALLOW_GROUP_OBJECT_ENTRY</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x10000000</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PARCEL_FLAG_ALLOW_GROUP_SCRIPTS</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x2000000</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PARCEL_FLAG_ALLOW_LANDMARK</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x8</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PARCEL_FLAG_ALLOW_SCRIPTS</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x2</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PARCEL_FLAG_ALLOW_TERRAFORM</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x10</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PARCEL_FLAG_LOCAL_SOUND_ONLY</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x8000</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PARCEL_FLAG_RESTRICT_PUSHOBJECT</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x200000</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PARCEL_FLAG_USE_ACCESS_GROUP</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x100</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PARCEL_FLAG_USE_ACCESS_LIST</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x200</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PARCEL_FLAG_USE_BAN_LIST</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x400</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PARCEL_FLAG_USE_LAND_PASS_LIST</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x800</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PARCEL_MEDIA_COMMAND_AGENT</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>7</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PARCEL_MEDIA_COMMAND_AUTO_ALIGN</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>9</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PARCEL_MEDIA_COMMAND_DESC</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>12</integer>
+				<key>tooltip</key>
+				<string>Use this to get or set the parcel media description.</string>
+			</map>
+			<key>PARCEL_MEDIA_COMMAND_LOOP</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>3</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PARCEL_MEDIA_COMMAND_LOOP_SET</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>13</integer>
+				<key>tooltip</key>
+				<string>Used to get or set the parcel's media looping variable.</string>
+			</map>
+			<key>PARCEL_MEDIA_COMMAND_PAUSE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>1</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PARCEL_MEDIA_COMMAND_PLAY</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>2</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PARCEL_MEDIA_COMMAND_SIZE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>11</integer>
+				<key>tooltip</key>
+				<string>Use this to get or set the parcel media pixel resolution.</string>
+			</map>
+			<key>PARCEL_MEDIA_COMMAND_STOP</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PARCEL_MEDIA_COMMAND_TEXTURE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>4</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PARCEL_MEDIA_COMMAND_TIME</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>6</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PARCEL_MEDIA_COMMAND_TYPE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>10</integer>
+				<key>tooltip</key>
+				<string>Use this to get or set the parcel media MIME type (e.g. "text/html").</string>
+			</map>
+			<key>PARCEL_MEDIA_COMMAND_UNLOAD</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>8</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PARCEL_MEDIA_COMMAND_URL</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>5</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PASSIVE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x4</integer>
+				<key>tooltip</key>
+				<string>Static in-world objects.</string>
+			</map>
+			<key>PATROL_PAUSE_AT_WAYPOINTS</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PAY_DEFAULT</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>-2</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PAY_HIDE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>-1</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PAYMENT_INFO_ON_FILE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>1</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PAYMENT_INFO_USED</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>2</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PERM_ALL</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x7FFFFFFF</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PERM_COPY</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x8000</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PERM_MODIFY</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x4000</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PERM_MOVE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x80000</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PERM_TRANSFER</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x2000</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PERMISSION_ATTACH</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x20</integer>
+				<key>tooltip</key>
+				<string>If this permission is enabled, the object can successfully call llAttachToAvatar to attach to the given avatar.</string>
+			</map>
+			<key>PERMISSION_CHANGE_JOINTS</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x100</integer>
+				<key>tooltip</key>
+				<string>(not yet implemented)</string>
+			</map>
+			<key>PERMISSION_CHANGE_LINKS</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x80</integer>
+				<key>tooltip</key>
+				<string>If this permission is enabled, the object can successfully call llCreateLink, llBreakLink, and llBreakAllLinks to change links to other objects.</string>
+			</map>
+			<key>PERMISSION_CHANGE_PERMISSIONS</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x200</integer>
+				<key>tooltip</key>
+				<string>(not yet implemented)</string>
+			</map>
+			<key>PERMISSION_CONTROL_CAMERA</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x800</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PERMISSION_DEBIT</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x2</integer>
+				<key>tooltip</key>
+				<string>If this permission is enabled, the object can successfully call llGiveMoney or llTransferLindenDollars to debit the owners account.</string>
+			</map>
+			<key>PERMISSION_OVERRIDE_ANIMATIONS</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x8000</integer>
+				<key>tooltip</key>
+				<string>Permission to override default animations.</string>
+			</map>
+			<key>PERMISSION_RELEASE_OWNERSHIP</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x40</integer>
+				<key>tooltip</key>
+				<string>(not yet implemented)</string>
+			</map>
+			<key>PERMISSION_REMAP_CONTROLS</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x8</integer>
+				<key>tooltip</key>
+				<string>(not yet implemented)</string>
+			</map>
+			<key>PERMISSION_RETURN_OBJECTS</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>65536</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PERMISSION_TAKE_CONTROLS</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x4</integer>
+				<key>tooltip</key>
+				<string>If this permission enabled, the object can successfully call the llTakeControls libray call.</string>
+			</map>
+			<key>PERMISSION_TELEPORT</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x1000</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PERMISSION_TRACK_CAMERA</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x400</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PERMISSION_TRIGGER_ANIMATION</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x10</integer>
+				<key>tooltip</key>
+				<string>If this permission is enabled, the object can successfully call llStartAnimation for the avatar that owns this.</string>
+			</map>
+			<key>PI</key>
+			<map>
+				<key>type</key>
+				<string>float</string>
+				<key>value</key>
+				<real>3.14159265</real>
+				<key>tooltip</key>
+				<string>3.14159265 - The number of radians in a semi-circle.</string>
+			</map>
+			<key>PI_BY_TWO</key>
+			<map>
+				<key>type</key>
+				<string>float</string>
+				<key>value</key>
+				<real>1.57079633</real>
+				<key>tooltip</key>
+				<string>1.57079633 - The number of radians in a quarter circle.</string>
+			</map>
+			<key>PING_PONG</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x8</integer>
+				<key>tooltip</key>
+				<string>Play animation going forwards, then backwards.</string>
+			</map>
+			<key>PRIM_BUMP_BARK</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>4</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_BUMP_BLOBS</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>12</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_BUMP_BRICKS</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>5</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_BUMP_BRIGHT</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>1</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_BUMP_CHECKER</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>6</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_BUMP_CONCRETE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>7</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_BUMP_DARK</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>2</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_BUMP_DISKS</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>10</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_BUMP_GRAVEL</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>11</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_BUMP_LARGETILE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>14</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_BUMP_NONE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_BUMP_SHINY</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>19</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_BUMP_SIDING</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>13</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_BUMP_STONE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>9</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_BUMP_STUCCO</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>15</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_BUMP_SUCTION</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>16</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_BUMP_TILE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>8</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_BUMP_WEAVE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>17</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_BUMP_WOOD</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>3</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_CAST_SHADOWS</key>
+			<map>
+				<key>deprecated</key>
+				<boolean>true</boolean>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>24</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_COLOR</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>18</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_DESC</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>28</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_FLEXIBLE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>21</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_FULLBRIGHT</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>20</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_GLOW</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>25</integer>
+				<key>tooltip</key>
+				<string>PRIM_GLOW is used to get or set the glow status of the face.</string>
+			</map>
+			<key>PRIM_HOLE_CIRCLE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x10</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_HOLE_DEFAULT</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x00</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_HOLE_SQUARE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x20</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_HOLE_TRIANGLE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x30</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_LINK_TARGET</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>34</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_MATERIAL</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>2</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_MATERIAL_FLESH</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>4</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_MATERIAL_GLASS</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>2</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_MATERIAL_LIGHT</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>7</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_MATERIAL_METAL</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>1</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_MATERIAL_PLASTIC</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>5</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_MATERIAL_RUBBER</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>6</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_MATERIAL_STONE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_MATERIAL_WOOD</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>3</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_MEDIA_ALT_IMAGE_ENABLE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0</integer>
+				<key>tooltip</key>
+				<string>Boolean. Gets/Sets the default image state (the image that the user sees before a piece of media is active) for the chosen face. The default image is specified by Second Life's server for that media type.</string>
+			</map>
+			<key>PRIM_MEDIA_AUTO_LOOP</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>4</integer>
+				<key>tooltip</key>
+				<string>Boolean. Gets/Sets whether auto-looping is enabled.</string>
+			</map>
+			<key>PRIM_MEDIA_AUTO_PLAY</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>5</integer>
+				<key>tooltip</key>
+				<string>Boolean. Gets/Sets whether the media auto-plays when a Resident can view it.</string>
+			</map>
+			<key>PRIM_MEDIA_AUTO_SCALE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>6</integer>
+				<key>tooltip</key>
+				<string>Boolean. Gets/Sets whether auto-scaling is enabled. Auto-scaling forces the media to the full size of the texture.</string>
+			</map>
+			<key>PRIM_MEDIA_AUTO_ZOOM</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>7</integer>
+				<key>tooltip</key>
+				<string>Boolean. Gets/Sets whether clicking the media triggers auto-zoom and auto-focus on the media.</string>
+			</map>
+			<key>PRIM_MEDIA_CONTROLS</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>1</integer>
+				<key>tooltip</key>
+				<string>Integer. Gets/Sets the style of controls. Can be either PRIM_MEDIA_CONTROLS_STANDARD or PRIM_MEDIA_CONTROLS_MINI.</string>
+			</map>
+			<key>PRIM_MEDIA_CONTROLS_MINI</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>1</integer>
+				<key>tooltip</key>
+				<string>Mini web navigation controls; does not include an address bar.</string>
+			</map>
+			<key>PRIM_MEDIA_CONTROLS_STANDARD</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0</integer>
+				<key>tooltip</key>
+				<string>Standard web navigation controls.</string>
+			</map>
+			<key>PRIM_MEDIA_CURRENT_URL</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>2</integer>
+				<key>tooltip</key>
+				<string>String. Gets/Sets the current url displayed on the chosen face. Changing this URL causes navigation. 1024 characters Maximum.</string>
+			</map>
+			<key>PRIM_MEDIA_FIRST_CLICK_INTERACT</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>8</integer>
+				<key>tooltip</key>
+				<string>Boolean. Gets/Sets whether the first click interaction is enabled.</string>
+			</map>
+			<key>PRIM_MEDIA_HEIGHT_PIXELS</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>10</integer>
+				<key>tooltip</key>
+				<string>Integer. Gets/Sets the height of the media in pixels.</string>
+			</map>
+			<key>PRIM_MEDIA_HOME_URL</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>3</integer>
+				<key>tooltip</key>
+				<string>String. Gets/Sets the home URL for the chosen face. 1024 characters maximum.</string>
+			</map>
+			<key>PRIM_MEDIA_PERM_ANYONE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>4</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_MEDIA_PERM_GROUP</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>2</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_MEDIA_PERM_NONE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_MEDIA_PERM_OWNER</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>1</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_MEDIA_PERMS_CONTROL</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>14</integer>
+				<key>tooltip</key>
+				<string>Integer. Gets/Sets the permissions mask that control who can see the media control bar above the object:: PRIM_MEDIA_PERM_ANYONE, PRIM_MEDIA_PERM_GROUP, PRIM_MEDIA_PERM_NONE, PRIM_MEDIA_PERM_OWNER</string>
+			</map>
+			<key>PRIM_MEDIA_PERMS_INTERACT</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>13</integer>
+				<key>tooltip</key>
+				<string>Integer. Gets/Sets the permissions mask that control who can interact with the object: PRIM_MEDIA_PERM_ANYONE, PRIM_MEDIA_PERM_GROUP, PRIM_MEDIA_PERM_NONE, PRIM_MEDIA_PERM_OWNER</string>
+			</map>
+			<key>PRIM_MEDIA_WHITELIST</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>12</integer>
+				<key>tooltip</key>
+				<string>String. Gets/Sets the white-list as a string of escaped, comma-separated URLs. This string can hold up to 64 URLs or 1024 characters, whichever comes first.</string>
+			</map>
+			<key>PRIM_MEDIA_WHITELIST_ENABLE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>11</integer>
+				<key>tooltip</key>
+				<string>Boolean. Gets/Sets whether navigation is restricted to URLs in PRIM_MEDIA_WHITELIST.</string>
+			</map>
+			<key>PRIM_MEDIA_WIDTH_PIXELS</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>9</integer>
+				<key>tooltip</key>
+				<string>Integer. Gets/Sets the width of the media in pixels.</string>
+			</map>
+			<key>PRIM_NAME</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>27</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_OMEGA</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>32</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_PHANTOM</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>5</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_PHYSICS</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>3</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_PHYSICS_SHAPE_CONVEX</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>2</integer>
+				<key>tooltip</key>
+				<string>Use the convex hull of the prim shape for physics (this is the default for mesh objects).</string>
+			</map>
+			<key>PRIM_PHYSICS_SHAPE_NONE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>1</integer>
+				<key>tooltip</key>
+				<string>Ignore this prim in the physics shape. NB: This cannot be applied to the root prim.</string>
+			</map>
+			<key>PRIM_PHYSICS_SHAPE_PRIM</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0</integer>
+				<key>tooltip</key>
+				<string>Use the normal prim shape for physics (this is the default for all non-mesh objects).</string>
+			</map>
+			<key>PRIM_PHYSICS_SHAPE_TYPE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>30</integer>
+				<key>tooltip</key>
+				<string>Allows you to set the physics shape type of a prim via lsl. Permitted values are:
 			PRIM_PHYSICS_SHAPE_NONE, PRIM_PHYSICS_SHAPE_PRIM, PRIM_PHYSICS_SHAPE_CONVEX</string>
-         </map>
-         <key>PRIM_POINT_LIGHT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>23</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_POS_LOCAL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>33</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_POSITION</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>6</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_ROT_LOCAL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>29</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_ROTATION</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>8</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_SCULPT_FLAG_INVERT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>64</integer>
-            <key>tooltip</key>
-            <string>Render inside out (inverts the normals).</string>
-         </map>
-         <key>PRIM_SCULPT_FLAG_MIRROR</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>128</integer>
-            <key>tooltip</key>
-            <string>Render an X axis mirror of the sculpty.</string>
-         </map>
-         <key>PRIM_SCULPT_TYPE_CYLINDER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_SCULPT_TYPE_MASK</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>7</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_SCULPT_TYPE_PLANE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_SCULPT_TYPE_SPHERE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_SCULPT_TYPE_TORUS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_SHINY_HIGH</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_SHINY_LOW</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_SHINY_MEDIUM</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_SHINY_NONE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_SIZE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>7</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_SLICE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>35</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_TEMP_ON_REZ</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_TEXGEN</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>22</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_TEXGEN_DEFAULT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_TEXGEN_PLANAR</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_TEXT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>26</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_TEXTURE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>17</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_TYPE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>9</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_TYPE_BOX</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_TYPE_CYLINDER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_TYPE_PRISM</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_TYPE_RING</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>6</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_TYPE_SCULPT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>7</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_TYPE_SPHERE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_TYPE_TORUS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PRIM_TYPE_TUBE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PROFILE_NONE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string>Disables profiling</string>
-         </map>
-         <key>PROFILE_SCRIPT_MEMORY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>Enables memory profiling</string>
-         </map>
-         <key>PSYS_PART_BOUNCE_MASK</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x4</integer>
-            <key>tooltip</key>
-            <string>Particles bounce off of a plane at the objects Z height.</string>
-         </map>
-         <key>PSYS_PART_EMISSIVE_MASK</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x100</integer>
-            <key>tooltip</key>
-            <string>The particle glows.</string>
-         </map>
-         <key>PSYS_PART_END_ALPHA</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string>A float which determines the ending alpha of the object.</string>
-         </map>
-         <key>PSYS_PART_END_COLOR</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string>A vector &lt;r, g, b&gt; which determines the ending colour of the object.</string>
-         </map>
-         <key>PSYS_PART_END_SCALE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>6</integer>
-            <key>tooltip</key>
-            <string>A vector &lt;sx, sy, z&gt;, which is the ending size of the particle billboard in meters (z is ignored).</string>
-         </map>
-         <key>PSYS_PART_FLAGS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string>Each particle that is emitted by the particle system is simulated based on the following flags. To use multiple flags, bitwise or (|) them together.</string>
-         </map>
-         <key>PSYS_PART_FOLLOW_SRC_MASK</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x10</integer>
-            <key>tooltip</key>
-            <string>The particle position is relative to the source objects position.</string>
-         </map>
-         <key>PSYS_PART_FOLLOW_VELOCITY_MASK</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x20</integer>
-            <key>tooltip</key>
-            <string>The particle orientation is rotated so the vertical axis faces towards the particle velocity.</string>
-         </map>
-         <key>PSYS_PART_INTERP_COLOR_MASK</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x1</integer>
-            <key>tooltip</key>
-            <string>Interpolate both the colour and alpha from the start value to the end value.</string>
-         </map>
-         <key>PSYS_PART_INTERP_SCALE_MASK</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x2</integer>
-            <key>tooltip</key>
-            <string>Interpolate the particle scale from the start value to the end value.</string>
-         </map>
-         <key>PSYS_PART_MAX_AGE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>19</integer>
-            <key>tooltip</key>
-            <string>Age in seconds of a particle at which it dies.</string>
-         </map>
-         <key>PSYS_PART_START_ALPHA</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>A float which determines the starting alpha of the object.</string>
-         </map>
-         <key>PSYS_PART_START_COLOR</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>A vector &lt;r.r, g.g, b.b&gt; which determines the starting colour of the object.</string>
-         </map>
-         <key>PSYS_PART_START_SCALE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string>A vector &lt;sx, sy, z&gt;, which is the starting size of the particle billboard in meters (z is ignored).</string>
-         </map>
-         <key>PSYS_PART_TARGET_LINEAR_MASK</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x80</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PSYS_PART_TARGET_POS_MASK</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x40</integer>
-            <key>tooltip</key>
-            <string>The particle heads towards the location of the target object as defined by PSYS_SRC_TARGET_KEY.</string>
-         </map>
-         <key>PSYS_PART_WIND_MASK</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x8</integer>
-            <key>tooltip</key>
-            <string>Particles have their velocity damped towards the wind velocity.</string>
-         </map>
-         <key>PSYS_SRC_ACCEL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>8</integer>
-            <key>tooltip</key>
-            <string>A vector &lt;x, y, z&gt; which is the acceleration to apply on particles.</string>
-         </map>
-         <key>PSYS_SRC_ANGLE_BEGIN</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>22</integer>
-            <key>tooltip</key>
-            <string>Area in radians specifying where particles will NOT be created (for ANGLE patterns)</string>
-         </map>
-         <key>PSYS_SRC_ANGLE_END</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>23</integer>
-            <key>tooltip</key>
-            <string>Area in radians filled with particles (for ANGLE patterns) (if lower than PSYS_SRC_ANGLE_BEGIN, acts as PSYS_SRC_ANGLE_BEGIN itself, and PSYS_SRC_ANGLE_BEGIN acts as PSYS_SRC_ANGLE_END).</string>
-         </map>
-         <key>PSYS_SRC_BURST_PART_COUNT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>15</integer>
-            <key>tooltip</key>
-            <string>How many particles to release in a burst.</string>
-         </map>
-         <key>PSYS_SRC_BURST_RADIUS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>16</integer>
-            <key>tooltip</key>
-            <string>What distance from the center of the object to create the particles.</string>
-         </map>
-         <key>PSYS_SRC_BURST_RATE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>13</integer>
-            <key>tooltip</key>
-            <string>How often to release a particle burst (float seconds).</string>
-         </map>
-         <key>PSYS_SRC_BURST_SPEED_MAX</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>18</integer>
-            <key>tooltip</key>
-            <string>Maximum speed that a particle should be moving.</string>
-         </map>
-         <key>PSYS_SRC_BURST_SPEED_MIN</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>17</integer>
-            <key>tooltip</key>
-            <string>Minimum speed that a particle should be moving.</string>
-         </map>
-         <key>PSYS_SRC_INNERANGLE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>10</integer>
-            <key>tooltip</key>
-            <string>Specifies the inner angle of the arc created by the PSYS_SRC_PATTERN_ANGLE or PSYS_SRC_PATTERN_ANGLE_CONE source pattern.
+			</map>
+			<key>PRIM_POINT_LIGHT</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>23</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_POS_LOCAL</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>33</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_POSITION</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>6</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_ROT_LOCAL</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>29</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_ROTATION</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>8</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_SCULPT_FLAG_INVERT</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>64</integer>
+				<key>tooltip</key>
+				<string>Render inside out (inverts the normals).</string>
+			</map>
+			<key>PRIM_SCULPT_FLAG_MIRROR</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>128</integer>
+				<key>tooltip</key>
+				<string>Render an X axis mirror of the sculpty.</string>
+			</map>
+			<key>PRIM_SCULPT_TYPE_CYLINDER</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>4</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_SCULPT_TYPE_MASK</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>7</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_SCULPT_TYPE_PLANE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>3</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_SCULPT_TYPE_SPHERE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>1</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_SCULPT_TYPE_TORUS</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>2</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_SHINY_HIGH</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>3</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_SHINY_LOW</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>1</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_SHINY_MEDIUM</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>2</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_SHINY_NONE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_SIZE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>7</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_SLICE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>35</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_TEMP_ON_REZ</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>4</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_TEXGEN</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>22</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_TEXGEN_DEFAULT</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_TEXGEN_PLANAR</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>1</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_TEXT</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>26</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_TEXTURE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>17</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_TYPE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>9</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_TYPE_BOX</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_TYPE_CYLINDER</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>1</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_TYPE_PRISM</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>2</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_TYPE_RING</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>6</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_TYPE_SCULPT</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>7</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_TYPE_SPHERE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>3</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_TYPE_TORUS</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>4</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PRIM_TYPE_TUBE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>5</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PROFILE_NONE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0</integer>
+				<key>tooltip</key>
+				<string>Disables profiling</string>
+			</map>
+			<key>PROFILE_SCRIPT_MEMORY</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>1</integer>
+				<key>tooltip</key>
+				<string>Enables memory profiling</string>
+			</map>
+			<key>PSYS_PART_BOUNCE_MASK</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x4</integer>
+				<key>tooltip</key>
+				<string>Particles bounce off of a plane at the objects Z height.</string>
+			</map>
+			<key>PSYS_PART_EMISSIVE_MASK</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x100</integer>
+				<key>tooltip</key>
+				<string>The particle glows.</string>
+			</map>
+			<key>PSYS_PART_END_ALPHA</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>4</integer>
+				<key>tooltip</key>
+				<string>A float which determines the ending alpha of the object.</string>
+			</map>
+			<key>PSYS_PART_END_COLOR</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>3</integer>
+				<key>tooltip</key>
+				<string>A vector &lt;r, g, b&gt; which determines the ending colour of the object.</string>
+			</map>
+			<key>PSYS_PART_END_SCALE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>6</integer>
+				<key>tooltip</key>
+				<string>A vector &lt;sx, sy, z&gt;, which is the ending size of the particle billboard in meters (z is ignored).</string>
+			</map>
+			<key>PSYS_PART_FLAGS</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0</integer>
+				<key>tooltip</key>
+				<string>Each particle that is emitted by the particle system is simulated based on the following flags. To use multiple flags, bitwise or (|) them together.</string>
+			</map>
+			<key>PSYS_PART_FOLLOW_SRC_MASK</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x10</integer>
+				<key>tooltip</key>
+				<string>The particle position is relative to the source objects position.</string>
+			</map>
+			<key>PSYS_PART_FOLLOW_VELOCITY_MASK</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x20</integer>
+				<key>tooltip</key>
+				<string>The particle orientation is rotated so the vertical axis faces towards the particle velocity.</string>
+			</map>
+			<key>PSYS_PART_INTERP_COLOR_MASK</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x1</integer>
+				<key>tooltip</key>
+				<string>Interpolate both the colour and alpha from the start value to the end value.</string>
+			</map>
+			<key>PSYS_PART_INTERP_SCALE_MASK</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x2</integer>
+				<key>tooltip</key>
+				<string>Interpolate the particle scale from the start value to the end value.</string>
+			</map>
+			<key>PSYS_PART_MAX_AGE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>19</integer>
+				<key>tooltip</key>
+				<string>Age in seconds of a particle at which it dies.</string>
+			</map>
+			<key>PSYS_PART_START_ALPHA</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>2</integer>
+				<key>tooltip</key>
+				<string>A float which determines the starting alpha of the object.</string>
+			</map>
+			<key>PSYS_PART_START_COLOR</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>1</integer>
+				<key>tooltip</key>
+				<string>A vector &lt;r.r, g.g, b.b&gt; which determines the starting colour of the object.</string>
+			</map>
+			<key>PSYS_PART_START_SCALE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>5</integer>
+				<key>tooltip</key>
+				<string>A vector &lt;sx, sy, z&gt;, which is the starting size of the particle billboard in meters (z is ignored).</string>
+			</map>
+			<key>PSYS_PART_TARGET_LINEAR_MASK</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x80</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PSYS_PART_TARGET_POS_MASK</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x40</integer>
+				<key>tooltip</key>
+				<string>The particle heads towards the location of the target object as defined by PSYS_SRC_TARGET_KEY.</string>
+			</map>
+			<key>PSYS_PART_WIND_MASK</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x8</integer>
+				<key>tooltip</key>
+				<string>Particles have their velocity damped towards the wind velocity.</string>
+			</map>
+			<key>PSYS_SRC_ACCEL</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>8</integer>
+				<key>tooltip</key>
+				<string>A vector &lt;x, y, z&gt; which is the acceleration to apply on particles.</string>
+			</map>
+			<key>PSYS_SRC_ANGLE_BEGIN</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>22</integer>
+				<key>tooltip</key>
+				<string>Area in radians specifying where particles will NOT be created (for ANGLE patterns)</string>
+			</map>
+			<key>PSYS_SRC_ANGLE_END</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>23</integer>
+				<key>tooltip</key>
+				<string>Area in radians filled with particles (for ANGLE patterns) (if lower than PSYS_SRC_ANGLE_BEGIN, acts as PSYS_SRC_ANGLE_BEGIN itself, and PSYS_SRC_ANGLE_BEGIN acts as PSYS_SRC_ANGLE_END).</string>
+			</map>
+			<key>PSYS_SRC_BURST_PART_COUNT</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>15</integer>
+				<key>tooltip</key>
+				<string>How many particles to release in a burst.</string>
+			</map>
+			<key>PSYS_SRC_BURST_RADIUS</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>16</integer>
+				<key>tooltip</key>
+				<string>What distance from the center of the object to create the particles.</string>
+			</map>
+			<key>PSYS_SRC_BURST_RATE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>13</integer>
+				<key>tooltip</key>
+				<string>How often to release a particle burst (float seconds).</string>
+			</map>
+			<key>PSYS_SRC_BURST_SPEED_MAX</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>18</integer>
+				<key>tooltip</key>
+				<string>Maximum speed that a particle should be moving.</string>
+			</map>
+			<key>PSYS_SRC_BURST_SPEED_MIN</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>17</integer>
+				<key>tooltip</key>
+				<string>Minimum speed that a particle should be moving.</string>
+			</map>
+			<key>PSYS_SRC_INNERANGLE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>10</integer>
+				<key>tooltip</key>
+				<string>Specifies the inner angle of the arc created by the PSYS_SRC_PATTERN_ANGLE or PSYS_SRC_PATTERN_ANGLE_CONE source pattern.
 			The area specified will NOT have particles in it.</string>
-         </map>
-         <key>PSYS_SRC_MAX_AGE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>19</integer>
-            <key>tooltip</key>
-            <string>How long this particle system should last, 0.0 means forever.</string>
-         </map>
-         <key>PSYS_SRC_OMEGA</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>21</integer>
-            <key>tooltip</key>
-            <string>Sets the angular velocity to rotate the axis that SRC_PATTERN_ANGLE and SRC_PATTERN_ANGLE_CONE use.</string>
-         </map>
-         <key>PSYS_SRC_OUTERANGLE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>11</integer>
-            <key>tooltip</key>
-            <string>Specifies the outer angle of the arc created by the PSYS_SRC_PATTERN_ANGLE or PSYS_SRC_PATTERN_ANGLE_CONE source pattern.
+			</map>
+			<key>PSYS_SRC_MAX_AGE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>19</integer>
+				<key>tooltip</key>
+				<string>How long this particle system should last, 0.0 means forever.</string>
+			</map>
+			<key>PSYS_SRC_OMEGA</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>21</integer>
+				<key>tooltip</key>
+				<string>Sets the angular velocity to rotate the axis that SRC_PATTERN_ANGLE and SRC_PATTERN_ANGLE_CONE use.</string>
+			</map>
+			<key>PSYS_SRC_OUTERANGLE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>11</integer>
+				<key>tooltip</key>
+				<string>Specifies the outer angle of the arc created by the PSYS_SRC_PATTERN_ANGLE or PSYS_SRC_PATTERN_ANGLE_CONE source pattern.
 			The area between the outer and inner angle will be filled with particles.</string>
-         </map>
-         <key>PSYS_SRC_PATTERN</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>9</integer>
-            <key>tooltip</key>
-            <string>The pattern which is used to generate particles.
+			</map>
+			<key>PSYS_SRC_PATTERN</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>9</integer>
+				<key>tooltip</key>
+				<string>The pattern which is used to generate particles.
 			Use one of the following values: PSYS_SRC_PATTERN Values.</string>
-         </map>
-         <key>PSYS_SRC_PATTERN_ANGLE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x04</integer>
-            <key>tooltip</key>
-            <string>Shoot particles across a 2 dimensional area defined by the arc created from PSYS_SRC_OUTERANGLE. There will be an open area defined by PSYS_SRC_INNERANGLE within the larger arc.</string>
-         </map>
-         <key>PSYS_SRC_PATTERN_ANGLE_CONE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x08</integer>
-            <key>tooltip</key>
-            <string>Shoot particles out in a 3 dimensional cone with an outer arc of PSYS_SRC_OUTERANGLE and an inner open area defined by PSYS_SRC_INNERANGLE.</string>
-         </map>
-         <key>PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x10</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PSYS_SRC_PATTERN_DROP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x01</integer>
-            <key>tooltip</key>
-            <string>Drop particles at the source position.</string>
-         </map>
-         <key>PSYS_SRC_PATTERN_EXPLODE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x02</integer>
-            <key>tooltip</key>
-            <string>Shoot particles out in all directions, using the burst parameters.</string>
-         </map>
-         <key>PSYS_SRC_TARGET_KEY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>20</integer>
-            <key>tooltip</key>
-            <string>The key of a target object to move towards if PSYS_PART_TARGET_POS_MASK is enabled.</string>
-         </map>
-         <key>PSYS_SRC_TEXTURE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>12</integer>
-            <key>tooltip</key>
-            <string>An asset name for the texture to use for the particles.</string>
-         </map>
-         <key>PU_EVADE_HIDDEN</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x07</integer>
-            <key>tooltip</key>
-            <string>Triggered when an llEvade character thinks it has hidden from its pursuer.</string>
-         </map>
-         <key>PU_EVADE_SPOTTED</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x08</integer>
-            <key>tooltip</key>
-            <string>Triggered when an llEvade character switches from hiding to running</string>
-         </map>
-         <key>PU_FAILURE_DYNAMIC_PATHFINDING_DISABLED</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>10</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PU_FAILURE_INVALID_GOAL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x03</integer>
-            <key>tooltip</key>
-            <string>Goal is not on the navigation-mesh and cannot be reached.</string>
-         </map>
-         <key>PU_FAILURE_INVALID_START</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x02</integer>
-            <key>tooltip</key>
-            <string>Character cannot navigate from the current location - e.g., the character is off the navmesh or too high above it.</string>
-         </map>
-         <key>PU_FAILURE_NO_NAVMESH</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x09</integer>
-            <key>tooltip</key>
-            <string>This is a fatal error reported to a character when there is no navmesh for the region. This usually indicates a server failure and users should file a bug report and include the time and region in which they received this message.</string>
-         </map>
-         <key>PU_FAILURE_NO_VALID_DESTINATION</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x06</integer>
-            <key>tooltip</key>
-            <string>There is no good place for the character to go - e.g., it is patrolling and all the patrol points are now unreachable.</string>
-         </map>
-         <key>PU_FAILURE_OTHER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1000000</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PU_FAILURE_PARCEL_UNREACHABLE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>11</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PU_FAILURE_TARGET_GONE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x05</integer>
-            <key>tooltip</key>
-            <string>Target (for llPursue or llEvade) can no longer be tracked - e.g., it left the region or is an avatar that is now more than about 30m outside the region.</string>
-         </map>
-         <key>PU_FAILURE_UNREACHABLE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x04</integer>
-            <key>tooltip</key>
-            <string>Goal is no longer reachable for some reason - e.g., an obstacle blocks the path.</string>
-         </map>
-         <key>PU_GOAL_REACHED</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x01</integer>
-            <key>tooltip</key>
-            <string>Character has reached the goal and will stop or choose a new goal (if wandering).</string>
-         </map>
-         <key>PU_SLOWDOWN_DISTANCE_REACHED</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x00</integer>
-            <key>tooltip</key>
-            <string>Character is near current goal.</string>
-         </map>
-         <key>PUBLIC_CHANNEL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string>PUBLIC_CHANNEL is an integer constant that, when passed to llSay, llWhisper, or llShout as a channel parameter, will print text to the publicly heard chat channel.</string>
-         </map>
-         <key>PURSUIT_FUZZ_FACTOR</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string>Selects a random destination near the offset.</string>
-         </map>
-         <key>PURSUIT_GOAL_TOLERANCE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>PURSUIT_INTERCEPT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string>Define whether the character attempts to predict the target's location.</string>
-         </map>
-         <key>PURSUIT_OFFSET</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>Go to a position offset from the target.</string>
-         </map>
-         <key>RAD_TO_DEG</key>
-         <map>
-            <key>type</key>
-            <string>float</string>
-            <key>value</key>
-            <real>57.2957795</real>
-            <key>tooltip</key>
-            <string>57.2957795 - Number of degrees per radian. You can use this number to convert radians to degrees by multiplying the radians by this number.</string>
-         </map>
-         <key>RC_DATA_FLAGS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>RC_DETECT_PHANTOM</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>RC_GET_LINK_NUM</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>RC_GET_NORMAL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>RC_GET_ROOT_KEY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>RC_MAX_HITS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>RC_REJECT_AGENTS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>RC_REJECT_LAND</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>8</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>RC_REJECT_NONPHYSICAL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>RC_REJECT_PHYSICAL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>RC_REJECT_TYPES</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>RCERR_CAST_TIME_EXCEEDED</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>-3</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>RCERR_SIM_PERF_LOW</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>-2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>RCERR_UNKNOWN</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>-1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>REGION_FLAG_ALLOW_DAMAGE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>REGION_FLAG_ALLOW_DIRECT_TELEPORT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x100000</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>REGION_FLAG_BLOCK_FLY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x80000</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>REGION_FLAG_BLOCK_TERRAFORM</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x40</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>REGION_FLAG_DISABLE_COLLISIONS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x1000</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>REGION_FLAG_DISABLE_PHYSICS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x4000</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>REGION_FLAG_FIXED_SUN</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x10</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>REGION_FLAG_RESTRICT_PUSHOBJECT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x400000</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>REGION_FLAG_SANDBOX</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x100</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>REMOTE_DATA_CHANNEL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>REMOTE_DATA_REPLY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>REMOTE_DATA_REQUEST</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>REQUIRE_LINE_OF_SIGHT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>Define whether the character needs a line-of-sight to give chase.</string>
-         </map>
-         <key>RESTITUTION</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string>Used with llSetPhysicsMaterial to enable the density value. Must be between 0.0 and 1.0</string>
-         </map>
-         <key>REVERSE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x4</integer>
-            <key>tooltip</key>
-            <string>Play animation in reverse direction.</string>
-         </map>
-         <key>ROTATE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x20</integer>
-            <key>tooltip</key>
-            <string>Animate texture rotation.</string>
-         </map>
-         <key>SCALE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x40</integer>
-            <key>tooltip</key>
-            <string>Animate the texture scale.</string>
-         </map>
-         <key>SCRIPTED</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x8</integer>
-            <key>tooltip</key>
-            <string>Scripted in-world objects.</string>
-         </map>
-         <key>SIM_STAT_PCT_CHARS_STEPPED</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string>Returns the % of pathfinding characters skipped each frame, averaged over the last minute.\nThe returned value corresponds to the "Characters Updated" stat in the viewer's Statistics Bar.</string>
-         </map>
-         <key>SMOOTH</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x10</integer>
-            <key>tooltip</key>
-            <string>Slide in the X direction, instead of playing separate frames.</string>
-         </map>
-         <key>SQRT2</key>
-         <map>
-            <key>type</key>
-            <string>float</string>
-            <key>value</key>
-            <real>1.41421356</real>
-            <key>tooltip</key>
-            <string>1.41421356 - The square root of 2.</string>
-         </map>
-         <key>STATUS_BLOCK_GRAB</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>64</integer>
-            <key>tooltip</key>
-            <string>Controls whether the object can be grabbed.\nA grab is the default action when in third person, and is available as the hand tool in build mode. This is useful for physical objects that you don't want other people to be able to trivially disturb. The default is FALSE</string>
-         </map>
-         <key>STATUS_BLOCK_GRAB_OBJECT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1024</integer>
-            <key>tooltip</key>
-            <string>Prevent click-and-drag movement on all prims in the object.</string>
-         </map>
-         <key>STATUS_BOUNDS_ERROR</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1002</integer>
-            <key>tooltip</key>
-            <string>Argument(s) passed to function had a bounds error.</string>
-         </map>
-         <key>STATUS_CAST_SHADOWS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x200</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>STATUS_DIE_AT_EDGE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x80</integer>
-            <key>tooltip</key>
-            <string>Controls whether the object is returned to the owners inventory if it wanders off the edge of the world.\nIt is useful to set this status TRUE for things like bullets or rockets. The default is TRUE</string>
-         </map>
-         <key>STATUS_INTERNAL_ERROR</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1999</integer>
-            <key>tooltip</key>
-            <string>An internal error occurred.</string>
-         </map>
-         <key>STATUS_MALFORMED_PARAMS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1000</integer>
-            <key>tooltip</key>
-            <string>Function was called with malformed parameters.</string>
-         </map>
-         <key>STATUS_NOT_FOUND</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1003</integer>
-            <key>tooltip</key>
-            <string>Object or other item was not found.</string>
-         </map>
-         <key>STATUS_NOT_SUPPORTED</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1004</integer>
-            <key>tooltip</key>
-            <string>Feature not supported.</string>
-         </map>
-         <key>STATUS_OK</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string>Result of function call was a success.</string>
-         </map>
-         <key>STATUS_PHANTOM</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x10</integer>
-            <key>tooltip</key>
-            <string>Controls/indicates whether the object collides or not.\nSetting the value to TRUE makes the object non-colliding with all objects. It is a good idea to use this for most objects that move or rotate, but are non-physical. It is also useful for simulating volumetric lighting. The default is FALSE.</string>
-         </map>
-         <key>STATUS_PHYSICS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x1</integer>
-            <key>tooltip</key>
-            <string>Controls/indicates whether the object moves physically.\nThis controls the same flag that the UI check-box for Physical controls. The default is FALSE.</string>
-         </map>
-         <key>STATUS_RETURN_AT_EDGE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x100</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>STATUS_ROTATE_X</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>STATUS_ROTATE_Y</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x4</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>STATUS_ROTATE_Z</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x8</integer>
-            <key>tooltip</key>
-            <string>Controls/indicates whether the object can physically rotate around
+			</map>
+			<key>PSYS_SRC_PATTERN_ANGLE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x04</integer>
+				<key>tooltip</key>
+				<string>Shoot particles across a 2 dimensional area defined by the arc created from PSYS_SRC_OUTERANGLE. There will be an open area defined by PSYS_SRC_INNERANGLE within the larger arc.</string>
+			</map>
+			<key>PSYS_SRC_PATTERN_ANGLE_CONE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x08</integer>
+				<key>tooltip</key>
+				<string>Shoot particles out in a 3 dimensional cone with an outer arc of PSYS_SRC_OUTERANGLE and an inner open area defined by PSYS_SRC_INNERANGLE.</string>
+			</map>
+			<key>PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x10</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PSYS_SRC_PATTERN_DROP</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x01</integer>
+				<key>tooltip</key>
+				<string>Drop particles at the source position.</string>
+			</map>
+			<key>PSYS_SRC_PATTERN_EXPLODE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x02</integer>
+				<key>tooltip</key>
+				<string>Shoot particles out in all directions, using the burst parameters.</string>
+			</map>
+			<key>PSYS_SRC_TARGET_KEY</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>20</integer>
+				<key>tooltip</key>
+				<string>The key of a target object to move towards if PSYS_PART_TARGET_POS_MASK is enabled.</string>
+			</map>
+			<key>PSYS_SRC_TEXTURE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>12</integer>
+				<key>tooltip</key>
+				<string>An asset name for the texture to use for the particles.</string>
+			</map>
+			<key>PU_EVADE_HIDDEN</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x07</integer>
+				<key>tooltip</key>
+				<string>Triggered when an llEvade character thinks it has hidden from its pursuer.</string>
+			</map>
+			<key>PU_EVADE_SPOTTED</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x08</integer>
+				<key>tooltip</key>
+				<string>Triggered when an llEvade character switches from hiding to running</string>
+			</map>
+			<key>PU_FAILURE_DYNAMIC_PATHFINDING_DISABLED</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>10</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PU_FAILURE_INVALID_GOAL</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x03</integer>
+				<key>tooltip</key>
+				<string>Goal is not on the navigation-mesh and cannot be reached.</string>
+			</map>
+			<key>PU_FAILURE_INVALID_START</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x02</integer>
+				<key>tooltip</key>
+				<string>Character cannot navigate from the current location - e.g., the character is off the navmesh or too high above it.</string>
+			</map>
+			<key>PU_FAILURE_NO_NAVMESH</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x09</integer>
+				<key>tooltip</key>
+				<string>This is a fatal error reported to a character when there is no navmesh for the region. This usually indicates a server failure and users should file a bug report and include the time and region in which they received this message.</string>
+			</map>
+			<key>PU_FAILURE_NO_VALID_DESTINATION</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x06</integer>
+				<key>tooltip</key>
+				<string>There is no good place for the character to go - e.g., it is patrolling and all the patrol points are now unreachable.</string>
+			</map>
+			<key>PU_FAILURE_OTHER</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>1000000</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PU_FAILURE_PARCEL_UNREACHABLE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>11</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PU_FAILURE_TARGET_GONE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x05</integer>
+				<key>tooltip</key>
+				<string>Target (for llPursue or llEvade) can no longer be tracked - e.g., it left the region or is an avatar that is now more than about 30m outside the region.</string>
+			</map>
+			<key>PU_FAILURE_UNREACHABLE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x04</integer>
+				<key>tooltip</key>
+				<string>Goal is no longer reachable for some reason - e.g., an obstacle blocks the path.</string>
+			</map>
+			<key>PU_GOAL_REACHED</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x01</integer>
+				<key>tooltip</key>
+				<string>Character has reached the goal and will stop or choose a new goal (if wandering).</string>
+			</map>
+			<key>PU_SLOWDOWN_DISTANCE_REACHED</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x00</integer>
+				<key>tooltip</key>
+				<string>Character is near current goal.</string>
+			</map>
+			<key>PUBLIC_CHANNEL</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0</integer>
+				<key>tooltip</key>
+				<string>PUBLIC_CHANNEL is an integer constant that, when passed to llSay, llWhisper, or llShout as a channel parameter, will print text to the publicly heard chat channel.</string>
+			</map>
+			<key>PURSUIT_FUZZ_FACTOR</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>3</integer>
+				<key>tooltip</key>
+				<string>Selects a random destination near the offset.</string>
+			</map>
+			<key>PURSUIT_GOAL_TOLERANCE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>5</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>PURSUIT_INTERCEPT</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>4</integer>
+				<key>tooltip</key>
+				<string>Define whether the character attempts to predict the target's location.</string>
+			</map>
+			<key>PURSUIT_OFFSET</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>1</integer>
+				<key>tooltip</key>
+				<string>Go to a position offset from the target.</string>
+			</map>
+			<key>RAD_TO_DEG</key>
+			<map>
+				<key>type</key>
+				<string>float</string>
+				<key>value</key>
+				<real>57.2957795</real>
+				<key>tooltip</key>
+				<string>57.2957795 - Number of degrees per radian. You can use this number to convert radians to degrees by multiplying the radians by this number.</string>
+			</map>
+			<key>RC_DATA_FLAGS</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>2</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>RC_DETECT_PHANTOM</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>1</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>RC_GET_LINK_NUM</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>4</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>RC_GET_NORMAL</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>1</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>RC_GET_ROOT_KEY</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>2</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>RC_MAX_HITS</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>3</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>RC_REJECT_AGENTS</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>1</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>RC_REJECT_LAND</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>8</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>RC_REJECT_NONPHYSICAL</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>4</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>RC_REJECT_PHYSICAL</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>2</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>RC_REJECT_TYPES</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>2</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>RCERR_CAST_TIME_EXCEEDED</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>-3</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>RCERR_SIM_PERF_LOW</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>-2</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>RCERR_UNKNOWN</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>-1</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>REGION_FLAG_ALLOW_DAMAGE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x1</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>REGION_FLAG_ALLOW_DIRECT_TELEPORT</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x100000</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>REGION_FLAG_BLOCK_FLY</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x80000</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>REGION_FLAG_BLOCK_TERRAFORM</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x40</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>REGION_FLAG_DISABLE_COLLISIONS</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x1000</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>REGION_FLAG_DISABLE_PHYSICS</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x4000</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>REGION_FLAG_FIXED_SUN</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x10</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>REGION_FLAG_RESTRICT_PUSHOBJECT</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x400000</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>REGION_FLAG_SANDBOX</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x100</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>REMOTE_DATA_CHANNEL</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>1</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>REMOTE_DATA_REPLY</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>3</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>REMOTE_DATA_REQUEST</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>2</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>REQUIRE_LINE_OF_SIGHT</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>2</integer>
+				<key>tooltip</key>
+				<string>Define whether the character needs a line-of-sight to give chase.</string>
+			</map>
+			<key>RESTITUTION</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>4</integer>
+				<key>tooltip</key>
+				<string>Used with llSetPhysicsMaterial to enable the density value. Must be between 0.0 and 1.0</string>
+			</map>
+			<key>REVERSE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x4</integer>
+				<key>tooltip</key>
+				<string>Play animation in reverse direction.</string>
+			</map>
+			<key>ROTATE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x20</integer>
+				<key>tooltip</key>
+				<string>Animate texture rotation.</string>
+			</map>
+			<key>SCALE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x40</integer>
+				<key>tooltip</key>
+				<string>Animate the texture scale.</string>
+			</map>
+			<key>SCRIPTED</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x8</integer>
+				<key>tooltip</key>
+				<string>Scripted in-world objects.</string>
+			</map>
+			<key>SIM_STAT_PCT_CHARS_STEPPED</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0</integer>
+				<key>tooltip</key>
+				<string>Returns the % of pathfinding characters skipped each frame, averaged over the last minute.\nThe returned value corresponds to the "Characters Updated" stat in the viewer's Statistics Bar.</string>
+			</map>
+			<key>SMOOTH</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x10</integer>
+				<key>tooltip</key>
+				<string>Slide in the X direction, instead of playing separate frames.</string>
+			</map>
+			<key>SQRT2</key>
+			<map>
+				<key>type</key>
+				<string>float</string>
+				<key>value</key>
+				<real>1.41421356</real>
+				<key>tooltip</key>
+				<string>1.41421356 - The square root of 2.</string>
+			</map>
+			<key>STATUS_BLOCK_GRAB</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>64</integer>
+				<key>tooltip</key>
+				<string>Controls whether the object can be grabbed.\nA grab is the default action when in third person, and is available as the hand tool in build mode. This is useful for physical objects that you don't want other people to be able to trivially disturb. The default is FALSE</string>
+			</map>
+			<key>STATUS_BLOCK_GRAB_OBJECT</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>1024</integer>
+				<key>tooltip</key>
+				<string>Prevent click-and-drag movement on all prims in the object.</string>
+			</map>
+			<key>STATUS_BOUNDS_ERROR</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>1002</integer>
+				<key>tooltip</key>
+				<string>Argument(s) passed to function had a bounds error.</string>
+			</map>
+			<key>STATUS_CAST_SHADOWS</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x200</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>STATUS_DIE_AT_EDGE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x80</integer>
+				<key>tooltip</key>
+				<string>Controls whether the object is returned to the owners inventory if it wanders off the edge of the world.\nIt is useful to set this status TRUE for things like bullets or rockets. The default is TRUE</string>
+			</map>
+			<key>STATUS_INTERNAL_ERROR</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>1999</integer>
+				<key>tooltip</key>
+				<string>An internal error occurred.</string>
+			</map>
+			<key>STATUS_MALFORMED_PARAMS</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>1000</integer>
+				<key>tooltip</key>
+				<string>Function was called with malformed parameters.</string>
+			</map>
+			<key>STATUS_NOT_FOUND</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>1003</integer>
+				<key>tooltip</key>
+				<string>Object or other item was not found.</string>
+			</map>
+			<key>STATUS_NOT_SUPPORTED</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>1004</integer>
+				<key>tooltip</key>
+				<string>Feature not supported.</string>
+			</map>
+			<key>STATUS_OK</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0</integer>
+				<key>tooltip</key>
+				<string>Result of function call was a success.</string>
+			</map>
+			<key>STATUS_PHANTOM</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x10</integer>
+				<key>tooltip</key>
+				<string>Controls/indicates whether the object collides or not.\nSetting the value to TRUE makes the object non-colliding with all objects. It is a good idea to use this for most objects that move or rotate, but are non-physical. It is also useful for simulating volumetric lighting. The default is FALSE.</string>
+			</map>
+			<key>STATUS_PHYSICS</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x1</integer>
+				<key>tooltip</key>
+				<string>Controls/indicates whether the object moves physically.\nThis controls the same flag that the UI check-box for Physical controls. The default is FALSE.</string>
+			</map>
+			<key>STATUS_RETURN_AT_EDGE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x100</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>STATUS_ROTATE_X</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x2</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>STATUS_ROTATE_Y</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x4</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>STATUS_ROTATE_Z</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x8</integer>
+				<key>tooltip</key>
+				<string>Controls/indicates whether the object can physically rotate around
 			the specific axis or not. This flag has no meaning
 			for non-physical objects. Set the value to FALSE
 			if you want to disable rotation around that axis. The
@@ -5148,597 +5148,597 @@
 			A useful example to think about when visualizing
 			the effect is a sit-and-spin device. They spin around the
 			Z axis (up) but not around the X or Y axis.</string>
-         </map>
-         <key>STATUS_SANDBOX</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x20</integer>
-            <key>tooltip</key>
-            <string>Controls/indicates whether the object can cross region boundaries
+			</map>
+			<key>STATUS_SANDBOX</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x20</integer>
+				<key>tooltip</key>
+				<string>Controls/indicates whether the object can cross region boundaries
 			and move more than 20 meters from its creation
 			point. The default if FALSE.</string>
-         </map>
-         <key>STATUS_TYPE_MISMATCH</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1001</integer>
-            <key>tooltip</key>
-            <string>Argument(s) passed to function had a type mismatch.</string>
-         </map>
-         <key>STATUS_WHITELIST_FAILED</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2001</integer>
-            <key>tooltip</key>
-            <string>Whitelist Failed.</string>
-         </map>
-         <key>STRING_TRIM</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x03</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>STRING_TRIM_HEAD</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x01</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>STRING_TRIM_TAIL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x02</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>TEXTURE_BLANK</key>
-         <map>
-            <key>type</key>
-            <string>key</string>
-            <key>value</key>
-            <uuid>5748decc-f629-461c-9a36-a35a221fe21f</uuid>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>TEXTURE_DEFAULT</key>
-         <map>
-            <key>type</key>
-            <string>key</string>
-            <key>value</key>
-            <uuid>89556747-24cb-43ed-920b-47caed15465f</uuid>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>TEXTURE_MEDIA</key>
-         <map>
-            <key>type</key>
-            <string>key</string>
-            <key>value</key>
-            <uuid>8b5fec65-8d8d-9dc5-cda8-8fdf2716e361</uuid>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>TEXTURE_PLYWOOD</key>
-         <map>
-            <key>type</key>
-            <string>key</string>
-            <key>value</key>
-            <uuid>89556747-24cb-43ed-920b-47caed15465f</uuid>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>TEXTURE_TRANSPARENT</key>
-         <map>
-            <key>type</key>
-            <string>key</string>
-            <key>value</key>
-            <uuid>8dcd4a48-2d37-4909-9f78-f7a9eb4ef903</uuid>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>TOUCH_INVALID_FACE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0xFFFFFFFF</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>TOUCH_INVALID_TEXCOORD</key>
-         <map>
-            <key>type</key>
-            <string>vector</string>
-            <key>value</key>
-            <array>
-               <map>
-                  <key>x</key>
-                  <real>-1.0</real>
-               </map>
-               <map>
-                  <key>y</key>
-                  <real>-1.0</real>
-               </map>
-               <map>
-                  <key>z</key>
-                  <real>0.0</real>
-               </map>
-            </array>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>TOUCH_INVALID_VECTOR</key>
-         <map>
-            <key>type</key>
-            <string>vector</string>
-            <key>value</key>
-            <array>
-               <map>
-                  <key>x</key>
-                  <real>0.0</real>
-               </map>
-               <map>
-                  <key>y</key>
-                  <real>0.0</real>
-               </map>
-               <map>
-                  <key>z</key>
-                  <real>0.0</real>
-               </map>
-            </array>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>TRAVERSAL_TYPE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>7</integer>
-            <key>tooltip</key>
-            <string>One of TRAVERSAL_TYPE_FAST, TRAVERSAL_TYPE_SLOW, and TRAVERSAL_TYPE_NONE.</string>
-         </map>
-         <key>TRAVERSAL_TYPE_FAST</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>TRAVERSAL_TYPE_NONE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>TRAVERSAL_TYPE_SLOW</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>TRUE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>An integer constant for boolean comparisons. Has the value '1'.</string>
-         </map>
-         <key>TWO_PI</key>
-         <map>
-            <key>type</key>
-            <string>float</string>
-            <key>value</key>
-            <real>6.28318530</real>
-            <key>tooltip</key>
-            <string>6.28318530 - The radians of a circle.</string>
-         </map>
-         <key>TYPE_FLOAT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>The list entry is a float.</string>
-         </map>
-         <key>TYPE_INTEGER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>The list entry is an integer.</string>
-         </map>
-         <key>TYPE_INVALID</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string>The list entry is invalid.</string>
-         </map>
-         <key>TYPE_KEY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string>The list entry is a key.</string>
-         </map>
-         <key>TYPE_ROTATION</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>6</integer>
-            <key>tooltip</key>
-            <string>The list entry is a rotation.</string>
-         </map>
-         <key>TYPE_STRING</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string>The list entry is a string.</string>
-         </map>
-         <key>TYPE_VECTOR</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string>The list entry is a vector.</string>
-         </map>
-         <key>URL_REQUEST_DENIED</key>
-         <map>
-            <key>type</key>
-            <string>string</string>
-            <key>value</key>
-            <string>URL_REQUEST_DENIED</string>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>URL_REQUEST_GRANTED</key>
-         <map>
-            <key>type</key>
-            <string>string</string>
-            <key>value</key>
-            <string>URL_REQUEST_GRANTED</string>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>32</integer>
-            <key>tooltip</key>
-            <string>A slider between minimum (0.0) and maximum (1.0) deflection of angular orientation. That is, its a simple scalar for modulating the strength of angular deflection such that the vehicles preferred axis of motion points toward its real velocity.</string>
-         </map>
-         <key>VEHICLE_ANGULAR_DEFLECTION_TIMESCALE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>33</integer>
-            <key>tooltip</key>
-            <string>The time-scale for exponential success of linear deflection deflection. Its another way to specify the strength of the vehicles tendency to reorient itself so that its preferred axis of motion agrees with its true velocity.</string>
-         </map>
-         <key>VEHICLE_ANGULAR_FRICTION_TIMESCALE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>17</integer>
-            <key>tooltip</key>
-            <string>A vector of timescales for exponential decay of the vehicles angular velocity about its preferred axes of motion (at, left, up).
+			</map>
+			<key>STATUS_TYPE_MISMATCH</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>1001</integer>
+				<key>tooltip</key>
+				<string>Argument(s) passed to function had a type mismatch.</string>
+			</map>
+			<key>STATUS_WHITELIST_FAILED</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>2001</integer>
+				<key>tooltip</key>
+				<string>Whitelist Failed.</string>
+			</map>
+			<key>STRING_TRIM</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x03</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>STRING_TRIM_HEAD</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x01</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>STRING_TRIM_TAIL</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x02</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>TEXTURE_BLANK</key>
+			<map>
+				<key>type</key>
+				<string>key</string>
+				<key>value</key>
+				<uuid>5748decc-f629-461c-9a36-a35a221fe21f</uuid>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>TEXTURE_DEFAULT</key>
+			<map>
+				<key>type</key>
+				<string>key</string>
+				<key>value</key>
+				<uuid>89556747-24cb-43ed-920b-47caed15465f</uuid>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>TEXTURE_MEDIA</key>
+			<map>
+				<key>type</key>
+				<string>key</string>
+				<key>value</key>
+				<uuid>8b5fec65-8d8d-9dc5-cda8-8fdf2716e361</uuid>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>TEXTURE_PLYWOOD</key>
+			<map>
+				<key>type</key>
+				<string>key</string>
+				<key>value</key>
+				<uuid>89556747-24cb-43ed-920b-47caed15465f</uuid>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>TEXTURE_TRANSPARENT</key>
+			<map>
+				<key>type</key>
+				<string>key</string>
+				<key>value</key>
+				<uuid>8dcd4a48-2d37-4909-9f78-f7a9eb4ef903</uuid>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>TOUCH_INVALID_FACE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0xFFFFFFFF</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>TOUCH_INVALID_TEXCOORD</key>
+			<map>
+				<key>type</key>
+				<string>vector</string>
+				<key>value</key>
+				<array>
+					<map>
+						<key>x</key>
+						<real>-1.0</real>
+					</map>
+					<map>
+						<key>y</key>
+						<real>-1.0</real>
+					</map>
+					<map>
+						<key>z</key>
+						<real>0.0</real>
+					</map>
+				</array>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>TOUCH_INVALID_VECTOR</key>
+			<map>
+				<key>type</key>
+				<string>vector</string>
+				<key>value</key>
+				<array>
+					<map>
+						<key>x</key>
+						<real>0.0</real>
+					</map>
+					<map>
+						<key>y</key>
+						<real>0.0</real>
+					</map>
+					<map>
+						<key>z</key>
+						<real>0.0</real>
+					</map>
+				</array>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>TRAVERSAL_TYPE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>7</integer>
+				<key>tooltip</key>
+				<string>One of TRAVERSAL_TYPE_FAST, TRAVERSAL_TYPE_SLOW, and TRAVERSAL_TYPE_NONE.</string>
+			</map>
+			<key>TRAVERSAL_TYPE_FAST</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>1</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>TRAVERSAL_TYPE_NONE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>2</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>TRAVERSAL_TYPE_SLOW</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>TRUE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>1</integer>
+				<key>tooltip</key>
+				<string>An integer constant for boolean comparisons. Has the value '1'.</string>
+			</map>
+			<key>TWO_PI</key>
+			<map>
+				<key>type</key>
+				<string>float</string>
+				<key>value</key>
+				<real>6.28318530</real>
+				<key>tooltip</key>
+				<string>6.28318530 - The radians of a circle.</string>
+			</map>
+			<key>TYPE_FLOAT</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>2</integer>
+				<key>tooltip</key>
+				<string>The list entry is a float.</string>
+			</map>
+			<key>TYPE_INTEGER</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>1</integer>
+				<key>tooltip</key>
+				<string>The list entry is an integer.</string>
+			</map>
+			<key>TYPE_INVALID</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0</integer>
+				<key>tooltip</key>
+				<string>The list entry is invalid.</string>
+			</map>
+			<key>TYPE_KEY</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>4</integer>
+				<key>tooltip</key>
+				<string>The list entry is a key.</string>
+			</map>
+			<key>TYPE_ROTATION</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>6</integer>
+				<key>tooltip</key>
+				<string>The list entry is a rotation.</string>
+			</map>
+			<key>TYPE_STRING</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>3</integer>
+				<key>tooltip</key>
+				<string>The list entry is a string.</string>
+			</map>
+			<key>TYPE_VECTOR</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>5</integer>
+				<key>tooltip</key>
+				<string>The list entry is a vector.</string>
+			</map>
+			<key>URL_REQUEST_DENIED</key>
+			<map>
+				<key>type</key>
+				<string>string</string>
+				<key>value</key>
+				<string>URL_REQUEST_DENIED</string>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>URL_REQUEST_GRANTED</key>
+			<map>
+				<key>type</key>
+				<string>string</string>
+				<key>value</key>
+				<string>URL_REQUEST_GRANTED</string>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>32</integer>
+				<key>tooltip</key>
+				<string>A slider between minimum (0.0) and maximum (1.0) deflection of angular orientation. That is, its a simple scalar for modulating the strength of angular deflection such that the vehicles preferred axis of motion points toward its real velocity.</string>
+			</map>
+			<key>VEHICLE_ANGULAR_DEFLECTION_TIMESCALE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>33</integer>
+				<key>tooltip</key>
+				<string>The time-scale for exponential success of linear deflection deflection. Its another way to specify the strength of the vehicles tendency to reorient itself so that its preferred axis of motion agrees with its true velocity.</string>
+			</map>
+			<key>VEHICLE_ANGULAR_FRICTION_TIMESCALE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>17</integer>
+				<key>tooltip</key>
+				<string>A vector of timescales for exponential decay of the vehicles angular velocity about its preferred axes of motion (at, left, up).
 			Range = [0.07, inf) seconds for each element of the vector.</string>
-         </map>
-         <key>VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>35</integer>
-            <key>tooltip</key>
-            <string>The timescale for exponential decay of the angular motors magnitude.</string>
-         </map>
-         <key>VEHICLE_ANGULAR_MOTOR_DIRECTION</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>19</integer>
-            <key>tooltip</key>
-            <string>The direction and magnitude (in preferred frame) of the vehicles angular motor.The vehicle will accelerate (or decelerate if necessary) to match its velocity to its motor.</string>
-         </map>
-         <key>VEHICLE_ANGULAR_MOTOR_TIMESCALE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>34</integer>
-            <key>tooltip</key>
-            <string>The timescale for exponential approach to full angular motor velocity.</string>
-         </map>
-         <key>VEHICLE_BANKING_EFFICIENCY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>38</integer>
-            <key>tooltip</key>
-            <string>A slider between anti (-1.0), none (0.0), and maxmum (1.0) banking strength.</string>
-         </map>
-         <key>VEHICLE_BANKING_MIX</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>39</integer>
-            <key>tooltip</key>
-            <string>A slider between static (0.0) and dynamic (1.0) banking. "Static" means the banking scales only with the angle of roll, whereas "dynamic" is a term that also scales with the vehicles linear speed.</string>
-         </map>
-         <key>VEHICLE_BANKING_TIMESCALE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>40</integer>
-            <key>tooltip</key>
-            <string>The timescale for banking to exponentially approach its maximum effect. This is another way to scale the strength of the banking effect, however it affects the term that is proportional to the difference between what the banking behavior is trying to do, and what the vehicle is actually doing.</string>
-         </map>
-         <key>VEHICLE_BUOYANCY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>27</integer>
-            <key>tooltip</key>
-            <string>A slider between minimum (0.0) and maximum anti-gravity (1.0).</string>
-         </map>
-         <key>VEHICLE_FLAG_CAMERA_DECOUPLED</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x200</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x10</integer>
-            <key>tooltip</key>
-            <string>Hover at global height.</string>
-         </map>
-         <key>VEHICLE_FLAG_HOVER_TERRAIN_ONLY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x8</integer>
-            <key>tooltip</key>
-            <string>Ignore water height when hovering.</string>
-         </map>
-         <key>VEHICLE_FLAG_HOVER_UP_ONLY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x20</integer>
-            <key>tooltip</key>
-            <string>Hover does not push down. Use this flag for hovering vehicles that should be able to jump above their hover height.</string>
-         </map>
-         <key>VEHICLE_FLAG_HOVER_WATER_ONLY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x4</integer>
-            <key>tooltip</key>
-            <string>Ignore terrain height when hovering.</string>
-         </map>
-         <key>VEHICLE_FLAG_LIMIT_MOTOR_UP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x40</integer>
-            <key>tooltip</key>
-            <string>Prevents ground vehicles from motoring into the sky.</string>
-         </map>
-         <key>VEHICLE_FLAG_LIMIT_ROLL_ONLY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x2</integer>
-            <key>tooltip</key>
-            <string>For vehicles with vertical attractor that want to be able to climb/dive, for instance, aeroplanes that want to use the banking feature.</string>
-         </map>
-         <key>VEHICLE_FLAG_MOUSELOOK_BANK</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x100</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>VEHICLE_FLAG_MOUSELOOK_STEER</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x80</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>VEHICLE_FLAG_NO_DEFLECTION_UP</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x1</integer>
-            <key>tooltip</key>
-            <string>This flag prevents linear deflection parallel to world z-axis. This is useful for preventing ground vehicles with large linear deflection, like bumper cars, from climbing their linear deflection into the sky.</string>
-         </map>
-         <key>VEHICLE_FLAG_NO_FLY_UP</key>
-         <map>
-            <key>deprecated</key>
-            <boolean>true</boolean>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0x1</integer>
-            <key>tooltip</key>
-            <string>Old, changed to VEHICLE_FLAG_NO_DEFLECTION_UP</string>
-         </map>
-         <key>VEHICLE_HOVER_EFFICIENCY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>25</integer>
-            <key>tooltip</key>
-            <string>A slider between minimum (0.0 = bouncy) and maximum (1.0 = fast as possible) damped motion of the hover behavior. </string>
-         </map>
-         <key>VEHICLE_HOVER_HEIGHT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>24</integer>
-            <key>tooltip</key>
-            <string>The height (above the terrain or water, or global) at which the vehicle will try to hover.</string>
-         </map>
-         <key>VEHICLE_HOVER_TIMESCALE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>26</integer>
-            <key>tooltip</key>
-            <string>Period of time (in seconds) for the vehicle to achieve its hover height.</string>
-         </map>
-         <key>VEHICLE_LINEAR_DEFLECTION_EFFICIENCY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>28</integer>
-            <key>tooltip</key>
-            <string>A slider between minimum (0.0) and maximum (1.0) deflection of linear velocity. That is, its a simple scalar for modulating the strength of linear deflection.</string>
-         </map>
-         <key>VEHICLE_LINEAR_DEFLECTION_TIMESCALE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>29</integer>
-            <key>tooltip</key>
-            <string>The timescale for exponential success of linear deflection deflection. It is another way to specify how much time it takes for the vehicles linear velocity to be redirected to its preferred axis of motion.</string>
-         </map>
-         <key>VEHICLE_LINEAR_FRICTION_TIMESCALE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>16</integer>
-            <key>tooltip</key>
-            <string>A vector of timescales for exponential decay of the vehicles linear velocity along its preferred axes of motion (at, left, up).
+			</map>
+			<key>VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>35</integer>
+				<key>tooltip</key>
+				<string>The timescale for exponential decay of the angular motors magnitude.</string>
+			</map>
+			<key>VEHICLE_ANGULAR_MOTOR_DIRECTION</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>19</integer>
+				<key>tooltip</key>
+				<string>The direction and magnitude (in preferred frame) of the vehicles angular motor.The vehicle will accelerate (or decelerate if necessary) to match its velocity to its motor.</string>
+			</map>
+			<key>VEHICLE_ANGULAR_MOTOR_TIMESCALE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>34</integer>
+				<key>tooltip</key>
+				<string>The timescale for exponential approach to full angular motor velocity.</string>
+			</map>
+			<key>VEHICLE_BANKING_EFFICIENCY</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>38</integer>
+				<key>tooltip</key>
+				<string>A slider between anti (-1.0), none (0.0), and maxmum (1.0) banking strength.</string>
+			</map>
+			<key>VEHICLE_BANKING_MIX</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>39</integer>
+				<key>tooltip</key>
+				<string>A slider between static (0.0) and dynamic (1.0) banking. "Static" means the banking scales only with the angle of roll, whereas "dynamic" is a term that also scales with the vehicles linear speed.</string>
+			</map>
+			<key>VEHICLE_BANKING_TIMESCALE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>40</integer>
+				<key>tooltip</key>
+				<string>The timescale for banking to exponentially approach its maximum effect. This is another way to scale the strength of the banking effect, however it affects the term that is proportional to the difference between what the banking behavior is trying to do, and what the vehicle is actually doing.</string>
+			</map>
+			<key>VEHICLE_BUOYANCY</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>27</integer>
+				<key>tooltip</key>
+				<string>A slider between minimum (0.0) and maximum anti-gravity (1.0).</string>
+			</map>
+			<key>VEHICLE_FLAG_CAMERA_DECOUPLED</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x200</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x10</integer>
+				<key>tooltip</key>
+				<string>Hover at global height.</string>
+			</map>
+			<key>VEHICLE_FLAG_HOVER_TERRAIN_ONLY</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x8</integer>
+				<key>tooltip</key>
+				<string>Ignore water height when hovering.</string>
+			</map>
+			<key>VEHICLE_FLAG_HOVER_UP_ONLY</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x20</integer>
+				<key>tooltip</key>
+				<string>Hover does not push down. Use this flag for hovering vehicles that should be able to jump above their hover height.</string>
+			</map>
+			<key>VEHICLE_FLAG_HOVER_WATER_ONLY</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x4</integer>
+				<key>tooltip</key>
+				<string>Ignore terrain height when hovering.</string>
+			</map>
+			<key>VEHICLE_FLAG_LIMIT_MOTOR_UP</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x40</integer>
+				<key>tooltip</key>
+				<string>Prevents ground vehicles from motoring into the sky.</string>
+			</map>
+			<key>VEHICLE_FLAG_LIMIT_ROLL_ONLY</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x2</integer>
+				<key>tooltip</key>
+				<string>For vehicles with vertical attractor that want to be able to climb/dive, for instance, aeroplanes that want to use the banking feature.</string>
+			</map>
+			<key>VEHICLE_FLAG_MOUSELOOK_BANK</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x100</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>VEHICLE_FLAG_MOUSELOOK_STEER</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x80</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>VEHICLE_FLAG_NO_DEFLECTION_UP</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x1</integer>
+				<key>tooltip</key>
+				<string>This flag prevents linear deflection parallel to world z-axis. This is useful for preventing ground vehicles with large linear deflection, like bumper cars, from climbing their linear deflection into the sky.</string>
+			</map>
+			<key>VEHICLE_FLAG_NO_FLY_UP</key>
+			<map>
+				<key>deprecated</key>
+				<boolean>true</boolean>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0x1</integer>
+				<key>tooltip</key>
+				<string>Old, changed to VEHICLE_FLAG_NO_DEFLECTION_UP</string>
+			</map>
+			<key>VEHICLE_HOVER_EFFICIENCY</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>25</integer>
+				<key>tooltip</key>
+				<string>A slider between minimum (0.0 = bouncy) and maximum (1.0 = fast as possible) damped motion of the hover behavior. </string>
+			</map>
+			<key>VEHICLE_HOVER_HEIGHT</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>24</integer>
+				<key>tooltip</key>
+				<string>The height (above the terrain or water, or global) at which the vehicle will try to hover.</string>
+			</map>
+			<key>VEHICLE_HOVER_TIMESCALE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>26</integer>
+				<key>tooltip</key>
+				<string>Period of time (in seconds) for the vehicle to achieve its hover height.</string>
+			</map>
+			<key>VEHICLE_LINEAR_DEFLECTION_EFFICIENCY</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>28</integer>
+				<key>tooltip</key>
+				<string>A slider between minimum (0.0) and maximum (1.0) deflection of linear velocity. That is, its a simple scalar for modulating the strength of linear deflection.</string>
+			</map>
+			<key>VEHICLE_LINEAR_DEFLECTION_TIMESCALE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>29</integer>
+				<key>tooltip</key>
+				<string>The timescale for exponential success of linear deflection deflection. It is another way to specify how much time it takes for the vehicles linear velocity to be redirected to its preferred axis of motion.</string>
+			</map>
+			<key>VEHICLE_LINEAR_FRICTION_TIMESCALE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>16</integer>
+				<key>tooltip</key>
+				<string>A vector of timescales for exponential decay of the vehicles linear velocity along its preferred axes of motion (at, left, up).
 			Range = [0.07, inf) seconds for each element of the vector.</string>
-         </map>
-         <key>VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>35</integer>
-            <key>tooltip</key>
-            <string>The timescale for exponential decay of the linear motors magnitude.</string>
-         </map>
-         <key>VEHICLE_LINEAR_MOTOR_DIRECTION</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>18</integer>
-            <key>tooltip</key>
-            <string>The direction and magnitude (in preferred frame) of the vehicles linear motor. The vehicle will accelerate (or decelerate if necessary) to match its velocity to its motor.
+			</map>
+			<key>VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>35</integer>
+				<key>tooltip</key>
+				<string>The timescale for exponential decay of the linear motors magnitude.</string>
+			</map>
+			<key>VEHICLE_LINEAR_MOTOR_DIRECTION</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>18</integer>
+				<key>tooltip</key>
+				<string>The direction and magnitude (in preferred frame) of the vehicles linear motor. The vehicle will accelerate (or decelerate if necessary) to match its velocity to its motor.
 			Range of magnitude = [0, 30] meters/second.</string>
-         </map>
-         <key>VEHICLE_LINEAR_MOTOR_OFFSET</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>20</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>VEHICLE_LINEAR_MOTOR_TIMESCALE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>30</integer>
-            <key>tooltip</key>
-            <string>The timescale for exponential approach to full linear motor velocity.</string>
-         </map>
-         <key>VEHICLE_REFERENCE_FRAME</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>44</integer>
-            <key>tooltip</key>
-            <string>A rotation of the vehicles preferred axes of motion and orientation (at, left, up) with respect to the vehicles local frame (x, y, z).</string>
-         </map>
-         <key>VEHICLE_TYPE_AIRPLANE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>4</integer>
-            <key>tooltip</key>
-            <string>Uses linear deflection for lift, no hover, and banking to turn.
+			</map>
+			<key>VEHICLE_LINEAR_MOTOR_OFFSET</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>20</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>VEHICLE_LINEAR_MOTOR_TIMESCALE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>30</integer>
+				<key>tooltip</key>
+				<string>The timescale for exponential approach to full linear motor velocity.</string>
+			</map>
+			<key>VEHICLE_REFERENCE_FRAME</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>44</integer>
+				<key>tooltip</key>
+				<string>A rotation of the vehicles preferred axes of motion and orientation (at, left, up) with respect to the vehicles local frame (x, y, z).</string>
+			</map>
+			<key>VEHICLE_TYPE_AIRPLANE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>4</integer>
+				<key>tooltip</key>
+				<string>Uses linear deflection for lift, no hover, and banking to turn.
 			// very little friction along forward-back axis
 			llSetVehicleVectorParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, &lt;200, 10, 5&gt; );
 			// uniform angular friction
@@ -5780,15 +5780,15 @@
 			| VEHICLE_FLAG_LIMIT_MOTOR_UP );
 			// set these flags
 			llSetVehicleFlags( VEHICLE_FLAG_LIMIT_ROLL_ONLY );</string>
-         </map>
-         <key>VEHICLE_TYPE_BALLOON</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>5</integer>
-            <key>tooltip</key>
-            <string>Hover, and friction, but no deflection.
+			</map>
+			<key>VEHICLE_TYPE_BALLOON</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>5</integer>
+				<key>tooltip</key>
+				<string>Hover, and friction, but no deflection.
 			// uniform linear friction
 			llSetVehicleFloatParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, 5 );
 			// uniform angular friction
@@ -5829,15 +5829,15 @@
 			| VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT
 			| VEHICLE_FLAG_HOVER_UP_ONLY
 			| VEHICLE_FLAG_LIMIT_MOTOR_UP );</string>
-         </map>
-         <key>VEHICLE_TYPE_BOAT</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string>Hovers over water with lots of friction and some anglar deflection.
+			</map>
+			<key>VEHICLE_TYPE_BOAT</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>3</integer>
+				<key>tooltip</key>
+				<string>Hovers over water with lots of friction and some anglar deflection.
 			// least for forward-back, most friction for up-down
 			llSetVehicleVectorParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, &lt;10, 3, 2&gt; );
 			// uniform angular friction (setting it as a scalar rather than a vector)
@@ -5879,15 +5879,15 @@
 			| VEHICLE_FLAG_HOVER_WATER_ONLY
 			| VEHICLE_FLAG_HOVER_UP_ONLY
 			| VEHICLE_FLAG_LIMIT_MOTOR_UP );</string>
-         </map>
-         <key>VEHICLE_TYPE_CAR</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>2</integer>
-            <key>tooltip</key>
-            <string>Another vehicle that bounces along the ground but needs
+			</map>
+			<key>VEHICLE_TYPE_CAR</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>2</integer>
+				<key>tooltip</key>
+				<string>Another vehicle that bounces along the ground but needs
 			the motors to be driven from external controls or
 			timer events.
 			// most friction for left-right, least for up-down
@@ -5931,24 +5931,24 @@
 			| VEHICLE_FLAG_LIMIT_ROLL_ONLY
 			| VEHICLE_FLAG_HOVER_UP_ONLY
 			| VEHICLE_FLAG_LIMIT_MOTOR_UP );</string>
-         </map>
-         <key>VEHICLE_TYPE_NONE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>VEHICLE_TYPE_SLED</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>1</integer>
-            <key>tooltip</key>
-            <string>Simple vehicle that bumps along the ground,
+			</map>
+			<key>VEHICLE_TYPE_NONE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>VEHICLE_TYPE_SLED</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>1</integer>
+				<key>tooltip</key>
+				<string>Simple vehicle that bumps along the ground,
 			and likes to move along its local x-axis.
 			// most friction for left-right, least for up-down
 			llSetVehicleVectorParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, &lt;30, 1, 1000&gt; );
@@ -5992,2365 +5992,2365 @@
 			llSetVehicleFlags( VEHICLE_FLAG_NO_DEFLECTION_UP
 			| VEHICLE_FLAG_LIMIT_ROLL_ONLY
 			| VEHICLE_FLAG_LIMIT_MOTOR_UP );</string>
-         </map>
-         <key>VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>36</integer>
-            <key>tooltip</key>
-            <string>A slider between minimum (0.0 = wobbly) and maximum (1.0 = firm as possible) stability of the vehicle to keep itself upright.</string>
-         </map>
-         <key>VEHICLE_VERTICAL_ATTRACTION_TIMESCALE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>37</integer>
-            <key>tooltip</key>
-            <string>The period of wobble, or timescale for exponential approach, of the vehicle to rotate such that its preferred "up" axis is oriented along the worlds "up" axis.</string>
-         </map>
-         <key>VERTICAL</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>WANDER_PAUSE_AT_WAYPOINTS</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>0</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>ZERO_ROTATION</key>
-         <map>
-            <key>type</key>
-            <string>rotation</string>
-            <key>value</key>
-            <array>
-               <map>
-                  <key>x</key>
-                  <real>0.0</real>
-               </map>
-               <map>
-                  <key>y</key>
-                  <real>0.0</real>
-               </map>
-               <map>
-                  <key>z</key>
-                  <real>0.0</real>
-               </map>
-               <map>
-                  <key>w</key>
-                  <real>1.0</real>
-               </map>
-            </array>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>ZERO_VECTOR</key>
-         <map>
-            <key>type</key>
-            <string>vector</string>
-            <key>value</key>
-            <array>
-               <map>
-                  <key>x</key>
-                  <real>0.0</real>
-               </map>
-               <map>
-                  <key>y</key>
-                  <real>0.0</real>
-               </map>
-               <map>
-                  <key>z</key>
-                  <real>0.0</real>
-               </map>
-            </array>
-            <key>tooltip</key>
-            <string/>
-         </map>
-      </map>
-      <key>events</key>
-      <map>
-         <key>at_rot_target</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>TargetNumber</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>TargetRotation</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>rotation</string>
-                  </map>
-               </map>
-               <map>
-                  <key>CurrentRotation</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>rotation</string>
-                  </map>
-               </map>
-            </array>
-            <key>tooltip</key>
-            <string>This event is triggered when a script comes within a defined angle of a target rotation. The range and rotation, are set by a call to llRotTarget.</string>
-         </map>
-         <key>at_target</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>TargetNumber</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>TargetPosition</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-               <map>
-                  <key>CurrentPosition</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-            </array>
-            <key>tooltip</key>
-            <string>This event is triggered when the scripted object comes within a defined range of the target position, defined by the llTarget function call.</string>
-         </map>
-         <key>attach</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>AvatarID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-            </array>
-            <key>tooltip</key>
-            <string>This event is triggered whenever an object is attached or detached from an avatar. If it is attached, the key of the avatar it is attached to is passed in, otherwise NULL_KEY is.</string>
-         </map>
-         <key>changed</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Changed</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>tooltip</key>
-            <string>Triggered when various events change the object. The change argument will be a bit-field of CHANGED_* constants.</string>
-         </map>
-         <key>collision</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>NumberOfCollisions</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>tooltip</key>
-            <string>This event is raised while another object, or avatar, is colliding with the object the script is attached to.
+			</map>
+			<key>VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>36</integer>
+				<key>tooltip</key>
+				<string>A slider between minimum (0.0 = wobbly) and maximum (1.0 = firm as possible) stability of the vehicle to keep itself upright.</string>
+			</map>
+			<key>VEHICLE_VERTICAL_ATTRACTION_TIMESCALE</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>37</integer>
+				<key>tooltip</key>
+				<string>The period of wobble, or timescale for exponential approach, of the vehicle to rotate such that its preferred "up" axis is oriented along the worlds "up" axis.</string>
+			</map>
+			<key>VERTICAL</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>WANDER_PAUSE_AT_WAYPOINTS</key>
+			<map>
+				<key>type</key>
+				<string>integer</string>
+				<key>value</key>
+				<integer>0</integer>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>ZERO_ROTATION</key>
+			<map>
+				<key>type</key>
+				<string>rotation</string>
+				<key>value</key>
+				<array>
+					<map>
+						<key>x</key>
+						<real>0.0</real>
+					</map>
+					<map>
+						<key>y</key>
+						<real>0.0</real>
+					</map>
+					<map>
+						<key>z</key>
+						<real>0.0</real>
+					</map>
+					<map>
+						<key>w</key>
+						<real>1.0</real>
+					</map>
+				</array>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>ZERO_VECTOR</key>
+			<map>
+				<key>type</key>
+				<string>vector</string>
+				<key>value</key>
+				<array>
+					<map>
+						<key>x</key>
+						<real>0.0</real>
+					</map>
+					<map>
+						<key>y</key>
+						<real>0.0</real>
+					</map>
+					<map>
+						<key>z</key>
+						<real>0.0</real>
+					</map>
+				</array>
+				<key>tooltip</key>
+				<string/>
+			</map>
+		</map>
+		<key>events</key>
+		<map>
+			<key>at_rot_target</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>TargetNumber</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>TargetRotation</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>rotation</string>
+						</map>
+					</map>
+					<map>
+						<key>CurrentRotation</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>rotation</string>
+						</map>
+					</map>
+				</array>
+				<key>tooltip</key>
+				<string>This event is triggered when a script comes within a defined angle of a target rotation. The range and rotation, are set by a call to llRotTarget.</string>
+			</map>
+			<key>at_target</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>TargetNumber</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>TargetPosition</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+					<map>
+						<key>CurrentPosition</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+				</array>
+				<key>tooltip</key>
+				<string>This event is triggered when the scripted object comes within a defined range of the target position, defined by the llTarget function call.</string>
+			</map>
+			<key>attach</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>AvatarID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+				</array>
+				<key>tooltip</key>
+				<string>This event is triggered whenever an object is attached or detached from an avatar. If it is attached, the key of the avatar it is attached to is passed in, otherwise NULL_KEY is.</string>
+			</map>
+			<key>changed</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Changed</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>tooltip</key>
+				<string>Triggered when various events change the object. The change argument will be a bit-field of CHANGED_* constants.</string>
+			</map>
+			<key>collision</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>NumberOfCollisions</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>tooltip</key>
+				<string>This event is raised while another object, or avatar, is colliding with the object the script is attached to.
 			The number of detected objects is passed to the script. Information on those objects may be gathered via the llDetected* functions.</string>
-         </map>
-         <key>collision_end</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>NumberOfCollisions</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>tooltip</key>
-            <string>This event is raised when another object, or avatar, stops colliding with the object the script is attached to.
+			</map>
+			<key>collision_end</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>NumberOfCollisions</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>tooltip</key>
+				<string>This event is raised when another object, or avatar, stops colliding with the object the script is attached to.
 			The number of detected objects is passed to the script. Information on those objects may be gathered via the llDetected* library functions.</string>
-         </map>
-         <key>collision_start</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>NumberOfCollisions</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>tooltip</key>
-            <string>This event is raised when another object, or avatar, starts colliding with the object the script is attached to.
+			</map>
+			<key>collision_start</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>NumberOfCollisions</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>tooltip</key>
+				<string>This event is raised when another object, or avatar, starts colliding with the object the script is attached to.
 			The number of detected objects is passed to the script. Information on those objects may be gathered via the llDetected* library functions.</string>
-         </map>
-         <key>control</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>AvatarID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Levels</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Edges</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>tooltip</key>
-            <string>Once a script has the ability to grab control inputs from the avatar, this event will be used to pass the commands into the script.
+			</map>
+			<key>control</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>AvatarID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+					<map>
+						<key>Levels</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>Edges</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>tooltip</key>
+				<string>Once a script has the ability to grab control inputs from the avatar, this event will be used to pass the commands into the script.
 			The levels and edges are bit-fields of control constants.</string>
-         </map>
-         <key>dataserver</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>RequestID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Data</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-            </array>
-            <key>tooltip</key>
-            <string>This event is triggered when the requested data is returned to the script.
+			</map>
+			<key>dataserver</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>RequestID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+					<map>
+						<key>Data</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+				</array>
+				<key>tooltip</key>
+				<string>This event is triggered when the requested data is returned to the script.
 			Data may be requested by the llRequestAgentData, llRequestInventoryData, and llGetNotecardLine function calls, for example.</string>
-         </map>
-         <key>email</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Time</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Address</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Subject</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Body</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>NumberRemaining</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>tooltip</key>
-            <string>This event is triggered when an email sent to this script arrives.
+			</map>
+			<key>email</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Time</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>Address</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>Subject</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>Body</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>NumberRemaining</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>tooltip</key>
+				<string>This event is triggered when an email sent to this script arrives.
 			The number remaining tells how many more emails are known to be still pending.</string>
-         </map>
-         <key>http_request</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>HTTPRequestID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-               <map>
-                  <key>HTTPMethod</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Body</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-            </array>
-            <key>tooltip</key>
-            <string>Triggered when task receives an HTTP request.</string>
-         </map>
-         <key>http_response</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>HTTPRequestID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Status</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Metadata</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Body</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-            </array>
-            <key>tooltip</key>
-            <string>This event handler is invoked when an HTTP response is received for a pending llHTTPRequest request or if a pending request fails or times out.</string>
-         </map>
-         <key>land_collision</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Position</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-            </array>
-            <key>tooltip</key>
-            <string>This event is raised when the object the script is attached to is colliding with the ground.</string>
-         </map>
-         <key>land_collision_end</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Position</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-            </array>
-            <key>tooltip</key>
-            <string>This event is raised when the object the script is attached to stops colliding with the ground.</string>
-         </map>
-         <key>land_collision_start</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Position</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-            </array>
-            <key>tooltip</key>
-            <string>This event is raised when the object the script is attached to begins to collide with the ground.</string>
-         </map>
-         <key>link_message</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>SendersLink</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Value</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Text</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>ID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-            </array>
-            <key>tooltip</key>
-            <string>Triggered when object receives a link message via llMessageLinked function call.</string>
-         </map>
-         <key>listen</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Channel</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Name</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>ID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Text</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-            </array>
-            <key>tooltip</key>
-            <string>This event is raised whenever a chat message matching the constraints set in the llListen command is received. The name and ID of the speaker, as well as the message, are passed in as parameters.
+			</map>
+			<key>http_request</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>HTTPRequestID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+					<map>
+						<key>HTTPMethod</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>Body</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+				</array>
+				<key>tooltip</key>
+				<string>Triggered when task receives an HTTP request.</string>
+			</map>
+			<key>http_response</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>HTTPRequestID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+					<map>
+						<key>Status</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>Metadata</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+					<map>
+						<key>Body</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+				</array>
+				<key>tooltip</key>
+				<string>This event handler is invoked when an HTTP response is received for a pending llHTTPRequest request or if a pending request fails or times out.</string>
+			</map>
+			<key>land_collision</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Position</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+				</array>
+				<key>tooltip</key>
+				<string>This event is raised when the object the script is attached to is colliding with the ground.</string>
+			</map>
+			<key>land_collision_end</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Position</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+				</array>
+				<key>tooltip</key>
+				<string>This event is raised when the object the script is attached to stops colliding with the ground.</string>
+			</map>
+			<key>land_collision_start</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Position</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+				</array>
+				<key>tooltip</key>
+				<string>This event is raised when the object the script is attached to begins to collide with the ground.</string>
+			</map>
+			<key>link_message</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>SendersLink</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>Value</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>Text</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>ID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+				</array>
+				<key>tooltip</key>
+				<string>Triggered when object receives a link message via llMessageLinked function call.</string>
+			</map>
+			<key>listen</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Channel</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>Name</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>ID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+					<map>
+						<key>Text</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+				</array>
+				<key>tooltip</key>
+				<string>This event is raised whenever a chat message matching the constraints set in the llListen command is received. The name and ID of the speaker, as well as the message, are passed in as parameters.
 			Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 through 2,147,483,648 are private channels that are not sent to avatars but other scripts can listen on those channels.</string>
-         </map>
-         <key>money</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Payer</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Amount</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>tooltip</key>
-            <string>This event is triggered when a resident has given an amount of Linden dollars to the object.</string>
-         </map>
-         <key>moving_end</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Triggered whenever an object with this script stops moving.</string>
-         </map>
-         <key>moving_start</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>Triggered whenever an object with this script starts moving.</string>
-         </map>
-         <key>no_sensor</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>This event is raised when sensors are active, via the llSensor function call, but are not sensing anything.</string>
-         </map>
-         <key>not_at_rot_target</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>When a target is set via the llRotTarget function call, but the script is outside the specified angle this event is raised.</string>
-         </map>
-         <key>not_at_target</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>When a target is set via the llTarget library call, but the script is outside the specified range this event is raised.</string>
-         </map>
-         <key>object_rez</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>RezzedObjectsID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-            </array>
-            <key>tooltip</key>
-            <string>Triggered when an object rezzes another object from its inventory via the llRezObject, or similar, functions. The id is the globally unique key for the object rezzed.</string>
-         </map>
-         <key>on_rez</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>StartParameter</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>tooltip</key>
-            <string>Triggered whenever an object is rezzed from inventory or by another object. The start parameter is passed in from the llRezObject call, or zero if from inventory.</string>
-         </map>
-         <key>path_update</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Type</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Reserved</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-            </array>
-            <key>tooltip</key>
-            <string>This event is called to inform the script of changes within the object's path-finding status.</string>
-         </map>
-         <key>remote_data</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>EventType</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>ChannelID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-               <map>
-                  <key>MessageID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Sender</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Data</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Data</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-            </array>
-            <key>tooltip</key>
-            <string>Triggered by various XML-RPC calls with event_type specifying the type of data.</string>
-         </map>
-         <key>run_time_permissions</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>PermissionFlags</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>tooltip</key>
-            <string>Scripts need permission from either the owner or the avatar they wish to act on before they may perform certain functions, such as debiting money from their owners account, triggering an animation on an avatar, or capturing control inputs. The llRequestPermissions library function is used to request these permissions and the various permissions integer constants can be supplied.
+			</map>
+			<key>money</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Payer</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+					<map>
+						<key>Amount</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>tooltip</key>
+				<string>This event is triggered when a resident has given an amount of Linden dollars to the object.</string>
+			</map>
+			<key>moving_end</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>tooltip</key>
+				<string>Triggered whenever an object with this script stops moving.</string>
+			</map>
+			<key>moving_start</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>tooltip</key>
+				<string>Triggered whenever an object with this script starts moving.</string>
+			</map>
+			<key>no_sensor</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>tooltip</key>
+				<string>This event is raised when sensors are active, via the llSensor function call, but are not sensing anything.</string>
+			</map>
+			<key>not_at_rot_target</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>tooltip</key>
+				<string>When a target is set via the llRotTarget function call, but the script is outside the specified angle this event is raised.</string>
+			</map>
+			<key>not_at_target</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>tooltip</key>
+				<string>When a target is set via the llTarget library call, but the script is outside the specified range this event is raised.</string>
+			</map>
+			<key>object_rez</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>RezzedObjectsID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+				</array>
+				<key>tooltip</key>
+				<string>Triggered when an object rezzes another object from its inventory via the llRezObject, or similar, functions. The id is the globally unique key for the object rezzed.</string>
+			</map>
+			<key>on_rez</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>StartParameter</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>tooltip</key>
+				<string>Triggered whenever an object is rezzed from inventory or by another object. The start parameter is passed in from the llRezObject call, or zero if from inventory.</string>
+			</map>
+			<key>path_update</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Type</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>Reserved</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+				</array>
+				<key>tooltip</key>
+				<string>This event is called to inform the script of changes within the object's path-finding status.</string>
+			</map>
+			<key>remote_data</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>EventType</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>ChannelID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+					<map>
+						<key>MessageID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+					<map>
+						<key>Sender</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>Data</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>Data</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+				</array>
+				<key>tooltip</key>
+				<string>Triggered by various XML-RPC calls with event_type specifying the type of data.</string>
+			</map>
+			<key>run_time_permissions</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>PermissionFlags</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>tooltip</key>
+				<string>Scripts need permission from either the owner or the avatar they wish to act on before they may perform certain functions, such as debiting money from their owners account, triggering an animation on an avatar, or capturing control inputs. The llRequestPermissions library function is used to request these permissions and the various permissions integer constants can be supplied.
 			The integer returned to this event handler contains the current set of permissions flags, so if permissions equal 0 then no permissions are set.</string>
-         </map>
-         <key>sensor</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>NumberDetected</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>tooltip</key>
-            <string>This event is raised whenever objects matching the constraints of the llSensor command are detected.
+			</map>
+			<key>sensor</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>NumberDetected</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>tooltip</key>
+				<string>This event is raised whenever objects matching the constraints of the llSensor command are detected.
 			The number of detected objects is passed to the script in the parameter. Information on those objects may be gathered via the llDetected* functions.</string>
-         </map>
-         <key>state_entry</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>The state_entry event occurs whenever a new state is entered, including at program start, and is always the first event handled.</string>
-         </map>
-         <key>state_exit</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>The state_exit event occurs whenever the state command is used to transition to another state. It is handled before the new states state_entry event.</string>
-         </map>
-         <key>timer</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>tooltip</key>
-            <string>This event is raised at regular intervals set by the llSetTimerEvent library function.</string>
-         </map>
-         <key>touch</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>NumberOfTouches</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>tooltip</key>
-            <string>This event is raised while a user is touching the object the script is attached to.
+			</map>
+			<key>state_entry</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>tooltip</key>
+				<string>The state_entry event occurs whenever a new state is entered, including at program start, and is always the first event handled.</string>
+			</map>
+			<key>state_exit</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>tooltip</key>
+				<string>The state_exit event occurs whenever the state command is used to transition to another state. It is handled before the new states state_entry event.</string>
+			</map>
+			<key>timer</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>tooltip</key>
+				<string>This event is raised at regular intervals set by the llSetTimerEvent library function.</string>
+			</map>
+			<key>touch</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>NumberOfTouches</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>tooltip</key>
+				<string>This event is raised while a user is touching the object the script is attached to.
 			The number of touching objects is passed to the script in the parameter.
 			Information on those objects may be gathered via the llDetected* library functions.</string>
-         </map>
-         <key>touch_end</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>NumberOfTouches</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>tooltip</key>
-            <string>This event is raised when a user stops touching the object the script is attached to. The number of touches is passed to the script in the parameter.
+			</map>
+			<key>touch_end</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>NumberOfTouches</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>tooltip</key>
+				<string>This event is raised when a user stops touching the object the script is attached to. The number of touches is passed to the script in the parameter.
 			Information on those objects may be gathered via the llDetected* library functions.</string>
-         </map>
-         <key>touch_start</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>NumberOfTouches</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>tooltip</key>
-            <string>This event is raised when a user first touches the object the script is attached to. The number of touches is passed to the script in the parameter.
+			</map>
+			<key>touch_start</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>NumberOfTouches</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>tooltip</key>
+				<string>This event is raised when a user first touches the object the script is attached to. The number of touches is passed to the script in the parameter.
 			Information on those objects may be gathered via the llDetected() library functions.</string>
-         </map>
-         <key>transaction_result</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>RequestID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Success</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Message</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-            </array>
-            <key>tooltip</key>
-            <string>Triggered by llTransferMoney() function.</string>
-         </map>
-      </map>
-      <key>functions</key>
-      <map>
-         <key>llAbs</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Value</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the absolute (positive) version of Value.</string>
-         </map>
-         <key>llAcos</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Value</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the arc-cosine of Value, in radians.</string>
-         </map>
-         <key>llAddToLandBanList</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>ID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Hours</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Add avatar ID to the parcel ban list for the specified number of Hours.\nA value of 0 for Hours will add the agent indefinitely.\nThe smallest value that Hours will accept is 0.01; anything smaller will be seen as 0.\nWhen values that small are used, it seems the function bans in approximately 30 second increments (Probably 36 second increments, as 0.01 of an hour is 36 seconds).\nResidents teleporting to a parcel where they are banned will be redirected to a neighbouring parcel.</string>
-         </map>
-         <key>llAddToLandPassList</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>ID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Hours</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.1</real>
-            <key>tooltip</key>
-            <string>Add avatar ID to the land pass list, for a duration of Hours.</string>
-         </map>
-         <key>llAdjustSoundVolume</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Volume</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.1</real>
-            <key>tooltip</key>
-            <string>Adjusts the volume (0.0 - 1.0) of the currently playing attached sound started with llPlaySound or llLoopSound.\nAdjusts the volume of the currently playing attached sound started with llPlaySound or llLoopSound.\nThis function has no effect on sounds started with llTriggerSound.</string>
-         </map>
-         <key>llAllowInventoryDrop</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Flag</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>If Flag == TRUE, users without object modify permissions can still drop inventory items into the object.</string>
-         </map>
-         <key>llAngleBetween</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Rot1</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>rotation</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Rot2</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>rotation</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the angle, in radians, between rotations Rot1 and Rot2.</string>
-         </map>
-         <key>llApplyImpulse</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Force</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Local</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Applies impulse to the object.\nApplies the Force in local coordinates if Local == TRUE. Otherwise the Force is applied in global coordinates.\nThis function only works on physical objects.</string>
-         </map>
-         <key>llApplyRotationalImpulse</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Force</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Local</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Applies rotational impulse to the object,\nThe force is in local coordinates, if Local == TRUE, otherwise the impulse is applied in global coordinates.\nThis function only works on physical objects.</string>
-         </map>
-         <key>llAsin</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Value</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the arc-sine, in radians, of Value.</string>
-         </map>
-         <key>llAtan2</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>y</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-               <map>
-                  <key>x</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the arc-tangent2 of y, x.</string>
-         </map>
-         <key>llAttachToAvatar</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>AttachmentPoint</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Attach to avatar at point AttachmentPoint, if task has permissions to do so.\nAttach to avatar at point iAttachmentPoint.\nRequires the PERMISSION_ATTACH runtime permission.</string>
-         </map>
-         <key>llAttachToAvatarTemp</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>AttachPoint</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0</real>
-            <key>tooltip</key>
-            <string>Follows the same convention as llAttachToAvatar, with the exception that the object will not create new inventory for the user, and will disappear on detach or disconnect.</string>
-         </map>
-         <key>llAvatarOnLinkSitTarget</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>LinkNumber</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>If an avatar is sitting on the link's sit target, return the avatar's key, NULL_KEY otherwise.\nReturns a key that is the UUID of the user seated on the specified link's prim.</string>
-         </map>
-         <key>llAvatarOnSitTarget</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>If an avatar is seated on the sit target, returns the avatar's key, otherwise NULL_KEY.\nThis only will detect avatars sitting on sit targets defined with llSitTarget.</string>
-         </map>
-         <key>llAxes2Rot</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Forward</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Left</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Up</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>rotation</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the rotation represented by coordinate axes Forward, Left, and Up.</string>
-         </map>
-         <key>llAxisAngle2Rot</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Axis</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Angle</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>rotation</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the rotation that is a generated Angle about Axis.</string>
-         </map>
-         <key>llBase64ToInteger</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Text</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns an integer that is the Text, Base64 decoded as a big endian integer.\nReturns zero if Text is longer then 8 characters. If Text contains fewer then 6 characters, the return value is unpredictable.</string>
-         </map>
-         <key>llBase64ToString</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Text</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Converts a Base64 string to a conventional string.\nIf the conversion creates any unprintable characters, they are converted to question marks.</string>
-         </map>
-         <key>llBreakAllLinks</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>De-links all prims in the link set (requires permission PERMISSION_CHANGE_LINKS be set).</string>
-         </map>
-         <key>llBreakLink</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>LinkNumber</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>De-links the prim with the given link number (requires permission PERMISSION_CHANGE_LINKS be set).</string>
-         </map>
-         <key>llCastRay</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Start</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-               <map>
-                  <key>End</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Options</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real/>
-            <key>return</key>
-            <string>list</string>
-            <key>sleep</key>
-            <real/>
-            <key>tooltip</key>
-            <string>Casts a ray into the physics world from 'start' to 'end' and returns data according to details in Options.\nReports collision data for intersections with objects.\nReturn value: [UUID_1, {link_number_1}, hit_position_1, {hit_normal_1}, UUID_2, {link_number_2}, hit_position_2, {hit_normal_2}, ... , status_code] where {} indicates optional data.</string>
-         </map>
-         <key>llCeil</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Value</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns smallest integer value &gt;= Value.</string>
-         </map>
-         <key>llClearCameraParams</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Resets all camera parameters to default values and turns off scripted camera control.</string>
-         </map>
-         <key>llClearLinkMedia</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Link</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Face</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Clears (deletes) the media and all parameters from the given Face on the linked prim.\nReturns an integer that is a STATUS_* flag, which details the success/failure of the operation.</string>
-         </map>
-         <key>llClearPrimMedia</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Face</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>sleep</key>
-            <real>0.1</real>
-            <key>tooltip</key>
-            <string>Clears (deletes) the media and all parameters from the given Face.\nReturns an integer that is a STATUS_* flag which details the success/failure of the operation.</string>
-         </map>
-         <key>llCloseRemoteDataChannel</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>ChannelID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>1.0</real>
-            <key>tooltip</key>
-            <string>Closes the specified XML-RPC channel.</string>
-         </map>
-         <key>llCloud</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Offset</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the cloud density at the object's position + Offset.</string>
-         </map>
-         <key>llCollisionFilter</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>ObjectName</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>ObjectID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Accept</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>If Accept == TRUE, only accept collisions with objects Name and ID, otherwise with objects not Name or ID.\nSpecify an empty string or NULL_KEY to not filter on the corresponding parameter.</string>
-         </map>
-         <key>llCollisionSound</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>ImpactSound</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>ImpactVolume</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Suppress default collision sounds, replace default impact sounds with ImpactSound.\nThe ImpactSound must be in the object inventory.\nSupply an empty string to suppress collision sounds.</string>
-         </map>
-         <key>llCollisionSprite</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>ImpactSprite</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Suppress default collision sprites, replace default impact sprite with ImpactSprite; found in the object inventory (empty string to just suppress).</string>
-         </map>
-         <key>llCos</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Theta</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the cosine of Theta (Theta in radians).</string>
-         </map>
-         <key>llCreateCharacter</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Options</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real/>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real/>
-            <key>tooltip</key>
-            <string>Convert link-set to AI/Physics character.\nCreates a path-finding entity, known as a "character", from the object containing the script. Required to activate use of path-finding functions.\nOptions is a list of key/value pairs.</string>
-         </map>
-         <key>llCreateLink</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>TargetPrim</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Parent</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>1.0</real>
-            <key>tooltip</key>
-            <string>Attempt to link the object the script is in, to target (requires permission PERMISSION_CHANGE_LINKS be set).\nIf parent == TRUE, the object the script is attached to is the root.\nRequires permission PERMISSION_CHANGE_LINKS be set.</string>
-         </map>
-         <key>llCSV2List</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Text</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>list</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Create a list from a string of comma separated values specified in Text.</string>
-         </map>
-         <key>llDeleteCharacter</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real/>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real/>
-            <key>tooltip</key>
-            <string>Convert link-set from AI/Physics character to Physics object.\nConvert the current link-set back to a standard object, removing all path-finding properties.</string>
-         </map>
-         <key>llDeleteSubList</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Source</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Start</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>End</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>list</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Removes the slice from start to end and returns the remainder of the list.\nRemove a slice from the list and return the remainder, start and end are inclusive.\nUsing negative numbers for start and/or end causes the index to count backwards from the length of the list, so 0, -1 would delete the entire list.\nIf Start is larger than End the list deleted is the exclusion of the entries; so 6, 4 would delete the entire list except for the 5th. list entry.</string>
-         </map>
-         <key>llDeleteSubString</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Source</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Start</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>End</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Removes the indicated sub-string and returns the result.\nStart and End are inclusive.\nUsing negative numbers for Start and/or End causes the index to count backwards from the length of the string, so 0, -1 would delete the entire string.\nIf Start is larger than End, the sub-string is the exclusion of the entries; so 6, 4 would delete the entire string except for the 5th. character.</string>
-         </map>
-         <key>llDetachFromAvatar</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Remove the object containing the script from the avatar.</string>
-         </map>
-         <key>llDetectedGrab</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Number</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the grab offset of a user touching the object.\nReturns &lt;0.0, 0.0, 0.0&gt; if Number is not a valid object.</string>
-         </map>
-         <key>llDetectedGroup</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Number</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns TRUE if detected object or agent Number has the same user group active as this object.\nIt will return FALSE if the object or agent is in the group, but the group is not active.</string>
-         </map>
-         <key>llDetectedKey</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Number</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the key of detected object or avatar number.\nReturns NULL_KEY if Number is not a valid index.</string>
-         </map>
-         <key>llDetectedLinkNumber</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Number</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the link position of the triggered event for touches and collisions only.\n0 for a non-linked object, 1 for the root of a linked object, 2 for the first child, etc.</string>
-         </map>
-         <key>llDetectedName</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Number</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the name of detected object or avatar number.\nReturns the name of detected object number.\nReturns empty string if Number is not a valid index.</string>
-         </map>
-         <key>llDetectedOwner</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Number</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the key of detected object's owner.\nReturns invalid key if Number is not a valid index.</string>
-         </map>
-         <key>llDetectedPos</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Number</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the position of detected object or avatar number.\nReturns &lt;0.0, 0.0, 0.0&gt; if Number is not a valid index.</string>
-         </map>
-         <key>llDetectedRot</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Number</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>rotation</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the rotation of detected object or avatar number.\nReturns &lt;0.0, 0.0, 0.0, 1.0&gt; if Number is not a valid offset.</string>
-         </map>
-         <key>llDetectedTouchBinormal</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Index</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the surface bi-normal for a triggered touch event.\nReturns a vector that is the surface bi-normal (tangent to the surface) where the touch event was triggered.</string>
-         </map>
-         <key>llDetectedTouchFace</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Index</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the index of the face where the avatar clicked in a triggered touch event.</string>
-         </map>
-         <key>llDetectedTouchNormal</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Index</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the surface normal for a triggered touch event.\nReturns a vector that is the surface normal (perpendicular to the surface) where the touch event was triggered.</string>
-         </map>
-         <key>llDetectedTouchPos</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Index</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the position, in region coordinates, where the object was touched in a triggered touch event.\nUnless it is a HUD, in which case it returns the position relative to the attach point.</string>
-         </map>
-         <key>llDetectedTouchST</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Index</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns a vector that is the surface coordinates where the prim was touched.\nThe X and Y vector positions contain the horizontal (S) and vertical (T) face coordinates respectively.\nEach component is in the interval [0.0, 1.0].\nTOUCH_INVALID_TEXCOORD is returned if the surface coordinates cannot be determined (e.g. when the viewer does not support this function).</string>
-         </map>
-         <key>llDetectedTouchUV</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Index</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns a vector that is the texture coordinates for where the prim was touched.\nThe X and Y vector positions contain the U and V face coordinates respectively.\nTOUCH_INVALID_TEXCOORD is returned if the touch UV coordinates cannot be determined (e.g. when the viewer does not support this function).</string>
-         </map>
-         <key>llDetectedType</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Number</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the type (AGENT, ACTIVE, PASSIVE, SCRIPTED) of detected object.\nReturns 0 if number is not a valid index.\nNote that number is a bit-field, so comparisons need to be a bitwise checked. e.g.:\ninteger iType = llDetectedType(0);\n{\n	// ...do stuff with the agent\n}</string>
-         </map>
-         <key>llDetectedVel</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Number</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the velocity of the detected object Number.\nReturns&lt;0.0, 0.0, 0.0&gt; if Number is not a valid offset.</string>
-         </map>
-         <key>llDialog</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>AvatarID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Text</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Buttons</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Channel</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.1</real>
-            <key>tooltip</key>
-            <string>Shows a dialog box on the avatar's screen with the message.\n
+			</map>
+			<key>transaction_result</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>RequestID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+					<map>
+						<key>Success</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>Message</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+				</array>
+				<key>tooltip</key>
+				<string>Triggered by llTransferMoney() function.</string>
+			</map>
+		</map>
+		<key>functions</key>
+		<map>
+			<key>llAbs</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Value</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>integer</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the absolute (positive) version of Value.</string>
+			</map>
+			<key>llAcos</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Value</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>float</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the arc-cosine of Value, in radians.</string>
+			</map>
+			<key>llAddToLandBanList</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>ID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+					<map>
+						<key>Hours</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Add avatar ID to the parcel ban list for the specified number of Hours.\nA value of 0 for Hours will add the agent indefinitely.\nThe smallest value that Hours will accept is 0.01; anything smaller will be seen as 0.\nWhen values that small are used, it seems the function bans in approximately 30 second increments (Probably 36 second increments, as 0.01 of an hour is 36 seconds).\nResidents teleporting to a parcel where they are banned will be redirected to a neighbouring parcel.</string>
+			</map>
+			<key>llAddToLandPassList</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>ID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+					<map>
+						<key>Hours</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.1</real>
+				<key>tooltip</key>
+				<string>Add avatar ID to the land pass list, for a duration of Hours.</string>
+			</map>
+			<key>llAdjustSoundVolume</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Volume</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.1</real>
+				<key>tooltip</key>
+				<string>Adjusts the volume (0.0 - 1.0) of the currently playing attached sound started with llPlaySound or llLoopSound.\nAdjusts the volume of the currently playing attached sound started with llPlaySound or llLoopSound.\nThis function has no effect on sounds started with llTriggerSound.</string>
+			</map>
+			<key>llAllowInventoryDrop</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Flag</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>If Flag == TRUE, users without object modify permissions can still drop inventory items into the object.</string>
+			</map>
+			<key>llAngleBetween</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Rot1</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>rotation</string>
+						</map>
+					</map>
+					<map>
+						<key>Rot2</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>rotation</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>float</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the angle, in radians, between rotations Rot1 and Rot2.</string>
+			</map>
+			<key>llApplyImpulse</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Force</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+					<map>
+						<key>Local</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Applies impulse to the object.\nApplies the Force in local coordinates if Local == TRUE. Otherwise the Force is applied in global coordinates.\nThis function only works on physical objects.</string>
+			</map>
+			<key>llApplyRotationalImpulse</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Force</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+					<map>
+						<key>Local</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Applies rotational impulse to the object,\nThe force is in local coordinates, if Local == TRUE, otherwise the impulse is applied in global coordinates.\nThis function only works on physical objects.</string>
+			</map>
+			<key>llAsin</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Value</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>float</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the arc-sine, in radians, of Value.</string>
+			</map>
+			<key>llAtan2</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>y</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+					<map>
+						<key>x</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>float</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the arc-tangent2 of y, x.</string>
+			</map>
+			<key>llAttachToAvatar</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>AttachmentPoint</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Attach to avatar at point AttachmentPoint, if task has permissions to do so.\nAttach to avatar at point iAttachmentPoint.\nRequires the PERMISSION_ATTACH runtime permission.</string>
+			</map>
+			<key>llAttachToAvatarTemp</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>AttachPoint</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0</real>
+				<key>tooltip</key>
+				<string>Follows the same convention as llAttachToAvatar, with the exception that the object will not create new inventory for the user, and will disappear on detach or disconnect.</string>
+			</map>
+			<key>llAvatarOnLinkSitTarget</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>LinkNumber</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>key</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>If an avatar is sitting on the link's sit target, return the avatar's key, NULL_KEY otherwise.\nReturns a key that is the UUID of the user seated on the specified link's prim.</string>
+			</map>
+			<key>llAvatarOnSitTarget</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>key</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>If an avatar is seated on the sit target, returns the avatar's key, otherwise NULL_KEY.\nThis only will detect avatars sitting on sit targets defined with llSitTarget.</string>
+			</map>
+			<key>llAxes2Rot</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Forward</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+					<map>
+						<key>Left</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+					<map>
+						<key>Up</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>rotation</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the rotation represented by coordinate axes Forward, Left, and Up.</string>
+			</map>
+			<key>llAxisAngle2Rot</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Axis</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+					<map>
+						<key>Angle</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>rotation</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the rotation that is a generated Angle about Axis.</string>
+			</map>
+			<key>llBase64ToInteger</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Text</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>integer</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns an integer that is the Text, Base64 decoded as a big endian integer.\nReturns zero if Text is longer then 8 characters. If Text contains fewer then 6 characters, the return value is unpredictable.</string>
+			</map>
+			<key>llBase64ToString</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Text</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>string</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Converts a Base64 string to a conventional string.\nIf the conversion creates any unprintable characters, they are converted to question marks.</string>
+			</map>
+			<key>llBreakAllLinks</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>De-links all prims in the link set (requires permission PERMISSION_CHANGE_LINKS be set).</string>
+			</map>
+			<key>llBreakLink</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>LinkNumber</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>De-links the prim with the given link number (requires permission PERMISSION_CHANGE_LINKS be set).</string>
+			</map>
+			<key>llCastRay</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Start</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+					<map>
+						<key>End</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+					<map>
+						<key>Options</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real/>
+				<key>return</key>
+				<string>list</string>
+				<key>sleep</key>
+				<real/>
+				<key>tooltip</key>
+				<string>Casts a ray into the physics world from 'start' to 'end' and returns data according to details in Options.\nReports collision data for intersections with objects.\nReturn value: [UUID_1, {link_number_1}, hit_position_1, {hit_normal_1}, UUID_2, {link_number_2}, hit_position_2, {hit_normal_2}, ... , status_code] where {} indicates optional data.</string>
+			</map>
+			<key>llCeil</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Value</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>integer</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns smallest integer value &gt;= Value.</string>
+			</map>
+			<key>llClearCameraParams</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Resets all camera parameters to default values and turns off scripted camera control.</string>
+			</map>
+			<key>llClearLinkMedia</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Link</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>Face</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>0.0</real>
+				<key>return</key>
+				<string>integer</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Clears (deletes) the media and all parameters from the given Face on the linked prim.\nReturns an integer that is a STATUS_* flag, which details the success/failure of the operation.</string>
+			</map>
+			<key>llClearPrimMedia</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Face</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>integer</string>
+				<key>sleep</key>
+				<real>0.1</real>
+				<key>tooltip</key>
+				<string>Clears (deletes) the media and all parameters from the given Face.\nReturns an integer that is a STATUS_* flag which details the success/failure of the operation.</string>
+			</map>
+			<key>llCloseRemoteDataChannel</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>ChannelID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>1.0</real>
+				<key>tooltip</key>
+				<string>Closes the specified XML-RPC channel.</string>
+			</map>
+			<key>llCloud</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Offset</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>float</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the cloud density at the object's position + Offset.</string>
+			</map>
+			<key>llCollisionFilter</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>ObjectName</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>ObjectID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+					<map>
+						<key>Accept</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>If Accept == TRUE, only accept collisions with objects Name and ID, otherwise with objects not Name or ID.\nSpecify an empty string or NULL_KEY to not filter on the corresponding parameter.</string>
+			</map>
+			<key>llCollisionSound</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>ImpactSound</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>ImpactVolume</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Suppress default collision sounds, replace default impact sounds with ImpactSound.\nThe ImpactSound must be in the object inventory.\nSupply an empty string to suppress collision sounds.</string>
+			</map>
+			<key>llCollisionSprite</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>ImpactSprite</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Suppress default collision sprites, replace default impact sprite with ImpactSprite; found in the object inventory (empty string to just suppress).</string>
+			</map>
+			<key>llCos</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Theta</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>float</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the cosine of Theta (Theta in radians).</string>
+			</map>
+			<key>llCreateCharacter</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Options</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real/>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real/>
+				<key>tooltip</key>
+				<string>Convert link-set to AI/Physics character.\nCreates a path-finding entity, known as a "character", from the object containing the script. Required to activate use of path-finding functions.\nOptions is a list of key/value pairs.</string>
+			</map>
+			<key>llCreateLink</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>TargetPrim</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+					<map>
+						<key>Parent</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>1.0</real>
+				<key>tooltip</key>
+				<string>Attempt to link the object the script is in, to target (requires permission PERMISSION_CHANGE_LINKS be set).\nIf parent == TRUE, the object the script is attached to is the root.\nRequires permission PERMISSION_CHANGE_LINKS be set.</string>
+			</map>
+			<key>llCSV2List</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Text</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>list</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Create a list from a string of comma separated values specified in Text.</string>
+			</map>
+			<key>llDeleteCharacter</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real/>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real/>
+				<key>tooltip</key>
+				<string>Convert link-set from AI/Physics character to Physics object.\nConvert the current link-set back to a standard object, removing all path-finding properties.</string>
+			</map>
+			<key>llDeleteSubList</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Source</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+					<map>
+						<key>Start</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>End</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>list</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Removes the slice from start to end and returns the remainder of the list.\nRemove a slice from the list and return the remainder, start and end are inclusive.\nUsing negative numbers for start and/or end causes the index to count backwards from the length of the list, so 0, -1 would delete the entire list.\nIf Start is larger than End the list deleted is the exclusion of the entries; so 6, 4 would delete the entire list except for the 5th. list entry.</string>
+			</map>
+			<key>llDeleteSubString</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Source</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>Start</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>End</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>string</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Removes the indicated sub-string and returns the result.\nStart and End are inclusive.\nUsing negative numbers for Start and/or End causes the index to count backwards from the length of the string, so 0, -1 would delete the entire string.\nIf Start is larger than End, the sub-string is the exclusion of the entries; so 6, 4 would delete the entire string except for the 5th. character.</string>
+			</map>
+			<key>llDetachFromAvatar</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Remove the object containing the script from the avatar.</string>
+			</map>
+			<key>llDetectedGrab</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Number</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>vector</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the grab offset of a user touching the object.\nReturns &lt;0.0, 0.0, 0.0&gt; if Number is not a valid object.</string>
+			</map>
+			<key>llDetectedGroup</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Number</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>integer</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns TRUE if detected object or agent Number has the same user group active as this object.\nIt will return FALSE if the object or agent is in the group, but the group is not active.</string>
+			</map>
+			<key>llDetectedKey</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Number</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>key</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the key of detected object or avatar number.\nReturns NULL_KEY if Number is not a valid index.</string>
+			</map>
+			<key>llDetectedLinkNumber</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Number</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>integer</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the link position of the triggered event for touches and collisions only.\n0 for a non-linked object, 1 for the root of a linked object, 2 for the first child, etc.</string>
+			</map>
+			<key>llDetectedName</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Number</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>string</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the name of detected object or avatar number.\nReturns the name of detected object number.\nReturns empty string if Number is not a valid index.</string>
+			</map>
+			<key>llDetectedOwner</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Number</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>key</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the key of detected object's owner.\nReturns invalid key if Number is not a valid index.</string>
+			</map>
+			<key>llDetectedPos</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Number</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>vector</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the position of detected object or avatar number.\nReturns &lt;0.0, 0.0, 0.0&gt; if Number is not a valid index.</string>
+			</map>
+			<key>llDetectedRot</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Number</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>rotation</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the rotation of detected object or avatar number.\nReturns &lt;0.0, 0.0, 0.0, 1.0&gt; if Number is not a valid offset.</string>
+			</map>
+			<key>llDetectedTouchBinormal</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Index</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>vector</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the surface bi-normal for a triggered touch event.\nReturns a vector that is the surface bi-normal (tangent to the surface) where the touch event was triggered.</string>
+			</map>
+			<key>llDetectedTouchFace</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Index</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>integer</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the index of the face where the avatar clicked in a triggered touch event.</string>
+			</map>
+			<key>llDetectedTouchNormal</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Index</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>vector</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the surface normal for a triggered touch event.\nReturns a vector that is the surface normal (perpendicular to the surface) where the touch event was triggered.</string>
+			</map>
+			<key>llDetectedTouchPos</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Index</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>vector</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the position, in region coordinates, where the object was touched in a triggered touch event.\nUnless it is a HUD, in which case it returns the position relative to the attach point.</string>
+			</map>
+			<key>llDetectedTouchST</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Index</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>vector</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns a vector that is the surface coordinates where the prim was touched.\nThe X and Y vector positions contain the horizontal (S) and vertical (T) face coordinates respectively.\nEach component is in the interval [0.0, 1.0].\nTOUCH_INVALID_TEXCOORD is returned if the surface coordinates cannot be determined (e.g. when the viewer does not support this function).</string>
+			</map>
+			<key>llDetectedTouchUV</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Index</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>vector</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns a vector that is the texture coordinates for where the prim was touched.\nThe X and Y vector positions contain the U and V face coordinates respectively.\nTOUCH_INVALID_TEXCOORD is returned if the touch UV coordinates cannot be determined (e.g. when the viewer does not support this function).</string>
+			</map>
+			<key>llDetectedType</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Number</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>integer</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the type (AGENT, ACTIVE, PASSIVE, SCRIPTED) of detected object.\nReturns 0 if number is not a valid index.\nNote that number is a bit-field, so comparisons need to be a bitwise checked. e.g.:\ninteger iType = llDetectedType(0);\n{\n	// ...do stuff with the agent\n}</string>
+			</map>
+			<key>llDetectedVel</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Number</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>vector</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the velocity of the detected object Number.\nReturns&lt;0.0, 0.0, 0.0&gt; if Number is not a valid offset.</string>
+			</map>
+			<key>llDialog</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>AvatarID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+					<map>
+						<key>Text</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>Buttons</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+					<map>
+						<key>Channel</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.1</real>
+				<key>tooltip</key>
+				<string>Shows a dialog box on the avatar's screen with the message.\n
 				Up to 12 strings in the list form buttons.\n
 				If a button is clicked, the name is chatted on Channel.\nOpens a "notify box" in the given avatars screen displaying the message.\n
 			Up to twelve buttons can be specified in a list of strings. When the user clicks a button, the name of the button is said on the specified channel.\n
@@ -8360,10061 +8360,10061 @@
 			llDialog(who, "Are you a boy or a girl?", [ "Boy", "Girl" ], -4913);\n
 			llDialog(who, "This shows only an OK button.", [], -192);\n
 			llDialog(who, "This chats so you can 'hear' it.", ["Hooray"], 0);</string>
-         </map>
-         <key>llDie</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Deletes the object.\nDelete the object which holds the script.</string>
-         </map>
-         <key>llDumpList2String</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Source</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Separator</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the list as a single string, using Separator between the entries.\nWrite the list out as a single string, using Separator between values.</string>
-         </map>
-         <key>llEdgeOfWorld</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Position</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Direction</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Checks to see whether the border hit by Direction from Position is the edge of the world (has no neighboring region).\nReturns TRUE if the line along Direction from Position hits the edge of the world in the current simulator, returns FALSE if that edge crosses into another simulator.</string>
-         </map>
-         <key>llEjectFromLand</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>AvatarID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Ejects AvatarID from land that you own.\nEjects AvatarID from land that the object owner (group or resident) owns.</string>
-         </map>
-         <key>llEmail</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Address</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Subject</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Text</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>20.0</real>
-            <key>tooltip</key>
-            <string>Sends email to Address with Subject and Message.\nSends an email to Address with Subject and Message.</string>
-         </map>
-         <key>llEscapeURL</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>URL</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns an escaped/encoded version of url, replacing spaces with %20 etc.\nReturns the string that is the URL-escaped version of URL (replacing spaces with %20, etc.).\n
+			</map>
+			<key>llDie</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>0.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Deletes the object.\nDelete the object which holds the script.</string>
+			</map>
+			<key>llDumpList2String</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Source</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+					<map>
+						<key>Separator</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>string</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the list as a single string, using Separator between the entries.\nWrite the list out as a single string, using Separator between values.</string>
+			</map>
+			<key>llEdgeOfWorld</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Position</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+					<map>
+						<key>Direction</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>integer</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Checks to see whether the border hit by Direction from Position is the edge of the world (has no neighboring region).\nReturns TRUE if the line along Direction from Position hits the edge of the world in the current simulator, returns FALSE if that edge crosses into another simulator.</string>
+			</map>
+			<key>llEjectFromLand</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>AvatarID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Ejects AvatarID from land that you own.\nEjects AvatarID from land that the object owner (group or resident) owns.</string>
+			</map>
+			<key>llEmail</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Address</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>Subject</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>Text</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>20.0</real>
+				<key>tooltip</key>
+				<string>Sends email to Address with Subject and Message.\nSends an email to Address with Subject and Message.</string>
+			</map>
+			<key>llEscapeURL</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>URL</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>string</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns an escaped/encoded version of url, replacing spaces with %20 etc.\nReturns the string that is the URL-escaped version of URL (replacing spaces with %20, etc.).\n
 			This function returns the UTF-8 encoded escape codes for selected characters.</string>
-         </map>
-         <key>llEuler2Rot</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Vector</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>rotation</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the rotation representation of the Euler angles.\nReturns the rotation represented by the Euler Angle.</string>
-         </map>
-         <key>llEvade</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>TargetID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Options</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real/>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real/>
-            <key>tooltip</key>
-            <string>Evade a specified target.\nCharacters will (roughly) try to hide from their pursuers if there is a good hiding spot along their fleeing path. Hiding means no direct line of sight from the head of the character (centre of the top of its physics bounding box) to the head of its pursuer and no direct path between the two on the navigation-mesh.</string>
-         </map>
-         <key>llExecCharacterCmd</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Command</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Options</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real/>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real/>
-            <key>tooltip</key>
-            <string>Execute a character command.\nSend a command to the path system.\n
+			</map>
+			<key>llEuler2Rot</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Vector</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>rotation</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the rotation representation of the Euler angles.\nReturns the rotation represented by the Euler Angle.</string>
+			</map>
+			<key>llEvade</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>TargetID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+					<map>
+						<key>Options</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real/>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real/>
+				<key>tooltip</key>
+				<string>Evade a specified target.\nCharacters will (roughly) try to hide from their pursuers if there is a good hiding spot along their fleeing path. Hiding means no direct line of sight from the head of the character (centre of the top of its physics bounding box) to the head of its pursuer and no direct path between the two on the navigation-mesh.</string>
+			</map>
+			<key>llExecCharacterCmd</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Command</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>Options</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real/>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real/>
+				<key>tooltip</key>
+				<string>Execute a character command.\nSend a command to the path system.\n
 			Currently only supports stopping the current path-finding operation or causing the character to jump.</string>
-         </map>
-         <key>llFabs</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Value</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the positive version of Value.\nReturns the absolute value of Value.</string>
-         </map>
-         <key>llFleeFrom</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Source</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Distance</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Options</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real/>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real/>
-            <key>tooltip</key>
-            <string>Flee from a point.\nDirects a character (llCreateCharacter) to keep away from a defined position in the region or adjacent regions.</string>
-         </map>
-         <key>llFloor</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Value</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns largest integer value &lt;= Value.</string>
-         </map>
-         <key>llForceMouselook</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Enable</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>If Enable is TRUE any avatar that sits on this object is forced into mouse-look mode.\nAfter calling this function with Enable set to TRUE, any agent sitting down on the prim will be forced into mouse-look.\n
+			</map>
+			<key>llFabs</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Value</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>float</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the positive version of Value.\nReturns the absolute value of Value.</string>
+			</map>
+			<key>llFleeFrom</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Source</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+					<map>
+						<key>Distance</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+					<map>
+						<key>Options</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real/>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real/>
+				<key>tooltip</key>
+				<string>Flee from a point.\nDirects a character (llCreateCharacter) to keep away from a defined position in the region or adjacent regions.</string>
+			</map>
+			<key>llFloor</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Value</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>integer</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns largest integer value &lt;= Value.</string>
+			</map>
+			<key>llForceMouselook</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Enable</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>If Enable is TRUE any avatar that sits on this object is forced into mouse-look mode.\nAfter calling this function with Enable set to TRUE, any agent sitting down on the prim will be forced into mouse-look.\n
 			Just like llSitTarget, this changes a permanent property of the prim (not the object) and needs to be reset by calling this function with Enable set to FALSE in order to disable it.</string>
-         </map>
-         <key>llFrand</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Magnitude</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns a pseudo random number in the range [0, Magnitude] or [Magnitude, 0].\nReturns a pseudo-random number between [0, Magnitude].</string>
-         </map>
-         <key>llGenerateKey</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>sleep</key>
-            <real>0</real>
-            <key>tooltip</key>
-            <string>Generates a key (SHA-1 hash) using UUID generation to create a unique key.\nAs the UUID produced is versioned, it should never return a value of NULL_KEY.\nThe specific UUID version is an implementation detail that has changed in the past and may change again in the future. Do not depend upon the UUID that is returned to be version 5 SHA-1 hash.</string>
-         </map>
-         <key>llGetAccel</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the acceleration of the object relative to the region's axes.\nGets the acceleration of the object.</string>
-         </map>
-         <key>llGetAgentInfo</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>AvatarID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns an integer bit-field containing the agent information about id.\n
+			</map>
+			<key>llFrand</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Magnitude</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>float</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns a pseudo random number in the range [0, Magnitude] or [Magnitude, 0].\nReturns a pseudo-random number between [0, Magnitude].</string>
+			</map>
+			<key>llGenerateKey</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>0</real>
+				<key>return</key>
+				<string>key</string>
+				<key>sleep</key>
+				<real>0</real>
+				<key>tooltip</key>
+				<string>Generates a key (SHA-1 hash) using UUID generation to create a unique key.\nAs the UUID produced is versioned, it should never return a value of NULL_KEY.\nThe specific UUID version is an implementation detail that has changed in the past and may change again in the future. Do not depend upon the UUID that is returned to be version 5 SHA-1 hash.</string>
+			</map>
+			<key>llGetAccel</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>vector</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the acceleration of the object relative to the region's axes.\nGets the acceleration of the object.</string>
+			</map>
+			<key>llGetAgentInfo</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>AvatarID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>integer</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns an integer bit-field containing the agent information about id.\n
 				Returns AGENT_FLYING, AGENT_ATTACHMENTS, AGENT_SCRIPTED, AGENT_SITTING, AGENT_ON_OBJECT, AGENT_MOUSELOOK, AGENT_AWAY, AGENT_BUSY, AGENT_TYPING, AGENT_CROUCHING, AGENT_ALWAYS_RUN, AGENT_WALKING and/or AGENT_IN_AIR.\nReturns information about the given agent ID as a bit-field of agent info constants.</string>
-         </map>
-         <key>llGetAgentLanguage</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>AvatarID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the language code of the preferred interface language of the avatar.\nReturns a string that is the language code of the preferred interface language of the resident.</string>
-         </map>
-         <key>llGetAgentList</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Scope</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Options</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>list</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Requests a list of agents currently in the region, limited by the scope parameter.\nReturns a list [key UUID-0, key UUID-1, ..., key UUID-n] or [string error_msg] - returns avatar keys for all agents in the region limited to the area(s) specified by scope</string>
-         </map>
-         <key>llGetAgentSize</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>AvatarID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>If the avatar is in the same region, returns the size of the bounding box of the requested avatar by id, otherwise returns ZERO_VECTOR.\nIf the agent is in the same region as the object, returns the size of the avatar.</string>
-         </map>
-         <key>llGetAlpha</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Face</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the alpha value of Face.\nReturns the 'alpha' of the given face. If face is ALL_SIDES the value returned is the mean average of all faces.</string>
-         </map>
-         <key>llGetAndResetTime</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the script time in seconds and then resets the script timer to zero.\nGets the time in seconds since starting and resets the time to zero.</string>
-         </map>
-         <key>llGetAnimation</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>AvatarID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the name of the currently playing locomotion animation for the avatar id.\nReturns the currently playing animation for the specified avatar ID.</string>
-         </map>
-         <key>llGetAnimationList</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>AvatarID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>list</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns a list of keys of playing animations for an avatar.\nReturns a list of keys of all playing animations for the specified avatar ID.</string>
-         </map>
-         <key>llGetAnimationOverride</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>AnimationState</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>sleep</key>
-            <real>0</real>
-            <key>tooltip</key>
-            <string>Returns a string that is the name of the animation that is used for the specified animation state\nTo use this function the script must obtain either the PERMISSION_OVERRIDE_ANIMATIONS or PERMISSION_TRIGGER_ANIMATION permission (automatically granted to attached objects).</string>
-         </map>
-         <key>llGetAttached</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the object's attachment point, or 0 if not attached.\nReturns the object attachment point, or 0 if not attached.</string>
-         </map>
-         <key>llGetBoundingBox</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>ID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>list</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the bounding box around the object (including any linked prims) relative to its root prim, as a list in the format [ (vector) min_corner, (vector) max_corner ].\nReturns the bounding box around the object or avatar with the specified key (including any linked prims) relative to the\n
+			</map>
+			<key>llGetAgentLanguage</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>AvatarID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>string</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the language code of the preferred interface language of the avatar.\nReturns a string that is the language code of the preferred interface language of the resident.</string>
+			</map>
+			<key>llGetAgentList</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Scope</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>Options</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>list</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Requests a list of agents currently in the region, limited by the scope parameter.\nReturns a list [key UUID-0, key UUID-1, ..., key UUID-n] or [string error_msg] - returns avatar keys for all agents in the region limited to the area(s) specified by scope</string>
+			</map>
+			<key>llGetAgentSize</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>AvatarID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>vector</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>If the avatar is in the same region, returns the size of the bounding box of the requested avatar by id, otherwise returns ZERO_VECTOR.\nIf the agent is in the same region as the object, returns the size of the avatar.</string>
+			</map>
+			<key>llGetAlpha</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Face</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>float</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the alpha value of Face.\nReturns the 'alpha' of the given face. If face is ALL_SIDES the value returned is the mean average of all faces.</string>
+			</map>
+			<key>llGetAndResetTime</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>float</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the script time in seconds and then resets the script timer to zero.\nGets the time in seconds since starting and resets the time to zero.</string>
+			</map>
+			<key>llGetAnimation</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>AvatarID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>string</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the name of the currently playing locomotion animation for the avatar id.\nReturns the currently playing animation for the specified avatar ID.</string>
+			</map>
+			<key>llGetAnimationList</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>AvatarID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>list</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns a list of keys of playing animations for an avatar.\nReturns a list of keys of all playing animations for the specified avatar ID.</string>
+			</map>
+			<key>llGetAnimationOverride</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>AnimationState</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>0</real>
+				<key>return</key>
+				<string>string</string>
+				<key>sleep</key>
+				<real>0</real>
+				<key>tooltip</key>
+				<string>Returns a string that is the name of the animation that is used for the specified animation state\nTo use this function the script must obtain either the PERMISSION_OVERRIDE_ANIMATIONS or PERMISSION_TRIGGER_ANIMATION permission (automatically granted to attached objects).</string>
+			</map>
+			<key>llGetAttached</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>integer</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the object's attachment point, or 0 if not attached.\nReturns the object attachment point, or 0 if not attached.</string>
+			</map>
+			<key>llGetBoundingBox</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>ID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>list</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the bounding box around the object (including any linked prims) relative to its root prim, as a list in the format [ (vector) min_corner, (vector) max_corner ].\nReturns the bounding box around the object or avatar with the specified key (including any linked prims) relative to the\n
 			root prim, as a list: [ (vector) min_corner, (vector) max_corner ]</string>
-         </map>
-         <key>llGetCameraPos</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the current camera position for the agent the task has permissions for.\nReturns the position of the camera, of the user that granted the script PERMISSION_TRACK_CAMERA. If no user has granted the permission, it returns ZERO_VECTOR.</string>
-         </map>
-         <key>llGetCameraRot</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>rotation</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the current camera orientation for the agent the task has permissions for.\nReturns the rotation of the camera, of the user who has granted this script PERMISSION_TRACK_CAMERA. If no user has granted the permission, it returns ZERO_ROTATION.\n
+			</map>
+			<key>llGetCameraPos</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>vector</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the current camera position for the agent the task has permissions for.\nReturns the position of the camera, of the user that granted the script PERMISSION_TRACK_CAMERA. If no user has granted the permission, it returns ZERO_VECTOR.</string>
+			</map>
+			<key>llGetCameraRot</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>rotation</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the current camera orientation for the agent the task has permissions for.\nReturns the rotation of the camera, of the user who has granted this script PERMISSION_TRACK_CAMERA. If no user has granted the permission, it returns ZERO_ROTATION.\n
 			The key of the user whose camera is being tracked, can be obtained using llGetPermissionsKey.</string>
-         </map>
-         <key>llGetCenterOfMass</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the prim's centre of mass (unless called from the root prim, where it returns the object's centre of mass).</string>
-         </map>
-         <key>llGetClosestNavPoint</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Point</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Options</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real/>
-            <key>return</key>
-            <string>list</string>
-            <key>sleep</key>
-            <real/>
-            <key>tooltip</key>
-            <string>Get the closest navigable point to the point provided.\nThe function accepts a point in region-local space (like all the other path-finding methods) and returns either an empty list or a list containing a single vector which is the closest point on the navigation-mesh to the point provided.</string>
-         </map>
-         <key>llGetColor</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Face</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the color on Face.\nReturns the colour of Face as a vector of red, green, and blue values between 0 and 1. If face is ALL_SIDES the colour returned is the mean average of each channel.</string>
-         </map>
-         <key>llGetCreator</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns a key for the creator of the prim.\nReturns the key of the object's original creator. Similar to llGetOwner.</string>
-         </map>
-         <key>llGetDate</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the current date in the UTC time zone in the format YYYY-MM-DD.\nReturns the current UTC date as YYYY-MM-DD.</string>
-         </map>
-         <key>llGetDisplayName</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>AvatarID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the name of an avatar, if the avatar is in the current region, and the name has been cached, otherwise the same as llGetUsername.	Use llRequestDisplayName if you absolutely must have the display name.\nReturns a string that is the non-unique display name of the avatar specified by AvatarID.\n
+			</map>
+			<key>llGetCenterOfMass</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>vector</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the prim's centre of mass (unless called from the root prim, where it returns the object's centre of mass).</string>
+			</map>
+			<key>llGetClosestNavPoint</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Point</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+					<map>
+						<key>Options</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real/>
+				<key>return</key>
+				<string>list</string>
+				<key>sleep</key>
+				<real/>
+				<key>tooltip</key>
+				<string>Get the closest navigable point to the point provided.\nThe function accepts a point in region-local space (like all the other path-finding methods) and returns either an empty list or a list containing a single vector which is the closest point on the navigation-mesh to the point provided.</string>
+			</map>
+			<key>llGetColor</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Face</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>vector</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the color on Face.\nReturns the colour of Face as a vector of red, green, and blue values between 0 and 1. If face is ALL_SIDES the colour returned is the mean average of each channel.</string>
+			</map>
+			<key>llGetCreator</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>key</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns a key for the creator of the prim.\nReturns the key of the object's original creator. Similar to llGetOwner.</string>
+			</map>
+			<key>llGetDate</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>string</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the current date in the UTC time zone in the format YYYY-MM-DD.\nReturns the current UTC date as YYYY-MM-DD.</string>
+			</map>
+			<key>llGetDisplayName</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>AvatarID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>string</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the name of an avatar, if the avatar is in the current region, and the name has been cached, otherwise the same as llGetUsername.	Use llRequestDisplayName if you absolutely must have the display name.\nReturns a string that is the non-unique display name of the avatar specified by AvatarID.\n
 			AvatarID must specify a valid avatar key, present in or otherwise known to the region in which the script is running, otherwise an empty string is returned.\n
 			This function will still return a valid display name if the avatar is a child agent of the region (i.e., in an adjacent region, but presently able to see into the one the script is in), or for a short period after the avatar leaves the region (specifically, when the client completely disconnects from the region, either as a main or child agent).</string>
-         </map>
-         <key>llGetEnergy</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns how much energy is in the object as a percentage of maximum.</string>
-         </map>
-         <key>llGetEnv</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>DataRequest</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns a string with the requested data about the region.</string>
-         </map>
-         <key>llGetForce</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the force (if the script is physical).\nReturns the current force if the script is physical.</string>
-         </map>
-         <key>llGetFreeMemory</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the number of free bytes of memory the script can use.\nReturns the available free space for the current script. This is inaccurate with LSO.</string>
-         </map>
-         <key>llGetFreeURLs</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the number of available URLs for the current script.\nReturns an integer that is the number of available URLs.</string>
-         </map>
-         <key>llGetGeometricCenter</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the geometric center of the linked set the script is attached to.\nReturns the geometric centre of the linked set the script is in relative to the object's position (the position of the root prim of a linked set).\n
+			</map>
+			<key>llGetEnergy</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>float</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns how much energy is in the object as a percentage of maximum.</string>
+			</map>
+			<key>llGetEnv</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>DataRequest</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>string</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns a string with the requested data about the region.</string>
+			</map>
+			<key>llGetForce</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>vector</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the force (if the script is physical).\nReturns the current force if the script is physical.</string>
+			</map>
+			<key>llGetFreeMemory</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>integer</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the number of free bytes of memory the script can use.\nReturns the available free space for the current script. This is inaccurate with LSO.</string>
+			</map>
+			<key>llGetFreeURLs</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>integer</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the number of available URLs for the current script.\nReturns an integer that is the number of available URLs.</string>
+			</map>
+			<key>llGetGeometricCenter</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>vector</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the geometric center of the linked set the script is attached to.\nReturns the geometric centre of the linked set the script is in relative to the object's position (the position of the root prim of a linked set).\n
 			To get the object's position, use llGetPos.</string>
-         </map>
-         <key>llGetGMTclock</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the time in seconds since midnight GMT.\nGets the time in seconds since midnight in GMT/UTC.</string>
-         </map>
-         <key>llGetHTTPHeader</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>HTTPRequestID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Header</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the value for header for request_id.\nReturns a string that is the value of the Header for HTTPRequestID.</string>
-         </map>
-         <key>llGetInventoryCreator</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>InventoryItem</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns a key for the creator of the inventory item.\nThis function returns the UUID of the creator of item. If item is not found in inventory, the object says "No item named 'name' ".</string>
-         </map>
-         <key>llGetInventoryKey</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>InventoryItem</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the key that is the UUID of the inventory named.\nReturns the key of the inventory named.</string>
-         </map>
-         <key>llGetInventoryName</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>InventoryType</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Index</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the name of the inventory item number of a given type.\nGet the name of the inventory Index number of InventoryType.\n
+			</map>
+			<key>llGetGMTclock</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>float</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the time in seconds since midnight GMT.\nGets the time in seconds since midnight in GMT/UTC.</string>
+			</map>
+			<key>llGetHTTPHeader</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>HTTPRequestID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+					<map>
+						<key>Header</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>string</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the value for header for request_id.\nReturns a string that is the value of the Header for HTTPRequestID.</string>
+			</map>
+			<key>llGetInventoryCreator</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>InventoryItem</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>key</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns a key for the creator of the inventory item.\nThis function returns the UUID of the creator of item. If item is not found in inventory, the object says "No item named 'name' ".</string>
+			</map>
+			<key>llGetInventoryKey</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>InventoryItem</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>key</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the key that is the UUID of the inventory named.\nReturns the key of the inventory named.</string>
+			</map>
+			<key>llGetInventoryName</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>InventoryType</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>Index</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>string</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the name of the inventory item number of a given type.\nGet the name of the inventory Index number of InventoryType.\n
 			Use the inventory constants INVENTORY_* to specify the type.</string>
-         </map>
-         <key>llGetInventoryNumber</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>InventoryType</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the number of items of a given type (INVENTORY_* flag) in the prim's inventory.\nGet the number of items of InventoryType in the object inventory.\n
+			</map>
+			<key>llGetInventoryNumber</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>InventoryType</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>integer</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the number of items of a given type (INVENTORY_* flag) in the prim's inventory.\nGet the number of items of InventoryType in the object inventory.\n
 			Use the inventory constants INVENTORY_* to specify the type.</string>
-         </map>
-         <key>llGetInventoryPermMask</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>InventoryItem</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>BitMask</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the requested permission mask for the inventory item.\nReturns the requested permission mask for the inventory item defined by InventoryItem. If item is not in the object's inventory, llGetInventoryPermMask returns FALSE and causes the object to say "No item named '&lt;item&gt;'", where "&lt;item&gt;" is item.\n
+			</map>
+			<key>llGetInventoryPermMask</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>InventoryItem</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>BitMask</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>integer</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the requested permission mask for the inventory item.\nReturns the requested permission mask for the inventory item defined by InventoryItem. If item is not in the object's inventory, llGetInventoryPermMask returns FALSE and causes the object to say "No item named '&lt;item&gt;'", where "&lt;item&gt;" is item.\n
 			If this is used to determine whether or not an inventory item exists within the object, it will have the side effect of spamming chat. So please don't ;-)</string>
-         </map>
-         <key>llGetInventoryType</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>InventoryItem</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the type of the inventory item named.\nReturns the type of the inventory item named.\n
+			</map>
+			<key>llGetInventoryType</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>InventoryItem</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>integer</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the type of the inventory item named.\nReturns the type of the inventory item named.\n
 			Remember, like all inventory functions, llGetInventoryType is case-sensitive.</string>
-         </map>
-         <key>llGetKey</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the key of the prim the script is attached to.\nGet the key for the object which has this script.</string>
-         </map>
-         <key>llGetLandOwnerAt</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Position</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the key of the land owner, returns NULL_KEY if public.\nReturns the key of the land owner at Position, or NULL_KEY if public.</string>
-         </map>
-         <key>llGetLinkKey</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>LinkNumber</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the key of the linked prim LinkNumber.\nReturns the key of LinkNumber in the link set.</string>
-         </map>
-         <key>llGetLinkMedia</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>LinkNumber</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Face</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Parameters</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>list</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Get the media parameters for a particular face on linked prim, given the desired list of parameter names. Returns a list of values in the order requested.	Returns an empty list if no media exists on the face.\nGet the desired list of named media parameters, for a particular face, of a linked prim.\n
+			</map>
+			<key>llGetKey</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>key</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the key of the prim the script is attached to.\nGet the key for the object which has this script.</string>
+			</map>
+			<key>llGetLandOwnerAt</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Position</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>key</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the key of the land owner, returns NULL_KEY if public.\nReturns the key of the land owner at Position, or NULL_KEY if public.</string>
+			</map>
+			<key>llGetLinkKey</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>LinkNumber</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>key</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the key of the linked prim LinkNumber.\nReturns the key of LinkNumber in the link set.</string>
+			</map>
+			<key>llGetLinkMedia</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>LinkNumber</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>Face</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>Parameters</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>0.0</real>
+				<key>return</key>
+				<string>list</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Get the media parameters for a particular face on linked prim, given the desired list of parameter names. Returns a list of values in the order requested.	Returns an empty list if no media exists on the face.\nGet the desired list of named media parameters, for a particular face, of a linked prim.\n
 				Returns a list of values in the order requested.</string>
-         </map>
-         <key>llGetLinkName</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>LinkNumber</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the name of LinkNumber in a link set.\nReturns the name of LinkNumber the link set.</string>
-         </map>
-         <key>llGetLinkNumber</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the link number of the prim containing the script (0 means not linked, 1 the prim is the root, 2 the prim is the first child, etc.).\nReturns the link number of the prim containing the script. 0 means no link, 1 the root, 2 for first child, etc.</string>
-         </map>
-         <key>llGetLinkNumberOfSides</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>LinkNumber</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the number of sides of the specified linked prim.\nReturns an integer that is the number of faces (or sides) of the prim link.</string>
-         </map>
-         <key>llGetLinkPrimitiveParams</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>LinkNumber</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Parameters</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>list</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Get primitive parameters for LinkNumber based on rules.\nIdentical to llGetPrimitiveParams except that it acts on the prim specified by the link number given.\n
+			</map>
+			<key>llGetLinkName</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>LinkNumber</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>string</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the name of LinkNumber in a link set.\nReturns the name of LinkNumber the link set.</string>
+			</map>
+			<key>llGetLinkNumber</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>integer</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the link number of the prim containing the script (0 means not linked, 1 the prim is the root, 2 the prim is the first child, etc.).\nReturns the link number of the prim containing the script. 0 means no link, 1 the root, 2 for first child, etc.</string>
+			</map>
+			<key>llGetLinkNumberOfSides</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>LinkNumber</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>integer</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the number of sides of the specified linked prim.\nReturns an integer that is the number of faces (or sides) of the prim link.</string>
+			</map>
+			<key>llGetLinkPrimitiveParams</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>LinkNumber</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>Parameters</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>list</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Get primitive parameters for LinkNumber based on rules.\nIdentical to llGetPrimitiveParams except that it acts on the prim specified by the link number given.\n
 			Returns the list of primitive attributes requested in the Parameters list for link.\n
 			PRIM_* flags can be broken into three categories, face flags, prim flags, and object flags.\n
 			* Supplying a prim or object flag will return that flags attributes.\n
 			* Face flags require the user to also supply a side parameter.</string>
-         </map>
-         <key>llGetListEntryType</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>ListVariable</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Index</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the type of the index entry in the list (TYPE_INTEGER, TYPE_FLOAT, TYPE_STRING, TYPE_KEY, TYPE_VECTOR, TYPE_ROTATION, or TYPE_INVALID if index is off list).\nReturns the type of the variable at Index in ListVariable.</string>
-         </map>
-         <key>llGetListLength</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>ListVariable</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the number of elements in the list.\nReturns the number of elements in ListVariable.</string>
-         </map>
-         <key>llGetLocalPos</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the position relative to the root.\nReturns the local position of a child object relative to the root.</string>
-         </map>
-         <key>llGetLocalRot</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>rotation</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the rotation local to the root.\nReturns the local rotation of a child object relative to the root.</string>
-         </map>
-         <key>llGetMass</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the mass of object that the script is attached to.\nReturns the scripted object's mass. When called from a script in a link-set, the parent will return the sum of the link-set weights, while a child will return just its own mass. When called from a script inside an attachment, this function will return the mass of the avatar it's attached to, not its own.</string>
-         </map>
-         <key>llGetMassMKS</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real/>
-            <key>return</key>
-            <string>float</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Acts as llGetMass(), except that the units of the value returned are Kg.</string>
-         </map>
-         <key>llGetMemoryLimit</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real/>
-            <key>return</key>
-            <string>integer</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Get the maximum memory a script can use, in bytes.\nGet the maximum memory a script can use.\n
+			</map>
+			<key>llGetListEntryType</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>ListVariable</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+					<map>
+						<key>Index</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>integer</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the type of the index entry in the list (TYPE_INTEGER, TYPE_FLOAT, TYPE_STRING, TYPE_KEY, TYPE_VECTOR, TYPE_ROTATION, or TYPE_INVALID if index is off list).\nReturns the type of the variable at Index in ListVariable.</string>
+			</map>
+			<key>llGetListLength</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>ListVariable</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>integer</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the number of elements in the list.\nReturns the number of elements in ListVariable.</string>
+			</map>
+			<key>llGetLocalPos</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>vector</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the position relative to the root.\nReturns the local position of a child object relative to the root.</string>
+			</map>
+			<key>llGetLocalRot</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>rotation</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the rotation local to the root.\nReturns the local rotation of a child object relative to the root.</string>
+			</map>
+			<key>llGetMass</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>float</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the mass of object that the script is attached to.\nReturns the scripted object's mass. When called from a script in a link-set, the parent will return the sum of the link-set weights, while a child will return just its own mass. When called from a script inside an attachment, this function will return the mass of the avatar it's attached to, not its own.</string>
+			</map>
+			<key>llGetMassMKS</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real/>
+				<key>return</key>
+				<string>float</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Acts as llGetMass(), except that the units of the value returned are Kg.</string>
+			</map>
+			<key>llGetMemoryLimit</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real/>
+				<key>return</key>
+				<string>integer</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Get the maximum memory a script can use, in bytes.\nGet the maximum memory a script can use.\n
 			Returns the integer amount of memory the script can use in bytes.</string>
-         </map>
-         <key>llGetNextEmail</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Address</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Subject</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Get the next waiting email with appropriate address and/or subject (if blank they are ignored).\nGet the next waiting email with appropriate address and/or subject.\n
+			</map>
+			<key>llGetNextEmail</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Address</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>Subject</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Get the next waiting email with appropriate address and/or subject (if blank they are ignored).\nGet the next waiting email with appropriate address and/or subject.\n
 				If the parameters are blank, they are not used for filtering.</string>
-         </map>
-         <key>llGetNotecardLine</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>NotecardName</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>LineNumber</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>sleep</key>
-            <real>0.1</real>
-            <key>tooltip</key>
-            <string>Returns line from NotecardName via the dataserver event.\nThis function fetches LineNumber from NotecardName and returns the data through the dataserver event. The line count starts at zero.\n
+			</map>
+			<key>llGetNotecardLine</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>NotecardName</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>LineNumber</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>key</string>
+				<key>sleep</key>
+				<real>0.1</real>
+				<key>tooltip</key>
+				<string>Returns line from NotecardName via the dataserver event.\nThis function fetches LineNumber from NotecardName and returns the data through the dataserver event. The line count starts at zero.\n
 				If the requested line is passed the end of the note-card the dataserver event will return the constant EOF string.\n
 				The key returned by this function is a unique identifier which will be supplied to the dataserver event in the requested parameter.</string>
-         </map>
-         <key>llGetNumberOfNotecardLines</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>NotecardName</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>sleep</key>
-            <real>0.1</real>
-            <key>tooltip</key>
-            <string>Returns number of lines in NotecardName via the dataserver event (cast return value to integer).\nReturns the number of lines in the note-card sNotecardName via the dataserver event. (Cast the value returned by the dataserver to an integer.)\n
+			</map>
+			<key>llGetNumberOfNotecardLines</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>NotecardName</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>key</string>
+				<key>sleep</key>
+				<real>0.1</real>
+				<key>tooltip</key>
+				<string>Returns number of lines in NotecardName via the dataserver event (cast return value to integer).\nReturns the number of lines in the note-card sNotecardName via the dataserver event. (Cast the value returned by the dataserver to an integer.)\n
 			The key returned is a query ID for identifying the dataserver reply.</string>
-         </map>
-         <key>llGetNumberOfPrims</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the number of prims in a link set the script is attached to.\nReturns the number of prims in (and avatars seated on) the object the script is in.</string>
-         </map>
-         <key>llGetNumberOfSides</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the number of faces (or sides) of the prim.\nReturns the number of sides of the prim which has the script.</string>
-         </map>
-         <key>llGetObjectDesc</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the description of the prim the script is attached to.\nReturns the description of the scripted object/prim. You can set the description using llSetObjectDesc.</string>
-         </map>
-         <key>llGetObjectDetails</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>ID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Parameters</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>list</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the object details specified in Parameters for the object with key ID.\n
+			</map>
+			<key>llGetNumberOfPrims</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>integer</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the number of prims in a link set the script is attached to.\nReturns the number of prims in (and avatars seated on) the object the script is in.</string>
+			</map>
+			<key>llGetNumberOfSides</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>integer</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the number of faces (or sides) of the prim.\nReturns the number of sides of the prim which has the script.</string>
+			</map>
+			<key>llGetObjectDesc</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>string</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the description of the prim the script is attached to.\nReturns the description of the scripted object/prim. You can set the description using llSetObjectDesc.</string>
+			</map>
+			<key>llGetObjectDetails</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>ID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+					<map>
+						<key>Parameters</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>list</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the object details specified in Parameters for the object with key ID.\n
 				Parameters are OBJECT_NAME, _DESC, _POS, _ROT, _VELOCITY, _OWNER, _GROUP, _CREATOR.\nReturns a list of the details specified in Parameters for the object with key ID.</string>
-         </map>
-         <key>llGetObjectMass</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>ID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the mass of the avatar or object in the region.\nGets the mass of the object or avatar corresponding to ID.</string>
-         </map>
-         <key>llGetObjectName</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the name of the prim which the script is attached to.\nReturns the name of the prim (not object) which contains the script.</string>
-         </map>
-         <key>llGetObjectPermMask</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>PermissionMask</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the requested permission mask for the root object the task is attached to.</string>
-         </map>
-         <key>llGetObjectPrimCount</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>ObjectID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the total number of prims for an object in the region.\nReturns the prim count for any object id in the same region.</string>
-         </map>
-         <key>llGetOmega</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the rotation velocity in radians per second.\nReturns a vector that is the rotation velocity of the object in radians per second.</string>
-         </map>
-         <key>llGetOwner</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the object owner's UUID.\nReturns the key for the owner of the object.</string>
-         </map>
-         <key>llGetOwnerKey</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>ObjectID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the owner of ObjectID.\nReturns the key for the owner of object ObjectID.</string>
-         </map>
-         <key>llGetParcelDetails</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Position</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-               <map>
-                  <key>ParcelDetails</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>list</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the parcel details specified in ParcelDetails for the parcel at Position.\n
+			</map>
+			<key>llGetObjectMass</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>ID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>float</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the mass of the avatar or object in the region.\nGets the mass of the object or avatar corresponding to ID.</string>
+			</map>
+			<key>llGetObjectName</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>string</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the name of the prim which the script is attached to.\nReturns the name of the prim (not object) which contains the script.</string>
+			</map>
+			<key>llGetObjectPermMask</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>PermissionMask</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>integer</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the requested permission mask for the root object the task is attached to.</string>
+			</map>
+			<key>llGetObjectPrimCount</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>ObjectID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>integer</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the total number of prims for an object in the region.\nReturns the prim count for any object id in the same region.</string>
+			</map>
+			<key>llGetOmega</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>vector</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the rotation velocity in radians per second.\nReturns a vector that is the rotation velocity of the object in radians per second.</string>
+			</map>
+			<key>llGetOwner</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>key</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the object owner's UUID.\nReturns the key for the owner of the object.</string>
+			</map>
+			<key>llGetOwnerKey</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>ObjectID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>key</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the owner of ObjectID.\nReturns the key for the owner of object ObjectID.</string>
+			</map>
+			<key>llGetParcelDetails</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Position</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+					<map>
+						<key>ParcelDetails</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>list</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the parcel details specified in ParcelDetails for the parcel at Position.\n
  				Parameters is one or more of: PARCEL_DETAILS_NAME, _DESC, _OWNER, _GROUP, _AREA, _ID, _SEE_AVATARS.\nReturns a list that is the parcel details specified in ParcelDetails (in the same order) for the parcel at Position.</string>
-         </map>
-         <key>llGetParcelFlags</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Position</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns a mask of the parcel flags (PARCEL_FLAG_*) for the parcel that includes the point Position.\nReturns a bit-field specifying the parcel flags (PARCEL_FLAG_*) for the parcel at Position.</string>
-         </map>
-         <key>llGetParcelMaxPrims</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Position</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-               <map>
-                  <key>SimWide</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the maximum number of prims allowed on the parcel at Position.\nReturns an integer that is the maximum number of prims allowed on the parcel at Position.</string>
-         </map>
-         <key>llGetParcelMusicURL</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real/>
-            <key>return</key>
-            <string>string</string>
-            <key>sleep</key>
-            <real/>
-            <key>tooltip</key>
-            <string>Gets the streaming audio URL for the parcel object is on.\nReturns a string containing the parcel streaming audio URL.\n
+			</map>
+			<key>llGetParcelFlags</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Position</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>integer</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns a mask of the parcel flags (PARCEL_FLAG_*) for the parcel that includes the point Position.\nReturns a bit-field specifying the parcel flags (PARCEL_FLAG_*) for the parcel at Position.</string>
+			</map>
+			<key>llGetParcelMaxPrims</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Position</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+					<map>
+						<key>SimWide</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>integer</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the maximum number of prims allowed on the parcel at Position.\nReturns an integer that is the maximum number of prims allowed on the parcel at Position.</string>
+			</map>
+			<key>llGetParcelMusicURL</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real/>
+				<key>return</key>
+				<string>string</string>
+				<key>sleep</key>
+				<real/>
+				<key>tooltip</key>
+				<string>Gets the streaming audio URL for the parcel object is on.\nReturns a string containing the parcel streaming audio URL.\n
 				The object owner, avatar or group, must also be the land owner.</string>
-         </map>
-         <key>llGetParcelPrimCount</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Position</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Category</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>SimWide</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the number of prims on the parcel at Position of the given category.
+			</map>
+			<key>llGetParcelPrimCount</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Position</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+					<map>
+						<key>Category</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>SimWide</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>integer</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the number of prims on the parcel at Position of the given category.
 				Categories: PARCEL_COUNT_TOTAL, _OWNER, _GROUP, _OTHER, _SELECTED, _TEMP.\nReturns the number of prims used on the parcel at Position which are in Category.\n
 				If SimWide is TRUE, it returns the number of objects for the entire region in the category specified.\n
 				If SimWide is FALSE, it returns the number of objects on this specific parcel in the category specified</string>
-         </map>
-         <key>llGetParcelPrimOwners</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Position</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>list</string>
-            <key>sleep</key>
-            <real>2.0</real>
-            <key>tooltip</key>
-            <string>Returns a list of all residents who own objects on the parcel at Position, with individual prim counts.
+			</map>
+			<key>llGetParcelPrimOwners</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Position</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>list</string>
+				<key>sleep</key>
+				<real>2.0</real>
+				<key>tooltip</key>
+				<string>Returns a list of all residents who own objects on the parcel at Position, with individual prim counts.
 				Requires owner-like permissions for the parcel.\nReturns a strided list of keys and integers of up to 100 agents who own objects in the parcel at Position.\n
 				The list is formatted as [ key agentKey1, integer agentCount1, key agentKey2, integer agentCount2, ... ], sorted by agent key.\n
 				The integers are counts of the number of prims (not objects) owned by the corresponding agents.\n
 				Only works when the object owner is in the region (likely the reason it doesn't work when deeded to group).</string>
-         </map>
-         <key>llGetPermissions</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns an integer bit-field with the permissions that have been granted.\nReturns an integer bit-field with the script permissions granted. e.g.:\n
+			</map>
+			<key>llGetPermissions</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>integer</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns an integer bit-field with the permissions that have been granted.\nReturns an integer bit-field with the script permissions granted. e.g.:\n
 				integer iPerms = llGetPermissions();\n
 				if (iPerms &amp; PERMISSION_DEBIT) {\n
 					llOwnerSay("Yay, I can steal your money!!");\n
 				} else {\n
 					llOwnerSay("Damn, your money is safe from me!");\n
 				}</string>
-         </map>
-         <key>llGetPermissionsKey</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the key of the avatar that last granted permissions to the script.\nReturns the key of the avatar that last granted or declined permissions to the script.\n
+			</map>
+			<key>llGetPermissionsKey</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>key</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the key of the avatar that last granted permissions to the script.\nReturns the key of the avatar that last granted or declined permissions to the script.\n
 				Returns NULL_KEY if permissions were never granted or declined.</string>
-         </map>
-         <key>llGetPhysicsMaterial</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real/>
-            <key>return</key>
-            <string>list</string>
-            <key>sleep</key>
-            <real/>
-            <key>tooltip</key>
-            <string>Returns a list of the form [float gravity_multiplier, float restitution, float friction, float density].</string>
-         </map>
-         <key>llGetPos</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the position of the task in region coordinates.\nReturns the vector position of the task in region coordinates.</string>
-         </map>
-         <key>llGetPrimitiveParams</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Parameters</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>list</string>
-            <key>sleep</key>
-            <real>0.2</real>
-            <key>tooltip</key>
-            <string>Returns the primitive parameters specified in the parameters list.\nReturns primitive parameters specified in the Parameters list.</string>
-         </map>
-         <key>llGetPrimMediaParams</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Face</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Parameters</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>list</string>
-            <key>sleep</key>
-            <real>0.1</real>
-            <key>tooltip</key>
-            <string>Returns the media parameters for a particular face on an object, given the desired list of parameter names, in the order requested. Returns an empty list if no media exists on the face.\nGet the media parameters for a particular face on an object, given the desired list of Parameters.\n
+			</map>
+			<key>llGetPhysicsMaterial</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real/>
+				<key>return</key>
+				<string>list</string>
+				<key>sleep</key>
+				<real/>
+				<key>tooltip</key>
+				<string>Returns a list of the form [float gravity_multiplier, float restitution, float friction, float density].</string>
+			</map>
+			<key>llGetPos</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>vector</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the position of the task in region coordinates.\nReturns the vector position of the task in region coordinates.</string>
+			</map>
+			<key>llGetPrimitiveParams</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Parameters</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>list</string>
+				<key>sleep</key>
+				<real>0.2</real>
+				<key>tooltip</key>
+				<string>Returns the primitive parameters specified in the parameters list.\nReturns primitive parameters specified in the Parameters list.</string>
+			</map>
+			<key>llGetPrimMediaParams</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Face</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>Parameters</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>list</string>
+				<key>sleep</key>
+				<real>0.1</real>
+				<key>tooltip</key>
+				<string>Returns the media parameters for a particular face on an object, given the desired list of parameter names, in the order requested. Returns an empty list if no media exists on the face.\nGet the media parameters for a particular face on an object, given the desired list of Parameters.\n
 				Returns a list of values in the order requested.\n
 				Returns an empty list if no media exists on the face.</string>
-         </map>
-         <key>llGetRegionAgentCount</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the number of avatars in the region.\nReturns an integer that is the number of avatars in the region.</string>
-         </map>
-         <key>llGetRegionCorner</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns a vector, in meters, that is the global location of the south-west corner of the region which the object is in.\nReturns the Region-Corner of the simulator containing the task. The region-corner is a vector (values in meters) representing distance from the first region.</string>
-         </map>
-         <key>llGetRegionFlags</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the region flags (REGION_FLAG_*) for the region the object is in.\nReturns a bit-field specifying the region flags (REGION_FLAG_*) for the region the object is in.</string>
-         </map>
-         <key>llGetRegionFPS</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the mean region frames per second.</string>
-         </map>
-         <key>llGetRegionName</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the current region name.</string>
-         </map>
-         <key>llGetRegionTimeDilation</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the current time dilation as a float between 0.0 (full dilation) and 1.0 (no dilation).\nReturns the current time dilation as a float between 0.0 and 1.0.</string>
-         </map>
-         <key>llGetRootPosition</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the position (in region coordinates) of the root prim of the object which the script is attached to.\nGets the position (in region coordinates) of the root/parent prim of the object containing the script.\n
+			</map>
+			<key>llGetRegionAgentCount</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>integer</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the number of avatars in the region.\nReturns an integer that is the number of avatars in the region.</string>
+			</map>
+			<key>llGetRegionCorner</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>vector</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns a vector, in meters, that is the global location of the south-west corner of the region which the object is in.\nReturns the Region-Corner of the simulator containing the task. The region-corner is a vector (values in meters) representing distance from the first region.</string>
+			</map>
+			<key>llGetRegionFlags</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>integer</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the region flags (REGION_FLAG_*) for the region the object is in.\nReturns a bit-field specifying the region flags (REGION_FLAG_*) for the region the object is in.</string>
+			</map>
+			<key>llGetRegionFPS</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the mean region frames per second.</string>
+			</map>
+			<key>llGetRegionName</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>string</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the current region name.</string>
+			</map>
+			<key>llGetRegionTimeDilation</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>float</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the current time dilation as a float between 0.0 (full dilation) and 1.0 (no dilation).\nReturns the current time dilation as a float between 0.0 and 1.0.</string>
+			</map>
+			<key>llGetRootPosition</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>vector</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the position (in region coordinates) of the root prim of the object which the script is attached to.\nGets the position (in region coordinates) of the root/parent prim of the object containing the script.\n
 			This is used to allow a child prim to determine where the root is.</string>
-         </map>
-         <key>llGetRootRotation</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>rotation</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the rotation (relative to the region) of the root prim of the object which the script is attached to.\nGets the global rotation of the root object of the object script is attached to.</string>
-         </map>
-         <key>llGetRot</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>rotation</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the rotation relative to the region's axes.\nReturns the rotation.</string>
-         </map>
-         <key>llGetScale</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the scale of the prim.\nReturns a vector that is the scale (dimensions) of the prim.</string>
-         </map>
-         <key>llGetScriptName</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the name of the script that this function is used in.\nReturns the name of this script.</string>
-         </map>
-         <key>llGetScriptState</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>ScriptName</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns TRUE if the script named is running.\nReturns TRUE if ScriptName is running.</string>
-         </map>
-         <key>llGetSimStats</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>StatType</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>sleep</key>
-            <real>0</real>
-            <key>tooltip</key>
-            <string>Returns a float that is the requested statistic.</string>
-         </map>
-         <key>llGetSimulatorHostname</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>sleep</key>
-            <real>10.0</real>
-            <key>tooltip</key>
-            <string>Returns the host-name of the machine which the script is running on (same as string in viewer Help dialog).\nReturns the host name (server) of the region in which the scripted object is located.\n
+			</map>
+			<key>llGetRootRotation</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>rotation</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the rotation (relative to the region) of the root prim of the object which the script is attached to.\nGets the global rotation of the root object of the object script is attached to.</string>
+			</map>
+			<key>llGetRot</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>rotation</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the rotation relative to the region's axes.\nReturns the rotation.</string>
+			</map>
+			<key>llGetScale</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>vector</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the scale of the prim.\nReturns a vector that is the scale (dimensions) of the prim.</string>
+			</map>
+			<key>llGetScriptName</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>string</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the name of the script that this function is used in.\nReturns the name of this script.</string>
+			</map>
+			<key>llGetScriptState</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>ScriptName</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>integer</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns TRUE if the script named is running.\nReturns TRUE if ScriptName is running.</string>
+			</map>
+			<key>llGetSimStats</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>StatType</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>0</real>
+				<key>return</key>
+				<string>float</string>
+				<key>sleep</key>
+				<real>0</real>
+				<key>tooltip</key>
+				<string>Returns a float that is the requested statistic.</string>
+			</map>
+			<key>llGetSimulatorHostname</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>string</string>
+				<key>sleep</key>
+				<real>10.0</real>
+				<key>tooltip</key>
+				<string>Returns the host-name of the machine which the script is running on (same as string in viewer Help dialog).\nReturns the host name (server) of the region in which the scripted object is located.\n
 			For example, "sim225.agni.lindenlab.com".</string>
-         </map>
-         <key>llGetSPMaxMemory</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real/>
-            <key>return</key>
-            <string>integer</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the maximum used memory for the current script. Only valid after using PROFILE_SCRIPT_MEMORY. Non-mono scripts always use 16k.\nReturns the integer of the most bytes used while llScriptProfiler was last active.</string>
-         </map>
-         <key>llGetStartParameter</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns an integer that is the script start parameter.\nReturns the start parameter passed to llRezObject.\n
+			</map>
+			<key>llGetSPMaxMemory</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real/>
+				<key>return</key>
+				<string>integer</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the maximum used memory for the current script. Only valid after using PROFILE_SCRIPT_MEMORY. Non-mono scripts always use 16k.\nReturns the integer of the most bytes used while llScriptProfiler was last active.</string>
+			</map>
+			<key>llGetStartParameter</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>integer</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns an integer that is the script start parameter.\nReturns the start parameter passed to llRezObject.\n
 			If the object was created from agent inventory, this function returns 0.</string>
-         </map>
-         <key>llGetStaticPath</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Start</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-               <map>
-                  <key>End</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Radius</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Parameters</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>list</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string/>
-         </map>
-         <key>llGetStatus</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>StatusFlag</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns value of status (STATUS_PHYSICS, STATUS_PHANTOM, STATUS_BLOCK_GRAB, STATUS_ROTATE_X, STATUS_ROTATE_Y, and/or STATUS_ROTATE_Z).\nReturns the value of specified status.</string>
-         </map>
-         <key>llGetSubString</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>String</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Start</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>End</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the indicated substring.\nReturns the indicated sub-string from String. The Start and End are inclusive.\n
+			</map>
+			<key>llGetStaticPath</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Start</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+					<map>
+						<key>End</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+					<map>
+						<key>Radius</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+					<map>
+						<key>Parameters</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>list</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string/>
+			</map>
+			<key>llGetStatus</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>StatusFlag</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>integer</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns value of status (STATUS_PHYSICS, STATUS_PHANTOM, STATUS_BLOCK_GRAB, STATUS_ROTATE_X, STATUS_ROTATE_Y, and/or STATUS_ROTATE_Z).\nReturns the value of specified status.</string>
+			</map>
+			<key>llGetSubString</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>String</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>Start</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>End</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>string</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the indicated substring.\nReturns the indicated sub-string from String. The Start and End are inclusive.\n
 				Using negative numbers for Start and/or End causes the index to count backwards from the length of the string, so 0, -1 would capture the entire string.\n
 				If start is larger than end, the sub string is the exclusion of the entries, so 6, 4 would give the entire string except for the 5th. character.</string>
-         </map>
-         <key>llGetSunDirection</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns a normalized vector of the direction of the sun in the region.\nReturns the sun's direction on the simulator.</string>
-         </map>
-         <key>llGetTexture</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Face</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns a string that is the texture on face (the inventory name if it is a texture in the prim's inventory, otherwise the key).\nReturns the texture of a face, if it is found in object inventory, its key otherwise.</string>
-         </map>
-         <key>llGetTextureOffset</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Face</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the texture offset of face in the x and y components of a vector.</string>
-         </map>
-         <key>llGetTextureRot</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Face</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the texture rotation of side.</string>
-         </map>
-         <key>llGetTextureScale</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Face</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the texture scale of side in the x and y components of a vector.\nReturns the texture scale of a side in the x and y components of a vector.</string>
-         </map>
-         <key>llGetTime</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the time in seconds since the last region reset, script reset, or call to either llResetTime or llGetAndResetTime.</string>
-         </map>
-         <key>llGetTimeOfDay</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the time in seconds since [SECOND_LIFE] server midnight or since region up-time, whichever is smaller.\nGets the time in seconds since midnight in Second Life.</string>
-         </map>
-         <key>llGetTimestamp</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns a time-stamp (UTC time zone) in the format: YYYY-MM-DDThh:mm:ss.ff..fZ.\nReturns the current time-and-date (a time-stamp) in the format YYYY-MM-DDThh:mm:ss.ff..fZ, for example: 2004-08-27T00:56:21.785886Z\n
+			</map>
+			<key>llGetSunDirection</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>vector</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns a normalized vector of the direction of the sun in the region.\nReturns the sun's direction on the simulator.</string>
+			</map>
+			<key>llGetTexture</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Face</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>string</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns a string that is the texture on face (the inventory name if it is a texture in the prim's inventory, otherwise the key).\nReturns the texture of a face, if it is found in object inventory, its key otherwise.</string>
+			</map>
+			<key>llGetTextureOffset</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Face</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>vector</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the texture offset of face in the x and y components of a vector.</string>
+			</map>
+			<key>llGetTextureRot</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Face</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>float</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the texture rotation of side.</string>
+			</map>
+			<key>llGetTextureScale</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Face</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>vector</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the texture scale of side in the x and y components of a vector.\nReturns the texture scale of a side in the x and y components of a vector.</string>
+			</map>
+			<key>llGetTime</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>float</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the time in seconds since the last region reset, script reset, or call to either llResetTime or llGetAndResetTime.</string>
+			</map>
+			<key>llGetTimeOfDay</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>float</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the time in seconds since [SECOND_LIFE] server midnight or since region up-time, whichever is smaller.\nGets the time in seconds since midnight in Second Life.</string>
+			</map>
+			<key>llGetTimestamp</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>string</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns a time-stamp (UTC time zone) in the format: YYYY-MM-DDThh:mm:ss.ff..fZ.\nReturns the current time-and-date (a time-stamp) in the format YYYY-MM-DDThh:mm:ss.ff..fZ, for example: 2004-08-27T00:56:21.785886Z\n
 				The letter Z is the zone designator for the zero UTC offset, and is why UTC is sometimes referred to as Zulu time (Zulu being the name of Z in the phonetic alphabet. T is just a separator between date and time.</string>
-         </map>
-         <key>llGetTorque</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the torque (if the script is physical).\nReturns a vector that is the torque (if the script is physical).</string>
-         </map>
-         <key>llGetUnixTime</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the number of seconds elapsed since 00:00 hours, Jan 1, 1970 UTC from the system clock.\nReturns the number of seconds elapsed since 00:00 hours, Jan 1, 1970 UTC from the system clock.\n
+			</map>
+			<key>llGetTorque</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>vector</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the torque (if the script is physical).\nReturns a vector that is the torque (if the script is physical).</string>
+			</map>
+			<key>llGetUnixTime</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>integer</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the number of seconds elapsed since 00:00 hours, Jan 1, 1970 UTC from the system clock.\nReturns the number of seconds elapsed since 00:00 hours, Jan 1, 1970 UTC from the system clock.\n
 				In UNIX terms, time_t. This is great for a monotonic source of time that ticks once a second.</string>
-         </map>
-         <key>llGetUsedMemory</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the current used memory for the current script. Non-mono scripts always use 16K.\nReturns the integer of the number of bytes of memory currently in use by the script. Non-mono scripts always use 16K.</string>
-         </map>
-         <key>llGetUsername</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>AvatarID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the single-word user-name of an avatar, if the avatar is in the current region, otherwise the empty string.\nReturns a string that is the unique user-name of the avatar specified.\n
+			</map>
+			<key>llGetUsedMemory</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>integer</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the current used memory for the current script. Non-mono scripts always use 16K.\nReturns the integer of the number of bytes of memory currently in use by the script. Non-mono scripts always use 16K.</string>
+			</map>
+			<key>llGetUsername</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>AvatarID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>string</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the single-word user-name of an avatar, if the avatar is in the current region, otherwise the empty string.\nReturns a string that is the unique user-name of the avatar specified.\n
 				AvatarID must specify a valid avatar key present in, or otherwise known to, the region in which the script is running, otherwise an empty string is returned. This function will still return a valid user-name if the avatar is a child agent of the region (i.e., in an adjacent region, but presently able to see into the one the script is in), or for a short period after the avatar leaves the region (specifically, when the client completely disconnects from the region, either as a main or child agent).</string>
-         </map>
-         <key>llGetVel</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the velocity of the object.\nReturns a vector that is the velocity of the object.</string>
-         </map>
-         <key>llGetWallclock</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the time in seconds since midnight California Pacific time (PST/PDT).\nReturns the time in seconds since simulator's time-zone midnight (Pacific Time).</string>
-         </map>
-         <key>llGiveInventory</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>TargetID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-               <map>
-                  <key>InventoryItem</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Give InventoryItem to destination represented by TargetID.\nGive the named inventory item to the avatar or object in the same simulator as the giver.\n
+			</map>
+			<key>llGetVel</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>vector</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the velocity of the object.\nReturns a vector that is the velocity of the object.</string>
+			</map>
+			<key>llGetWallclock</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>float</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the time in seconds since midnight California Pacific time (PST/PDT).\nReturns the time in seconds since simulator's time-zone midnight (Pacific Time).</string>
+			</map>
+			<key>llGiveInventory</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>TargetID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+					<map>
+						<key>InventoryItem</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Give InventoryItem to destination represented by TargetID.\nGive the named inventory item to the avatar or object in the same simulator as the giver.\n
 			If the recipient is an avatar, the avatar then follows the normal procedure of accepting or denying the offer. If the recipient is an object, the same permissions apply as if you were dragging inventory onto the object by hand, i.e. if llAllowInventoryDrop has been called with TRUE, any other object can pass objects to its inventory.</string>
-         </map>
-         <key>llGiveInventoryList</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>TargetID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-               <map>
-                  <key>FolderName</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>InventoryItems</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>3.0</real>
-            <key>tooltip</key>
-            <string>Give InventoryItems to destination (represented by TargetID) as a new folder of items.\nGive the list of named inventory items to the keyed avatar or object in the same simulator as the giver.\n
+			</map>
+			<key>llGiveInventoryList</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>TargetID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+					<map>
+						<key>FolderName</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>InventoryItems</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>3.0</real>
+				<key>tooltip</key>
+				<string>Give InventoryItems to destination (represented by TargetID) as a new folder of items.\nGive the list of named inventory items to the keyed avatar or object in the same simulator as the giver.\n
 			If the recipient is an avatar, the avatar then follows the normal procedure of accepting or denying the offer. The offered inventory is then placed in a folder named category in the recipients inventory.\n
 			If the recipient is an object, the same permissions apply as if you were dragging inventory onto the object by hand, i.e. if llAllowInventoryDrop has been called with TRUE, any other object can pass objects to its inventory. If the recipient is an object, the sFolderName parameter is ignored.</string>
-         </map>
-         <key>llGiveMoney</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>AvatarID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Amount</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Transfers Amount of L from script owner to AvatarID.\nTransfer Amount from the script owner to AvatarID.\n
+			</map>
+			<key>llGiveMoney</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>AvatarID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+					<map>
+						<key>Amount</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Transfers Amount of L from script owner to AvatarID.\nTransfer Amount from the script owner to AvatarID.\n
 				This call will (silently) fail if PERMISSION_DEBIT has not been set.</string>
-         </map>
-         <key>llGodLikeRezObject</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>InventoryItemID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Position</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>god-mode</key>
-            <boolean>true</boolean>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Rez directly off of a UUID if owner has dog-bit set.</string>
-         </map>
-         <key>llGround</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Offset</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the ground height at the object position + offset.\nReturns the ground height at the object's position + Offset.</string>
-         </map>
-         <key>llGroundContour</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Offset</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the ground contour direction below the object position + Offset.\nReturns the ground contour at the object's position + Offset.</string>
-         </map>
-         <key>llGroundNormal</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Offset</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the ground normal below the object position + offset.\nReturns the ground contour at the object's position + Offset.</string>
-         </map>
-         <key>llGroundRepel</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Height</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Water</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Tau</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Critically damps to height if within height * 0.5 of level (either above ground level or above the higher of land and water if water == TRUE).\nCritically damps to fHeight if within fHeight * 0.5 of ground or water level.\n
+			</map>
+			<key>llGodLikeRezObject</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>InventoryItemID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+					<map>
+						<key>Position</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>god-mode</key>
+				<boolean>true</boolean>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Rez directly off of a UUID if owner has dog-bit set.</string>
+			</map>
+			<key>llGround</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Offset</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>float</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the ground height at the object position + offset.\nReturns the ground height at the object's position + Offset.</string>
+			</map>
+			<key>llGroundContour</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Offset</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>vector</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the ground contour direction below the object position + Offset.\nReturns the ground contour at the object's position + Offset.</string>
+			</map>
+			<key>llGroundNormal</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Offset</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>vector</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the ground normal below the object position + offset.\nReturns the ground contour at the object's position + Offset.</string>
+			</map>
+			<key>llGroundRepel</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Height</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+					<map>
+						<key>Water</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>Tau</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Critically damps to height if within height * 0.5 of level (either above ground level or above the higher of land and water if water == TRUE).\nCritically damps to fHeight if within fHeight * 0.5 of ground or water level.\n
 				The height is above ground level if iWater is FALSE or above the higher of land and water if iWater is TRUE.\n
 				Do not use with vehicles. Only works in physics-enabled objects.</string>
-         </map>
-         <key>llGroundSlope</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Offset</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the ground slope below the object position + Offset.\nReturns the ground slope at the object position + Offset.</string>
-         </map>
-         <key>llHTTPRequest</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>URL</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Parameters</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Body</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Sends an HTTP request to the specified URL with the Body of the request and Parameters.\nSends an HTTP request to URL with the specified body and parameters.\n
+			</map>
+			<key>llGroundSlope</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Offset</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>vector</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the ground slope below the object position + Offset.\nReturns the ground slope at the object position + Offset.</string>
+			</map>
+			<key>llHTTPRequest</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>URL</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>Parameters</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+					<map>
+						<key>Body</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>key</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Sends an HTTP request to the specified URL with the Body of the request and Parameters.\nSends an HTTP request to URL with the specified body and parameters.\n
 				Returns a key that is a handle identifying the HTTP request made.</string>
-         </map>
-         <key>llHTTPResponse</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>HTTPRequestID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Status</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Body</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Responds to HTTPRequestID with Status and Body.\nResponds to HTTPRequestID with Status code and Body.</string>
-         </map>
-         <key>llInsertString</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>TargetVariable</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Position</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>SourceVariable</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Inserts SourceVariable into TargetVariable at Position, and returns the result.\nInserts SourceVariable into TargetVariable at Position and returns the result. Note this does not alter TargetVariable.</string>
-         </map>
-         <key>llInstantMessage</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>AvatarID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Text</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>2.0</real>
-            <key>tooltip</key>
-            <string>IMs Text to the user identified.\nSend Text to the user as an instant message.</string>
-         </map>
-         <key>llIntegerToBase64</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Value</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns a string that is a Base64 big endian encode of Value.\nEncodes the Value as an 8-character Base64 string.</string>
-         </map>
-         <key>llJson2List</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>JSON</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>list</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Converts the top level of the JSON string to a list.</string>
-         </map>
-         <key>llJsonGetValue</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>JSON</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Specifiers</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Gets the value indicated by Specifiers from the JSON string.</string>
-         </map>
-         <key>llJsonSetValue</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>JSON</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Specifiers</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Value</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns a new JSON string that is the JSON given with the Value indicated by Specifiers set to Value.</string>
-         </map>
-         <key>llJsonValueType</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>JSON</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Specifiers</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the type constant (JSON_*) for the value in JSON indicated by Specifiers.</string>
-         </map>
-         <key>llKey2Name</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>ID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the name of the prim or avatar specified by ID. The ID must be a valid rezzed prim or avatar key in the current simulator, otherwise an empty string is returned.\nReturns the name of a rezzed prim or avatar, present in or otherwise known, to the region in which the script is running. If the key is invalid (not in region, or not a prim or avatar's key), returns an empty string.</string>
-         </map>
-         <key>llLinkParticleSystem</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>LinkNumber</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Rules</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Creates a particle system based on Rules. An empty list removes a particle system from object.\n
+			</map>
+			<key>llHTTPResponse</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>HTTPRequestID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+					<map>
+						<key>Status</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>Body</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Responds to HTTPRequestID with Status and Body.\nResponds to HTTPRequestID with Status code and Body.</string>
+			</map>
+			<key>llInsertString</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>TargetVariable</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>Position</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>SourceVariable</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>string</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Inserts SourceVariable into TargetVariable at Position, and returns the result.\nInserts SourceVariable into TargetVariable at Position and returns the result. Note this does not alter TargetVariable.</string>
+			</map>
+			<key>llInstantMessage</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>AvatarID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+					<map>
+						<key>Text</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>2.0</real>
+				<key>tooltip</key>
+				<string>IMs Text to the user identified.\nSend Text to the user as an instant message.</string>
+			</map>
+			<key>llIntegerToBase64</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Value</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>string</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns a string that is a Base64 big endian encode of Value.\nEncodes the Value as an 8-character Base64 string.</string>
+			</map>
+			<key>llJson2List</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>JSON</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>0.0</real>
+				<key>return</key>
+				<string>list</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Converts the top level of the JSON string to a list.</string>
+			</map>
+			<key>llJsonGetValue</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>JSON</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>Specifiers</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>0.0</real>
+				<key>return</key>
+				<string>string</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Gets the value indicated by Specifiers from the JSON string.</string>
+			</map>
+			<key>llJsonSetValue</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>JSON</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>Specifiers</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+					<map>
+						<key>Value</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>0.0</real>
+				<key>return</key>
+				<string>string</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns a new JSON string that is the JSON given with the Value indicated by Specifiers set to Value.</string>
+			</map>
+			<key>llJsonValueType</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>JSON</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>Specifiers</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>0.0</real>
+				<key>return</key>
+				<string>string</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the type constant (JSON_*) for the value in JSON indicated by Specifiers.</string>
+			</map>
+			<key>llKey2Name</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>ID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>string</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the name of the prim or avatar specified by ID. The ID must be a valid rezzed prim or avatar key in the current simulator, otherwise an empty string is returned.\nReturns the name of a rezzed prim or avatar, present in or otherwise known, to the region in which the script is running. If the key is invalid (not in region, or not a prim or avatar's key), returns an empty string.</string>
+			</map>
+			<key>llLinkParticleSystem</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>LinkNumber</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>Rules</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Creates a particle system based on Rules. An empty list removes a particle system from object.\n
 				List format is [ rule-1, data-1, rule-2, data-2 ... rule-n, data-n ].\nA particle system defined by a list of rules is set for the prim(s) link. This is identical to llParticleSystem except that it applies to a specified linked prim and not just the prim the script is in.</string>
-         </map>
-         <key>llLinkSitTarget</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>LinkNumber</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Offset</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Rotation</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>rotation</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Set the sit location for the linked prim(s). If Offset == &lt;0,0,0&gt; clear it.\nSet the sit location for the linked prim(s). The sit location is relative to the prim's position and rotation.</string>
-         </map>
-         <key>llList2CSV</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>ListVariable</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Creates a string of comma separated values from the list.\nCreate a string of comma separated values from the specified list.</string>
-         </map>
-         <key>llList2Float</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>ListVariable</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Index</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Copies the float at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to a float, then zero is returned.</string>
-         </map>
-         <key>llList2Integer</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>ListVariable</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Index</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Copies the integer at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to an integer, then zero is returned.</string>
-         </map>
-         <key>llList2Json</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>JsonType</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Values</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>sleep</key>
-            <real>0</real>
-            <key>tooltip</key>
-            <string>Converts either a strided list of key:value pairs to a JSON_OBJECT, or a list of values to a JSON_ARRAY.</string>
-         </map>
-         <key>llList2Key</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>ListVariable</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Index</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Copies the key at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to a key, then null string is returned.</string>
-         </map>
-         <key>llList2List</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>ListVariable</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Start</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>End</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>list</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Copies the slice of the list from Start to End.\nReturns the slice of the list from start to end from the list as a new list. The start and end parameters are inclusive.\n
+			</map>
+			<key>llLinkSitTarget</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>LinkNumber</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>Offset</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+					<map>
+						<key>Rotation</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>rotation</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Set the sit location for the linked prim(s). If Offset == &lt;0,0,0&gt; clear it.\nSet the sit location for the linked prim(s). The sit location is relative to the prim's position and rotation.</string>
+			</map>
+			<key>llList2CSV</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>ListVariable</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>string</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Creates a string of comma separated values from the list.\nCreate a string of comma separated values from the specified list.</string>
+			</map>
+			<key>llList2Float</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>ListVariable</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+					<map>
+						<key>Index</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>float</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Copies the float at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to a float, then zero is returned.</string>
+			</map>
+			<key>llList2Integer</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>ListVariable</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+					<map>
+						<key>Index</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>integer</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Copies the integer at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to an integer, then zero is returned.</string>
+			</map>
+			<key>llList2Json</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>JsonType</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>Values</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>0</real>
+				<key>return</key>
+				<string>string</string>
+				<key>sleep</key>
+				<real>0</real>
+				<key>tooltip</key>
+				<string>Converts either a strided list of key:value pairs to a JSON_OBJECT, or a list of values to a JSON_ARRAY.</string>
+			</map>
+			<key>llList2Key</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>ListVariable</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+					<map>
+						<key>Index</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>key</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Copies the key at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to a key, then null string is returned.</string>
+			</map>
+			<key>llList2List</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>ListVariable</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+					<map>
+						<key>Start</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>End</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>list</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Copies the slice of the list from Start to End.\nReturns the slice of the list from start to end from the list as a new list. The start and end parameters are inclusive.\n
 				Using negative numbers for start and/or end causes the index to count backwards from the length of the list, so 0, -1 would capture the entire list.\n
 				If start is larger than end the list returned is the exclusion of the entries, so 6, 4 would give the entire list except for the 5th. entry.</string>
-         </map>
-         <key>llList2ListStrided</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>ListVariable</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Start</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>End</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Stride</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>list</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Copies the strided slice of the list from Start to End.\nReturns a copy of the strided slice of the specified list from Start to End.</string>
-         </map>
-         <key>llList2Rot</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>ListVariable</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Index</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>rotation</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Copies the rotation at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to rotation, thenZERO_ROTATION is returned.</string>
-         </map>
-         <key>llList2String</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>ListVariable</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Index</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Copies the string at Index in the list.\nReturns the value at Index in the specified list as a string. If Index describes a location not in the list then null string is returned.</string>
-         </map>
-         <key>llList2Vector</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>ListVariable</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Index</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Copies the vector at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to a vector, then ZERO_VECTOR is returned.</string>
-         </map>
-         <key>llListen</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Channel</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>SpeakersName</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>SpeakersID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Text</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Sets a callback for Text on Channel from SpeakersName and SpeakersID (SpeakersName, SpeakersID, and/or Text can be empty) and returns an identifier that can be used to deactivate or remove the listen.\nSets a listen event callback on the specified channel. Specifying values for speakername, speakerID, and message will filter the results accordingly, which is advisable or your listen event will respond to every thing said on the channel potentially causing a great deal of lag.\n
+			</map>
+			<key>llList2ListStrided</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>ListVariable</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+					<map>
+						<key>Start</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>End</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>Stride</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>list</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Copies the strided slice of the list from Start to End.\nReturns a copy of the strided slice of the specified list from Start to End.</string>
+			</map>
+			<key>llList2Rot</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>ListVariable</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+					<map>
+						<key>Index</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>rotation</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Copies the rotation at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to rotation, thenZERO_ROTATION is returned.</string>
+			</map>
+			<key>llList2String</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>ListVariable</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+					<map>
+						<key>Index</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>string</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Copies the string at Index in the list.\nReturns the value at Index in the specified list as a string. If Index describes a location not in the list then null string is returned.</string>
+			</map>
+			<key>llList2Vector</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>ListVariable</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+					<map>
+						<key>Index</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>vector</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Copies the vector at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to a vector, then ZERO_VECTOR is returned.</string>
+			</map>
+			<key>llListen</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Channel</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>SpeakersName</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>SpeakersID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+					<map>
+						<key>Text</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>integer</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Sets a callback for Text on Channel from SpeakersName and SpeakersID (SpeakersName, SpeakersID, and/or Text can be empty) and returns an identifier that can be used to deactivate or remove the listen.\nSets a listen event callback on the specified channel. Specifying values for speakername, speakerID, and message will filter the results accordingly, which is advisable or your listen event will respond to every thing said on the channel potentially causing a great deal of lag.\n
 				Returns an identifier that can be used to deactivate or remove the listen. The name, id and/or msg parameters\n
 				Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 to 2,147,483,648 are hidden channels that are not sent to avatars.</string>
-         </map>
-         <key>llListenControl</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>ChannelHandle</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Active</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Makes a listen event callback active or inactive.\nMake a listen event callback active or inactive. Pass in the value returned from llListen to the iChannelHandle parameter to specify which event you are controlling.\n
+			</map>
+			<key>llListenControl</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>ChannelHandle</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>Active</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Makes a listen event callback active or inactive.\nMake a listen event callback active or inactive. Pass in the value returned from llListen to the iChannelHandle parameter to specify which event you are controlling.\n
 				Use boolean values to specify Active</string>
-         </map>
-         <key>llListenRemove</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>ChannelHandle</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Removes listen event callback number.\nRemoves a listen event callback. Pass in the value returned from llListen to the iChannelHandle parameter to specify which event to remove.</string>
-         </map>
-         <key>llListFindList</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>ListVariable</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Find</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the index of the first instance of Find in ListVariable. Returns -1 if not found.\nReturns the position of the first instance of the Find list in the ListVariable. Returns -1 if not found.</string>
-         </map>
-         <key>llListInsertList</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Target</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-               <map>
-                  <key>ListVariable</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Position</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>list</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns a list that contains all the elements from Target but with the elements from ListVariable inserted at Position start.\nReturns a new list, created by inserting ListVariable into the Target list at Position. Note this does not alter the Target.</string>
-         </map>
-         <key>llListRandomize</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>ListVariable</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Stride</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>list</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns a randomized list of blocks of size Stride.\nReturns the specified list randomized into blocks of size stride.\n
+			</map>
+			<key>llListenRemove</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>ChannelHandle</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Removes listen event callback number.\nRemoves a listen event callback. Pass in the value returned from llListen to the iChannelHandle parameter to specify which event to remove.</string>
+			</map>
+			<key>llListFindList</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>ListVariable</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+					<map>
+						<key>Find</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>integer</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the index of the first instance of Find in ListVariable. Returns -1 if not found.\nReturns the position of the first instance of the Find list in the ListVariable. Returns -1 if not found.</string>
+			</map>
+			<key>llListInsertList</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Target</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+					<map>
+						<key>ListVariable</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+					<map>
+						<key>Position</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>list</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns a list that contains all the elements from Target but with the elements from ListVariable inserted at Position start.\nReturns a new list, created by inserting ListVariable into the Target list at Position. Note this does not alter the Target.</string>
+			</map>
+			<key>llListRandomize</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>ListVariable</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+					<map>
+						<key>Stride</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>list</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns a randomized list of blocks of size Stride.\nReturns the specified list randomized into blocks of size stride.\n
 				If the remainder from the length of the list, divided by the stride is non-zero, this function does not randomize the list.</string>
-         </map>
-         <key>llListReplaceList</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Target</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-               <map>
-                  <key>ListVariable</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Start</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>End</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>list</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns a list that is Target with Start through End removed and ListVariable inserted at Start.\nReturns a list replacing the slice of the Target list from Start to End with the specified ListVariable. Start and End are inclusive, so 0, 1 would replace the first two entries and 0, 0 would replace only the first list entry.</string>
-         </map>
-         <key>llListSort</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>ListVariable</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Stride</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Ascending</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>list</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Sorts the list into blocks of stride, in Ascending order if Ascending == TRUE. The sort order is affected by type.\nReturns the specified list, sorted into blocks of stride in ascending order (if Ascending is TRUE, otherwise descending). Note that sort only works if the first entry of each block is the same type.</string>
-         </map>
-         <key>llListStatistics</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Operation</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>ListVariable</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Performs statistical aggregate functions on ListVariable using LIST_STAT_* Operations.\nThis function allows a script to perform a statistical operation as defined by operation on a list composed of integers and floats.</string>
-         </map>
-         <key>llLoadURL</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>AvatarID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Text</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>URL</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>10.0</real>
-            <key>tooltip</key>
-            <string>Shows dialog to avatar AvatarID offering to load web page at URL.	If user clicks yes, launches their web browser.\nllLoadURL displays a dialogue box to the user, offering to load the specified web page using the default web browser.</string>
-         </map>
-         <key>llLog</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Value</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the natural logarithm of Value. Returns zero if Value &lt;= 0.\nReturns the base e (natural) logarithm of the specified Value.</string>
-         </map>
-         <key>llLog10</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Value</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the base 10 logarithm of Value. Returns zero if Value &lt;= 0.\nReturns the base 10 (common) logarithm of the specified Value.</string>
-         </map>
-         <key>llLookAt</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Target</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Strength</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Damping</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Cause object name to point it's forward axis towards Target.\nCause object to point the forward axis toward Target.\n
+			</map>
+			<key>llListReplaceList</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Target</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+					<map>
+						<key>ListVariable</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+					<map>
+						<key>Start</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>End</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>list</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns a list that is Target with Start through End removed and ListVariable inserted at Start.\nReturns a list replacing the slice of the Target list from Start to End with the specified ListVariable. Start and End are inclusive, so 0, 1 would replace the first two entries and 0, 0 would replace only the first list entry.</string>
+			</map>
+			<key>llListSort</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>ListVariable</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+					<map>
+						<key>Stride</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>Ascending</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>list</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Sorts the list into blocks of stride, in Ascending order if Ascending == TRUE. The sort order is affected by type.\nReturns the specified list, sorted into blocks of stride in ascending order (if Ascending is TRUE, otherwise descending). Note that sort only works if the first entry of each block is the same type.</string>
+			</map>
+			<key>llListStatistics</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Operation</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>ListVariable</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>float</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Performs statistical aggregate functions on ListVariable using LIST_STAT_* Operations.\nThis function allows a script to perform a statistical operation as defined by operation on a list composed of integers and floats.</string>
+			</map>
+			<key>llLoadURL</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>AvatarID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+					<map>
+						<key>Text</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>URL</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>10.0</real>
+				<key>tooltip</key>
+				<string>Shows dialog to avatar AvatarID offering to load web page at URL.	If user clicks yes, launches their web browser.\nllLoadURL displays a dialogue box to the user, offering to load the specified web page using the default web browser.</string>
+			</map>
+			<key>llLog</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Value</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>float</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the natural logarithm of Value. Returns zero if Value &lt;= 0.\nReturns the base e (natural) logarithm of the specified Value.</string>
+			</map>
+			<key>llLog10</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Value</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>float</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the base 10 logarithm of Value. Returns zero if Value &lt;= 0.\nReturns the base 10 (common) logarithm of the specified Value.</string>
+			</map>
+			<key>llLookAt</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Target</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+					<map>
+						<key>Strength</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+					<map>
+						<key>Damping</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Cause object name to point it's forward axis towards Target.\nCause object to point the forward axis toward Target.\n
 				Good Strength values are around half the mass of the object and good Damping values are less than 1/10th of the Strength.\n
 				Asymmetrical shapes require smaller Damping. A Strength of 0.0 cancels the look at.</string>
-         </map>
-         <key>llLoopSound</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Sound</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Volume</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Plays attached Sound, looping indefinitely, at Volume (0.0 - 1.0).\nSimilar to llPlaySound, this function plays a sound attached to an object, but will continuously repeat that sound until llStopSound or llPlaySound is called.\n
+			</map>
+			<key>llLoopSound</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Sound</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>Volume</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Plays attached Sound, looping indefinitely, at Volume (0.0 - 1.0).\nSimilar to llPlaySound, this function plays a sound attached to an object, but will continuously repeat that sound until llStopSound or llPlaySound is called.\n
 			Only one sound may be attached to an object at a time. A second call to llLoopSound with the same key will not restart the sound, but the new volume will be used. This allows control over the volume of already playing sounds.\n
 			Setting the volume to 0 is not the same as calling llStopSound; a sound with 0 volume will continue to loop.\n
 			To restart the sound from the beginning, call llStopSound before calling llLoopSound again.</string>
-         </map>
-         <key>llLoopSoundMaster</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Sound</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Volume</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Plays attached Sound, looping at volume (0.0 - 1.0), and declares it a sync master.\nBehaviour is identical to llLoopSound, with the addition of marking the source as a "Sync Master", causing "Slave" sounds to sync to it. If there are multiple masters within a viewers interest area, the most audible one (a function of both distance and volume) will win out as the master.\n
+			</map>
+			<key>llLoopSoundMaster</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Sound</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>Volume</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Plays attached Sound, looping at volume (0.0 - 1.0), and declares it a sync master.\nBehaviour is identical to llLoopSound, with the addition of marking the source as a "Sync Master", causing "Slave" sounds to sync to it. If there are multiple masters within a viewers interest area, the most audible one (a function of both distance and volume) will win out as the master.\n
 				The use of multiple masters within a small area is unlikely to produce the desired effect.</string>
-         </map>
-         <key>llLoopSoundSlave</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Sound</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Volume</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Plays attached sound looping at volume (0.0 - 1.0), synced to most audible sync master.\nBehaviour is identical to llLoopSound, unless there is a "Sync Master" present.\n
+			</map>
+			<key>llLoopSoundSlave</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Sound</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>Volume</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Plays attached sound looping at volume (0.0 - 1.0), synced to most audible sync master.\nBehaviour is identical to llLoopSound, unless there is a "Sync Master" present.\n
 				If a Sync Master is already playing the Slave sound will begin playing from the same point the master is in its loop synchronizing the loop points of both sounds.\n
 				If a Sync Master is started when the Slave is already playing, the Slave will skip to the correct position to sync with the Master.</string>
-         </map>
-         <key>llMakeExplosion</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Particles</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Scale</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Velocity</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Lifetime</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Arc</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Texture</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Offset</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-            </array>
-            <key>deprecated</key>
-            <boolean>true</boolean>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.1</real>
-            <key>tooltip</key>
-            <string>Make a round explosion of particles. Deprecated: Use llParticleSystem instead.\nMake a round explosion of particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.</string>
-         </map>
-         <key>llMakeFire</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Particles</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Scale</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Velocity</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Lifetime</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Arc</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Texture</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Offset</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-            </array>
-            <key>deprecated</key>
-            <boolean>true</boolean>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.1</real>
-            <key>tooltip</key>
-            <string>Make fire like particles. Deprecated: Use llParticleSystem instead.\nMake fire particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.</string>
-         </map>
-         <key>llMakeFountain</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Particles</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Scale</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Velocity</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Lifetime</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Arc</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Texture</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Offset</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-            </array>
-            <key>deprecated</key>
-            <boolean>true</boolean>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.1</real>
-            <key>tooltip</key>
-            <string>Make a fountain of particles. Deprecated: Use llParticleSystem instead.\nMake a fountain of particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.</string>
-         </map>
-         <key>llMakeSmoke</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Particles</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Scale</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Velocity</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Lifetime</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Arc</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Texture</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Offset</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-            </array>
-            <key>deprecated</key>
-            <boolean>true</boolean>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.1</real>
-            <key>tooltip</key>
-            <string>Make smoke like particles. Deprecated: Use llParticleSystem instead.\nMake smoky particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.</string>
-         </map>
-         <key>llManageEstateAccess</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Action</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>AvatarID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real/>
-            <key>return</key>
-            <string>integer</string>
-            <key>sleep</key>
-            <real/>
-            <key>tooltip</key>
-            <string>Use to add or remove agents from the estate's agent access or ban lists or groups from the estate's group access list.\nUse to add or remove agents from the estate's agent access or ban lists or groups from the estate's group access list.\n
+			</map>
+			<key>llMakeExplosion</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Particles</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>Scale</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+					<map>
+						<key>Velocity</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+					<map>
+						<key>Lifetime</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+					<map>
+						<key>Arc</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+					<map>
+						<key>Texture</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>Offset</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+				</array>
+				<key>deprecated</key>
+				<boolean>true</boolean>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.1</real>
+				<key>tooltip</key>
+				<string>Make a round explosion of particles. Deprecated: Use llParticleSystem instead.\nMake a round explosion of particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.</string>
+			</map>
+			<key>llMakeFire</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Particles</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>Scale</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+					<map>
+						<key>Velocity</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+					<map>
+						<key>Lifetime</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+					<map>
+						<key>Arc</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+					<map>
+						<key>Texture</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>Offset</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+				</array>
+				<key>deprecated</key>
+				<boolean>true</boolean>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.1</real>
+				<key>tooltip</key>
+				<string>Make fire like particles. Deprecated: Use llParticleSystem instead.\nMake fire particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.</string>
+			</map>
+			<key>llMakeFountain</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Particles</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>Scale</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+					<map>
+						<key>Velocity</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+					<map>
+						<key>Lifetime</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+					<map>
+						<key>Arc</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+					<map>
+						<key>Texture</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>Offset</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+				</array>
+				<key>deprecated</key>
+				<boolean>true</boolean>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.1</real>
+				<key>tooltip</key>
+				<string>Make a fountain of particles. Deprecated: Use llParticleSystem instead.\nMake a fountain of particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.</string>
+			</map>
+			<key>llMakeSmoke</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Particles</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>Scale</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+					<map>
+						<key>Velocity</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+					<map>
+						<key>Lifetime</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+					<map>
+						<key>Arc</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+					<map>
+						<key>Texture</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>Offset</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+				</array>
+				<key>deprecated</key>
+				<boolean>true</boolean>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.1</real>
+				<key>tooltip</key>
+				<string>Make smoke like particles. Deprecated: Use llParticleSystem instead.\nMake smoky particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.</string>
+			</map>
+			<key>llManageEstateAccess</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Action</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>AvatarID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real/>
+				<key>return</key>
+				<string>integer</string>
+				<key>sleep</key>
+				<real/>
+				<key>tooltip</key>
+				<string>Use to add or remove agents from the estate's agent access or ban lists or groups from the estate's group access list.\nUse to add or remove agents from the estate's agent access or ban lists or groups from the estate's group access list.\n
 			Returns an integer representing a boolean, TRUE if the call was successful; FALSE if throttled, invalid action, invalid or null id or object owner is not allowed to manage the estate.</string>
-         </map>
-         <key>llMapDestination</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>RegionName</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Position</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Direction</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>1.0</real>
-            <key>tooltip</key>
-            <string>Opens world map centred on region with Position highlighted. Only works for scripts attached to avatar, or during touch events. NOTE: Direction currently does nothing.\nShows a given location on the map, opening the map window whenever it is called.\n
+			</map>
+			<key>llMapDestination</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>RegionName</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>Position</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+					<map>
+						<key>Direction</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>1.0</real>
+				<key>tooltip</key>
+				<string>Opens world map centred on region with Position highlighted. Only works for scripts attached to avatar, or during touch events. NOTE: Direction currently does nothing.\nShows a given location on the map, opening the map window whenever it is called.\n
 				There is no way to simply set the map position without opening the window.\n
 				Only works in attachments, or during touch events.</string>
-         </map>
-         <key>llMD5String</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Text</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Nonce</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns a string of 32 hex characters that is an RSA Data Security Inc., MD5 Message-Digest Algorithm of Text with Nonce.\nPerforms an RSA Data Security, Inc. MD5 Message-Digest Algorithm on the specified string using the nonce (also known as salt).\n
+			</map>
+			<key>llMD5String</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Text</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>Nonce</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>string</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns a string of 32 hex characters that is an RSA Data Security Inc., MD5 Message-Digest Algorithm of Text with Nonce.\nPerforms an RSA Data Security, Inc. MD5 Message-Digest Algorithm on the specified string using the nonce (also known as salt).\n
 				Returns a 32-character hex string. (128-bit in binary.)</string>
-         </map>
-         <key>llMessageLinked</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>LinkNumber</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Number</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Text</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>ID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Sends Number, Text, and ID to members of the link set identified by LinkNumber (LINK_ROOT sends to root task in a linked set, LINK_SET sends to all tasks, LINK_ALL_OTHERS to all other tasks, LINK_ALL_CHILDREN to all children, LINK_THIS to the task the script it is in).\nSends the specified number, string, and key to members of the link set.\n
+			</map>
+			<key>llMessageLinked</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>LinkNumber</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>Number</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>Text</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>ID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Sends Number, Text, and ID to members of the link set identified by LinkNumber (LINK_ROOT sends to root task in a linked set, LINK_SET sends to all tasks, LINK_ALL_OTHERS to all other tasks, LINK_ALL_CHILDREN to all children, LINK_THIS to the task the script it is in).\nSends the specified number, string, and key to members of the link set.\n
 				The LinkNumber parameter is either a linked number available through llGetLinkNumber or a LINK_* constant.</string>
-         </map>
-         <key>llMinEventDelay</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Delay</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Set the minimum time between events being handled.</string>
-         </map>
-         <key>llModifyLand</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Action</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Area</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Modify land with action (LAND_LEVEL, LAND_RAISE, LAND_LOWER, LAND_SMOOTH, LAND_NOISE, LAND_REVERT) on size (LAND_SMALL_BRUSH, LAND_MEDIUM_BRUSH, LAND_LARGE_BRUSH).\nModify land with action on size area. The parameters can be chosen from the land constants.</string>
-         </map>
-         <key>llModPow</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Value</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Power</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Modulus</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>sleep</key>
-            <real>1.0</real>
-            <key>tooltip</key>
-            <string>Returns a Value raised to the Power, mod Modulus. ((a**b)%c) b is capped at 0xFFFF (16 bits).\nReturns (Value ^ Power) % Modulus. (Value raised to the Power, Modulus). Value is capped at 0xFFFF (16 bits).</string>
-         </map>
-         <key>llMoveToTarget</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Target</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Tau</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Critically damp to Target in Tau seconds (if the script is physical).\nCritically damp to position target in tau-seconds if the script is physical. Good tau-values are greater than 0.2. A tau of 0.0 stops the critical damping.</string>
-         </map>
-         <key>llNavigateTo</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Location</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Options</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real/>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real/>
-            <key>tooltip</key>
-            <string>Navigate to destination.\nDirects an object to travel to a defined position in the region or adjacent regions.</string>
-         </map>
-         <key>llOffsetTexture</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>OffsetS</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-               <map>
-                  <key>OffsetT</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Face</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.2</real>
-            <key>tooltip</key>
-            <string>Sets the texture S and T offsets for the chosen Face.\nSets the texture s and t offsets of face.\n
+			</map>
+			<key>llMinEventDelay</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Delay</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Set the minimum time between events being handled.</string>
+			</map>
+			<key>llModifyLand</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Action</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>Area</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Modify land with action (LAND_LEVEL, LAND_RAISE, LAND_LOWER, LAND_SMOOTH, LAND_NOISE, LAND_REVERT) on size (LAND_SMALL_BRUSH, LAND_MEDIUM_BRUSH, LAND_LARGE_BRUSH).\nModify land with action on size area. The parameters can be chosen from the land constants.</string>
+			</map>
+			<key>llModPow</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Value</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>Power</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>Modulus</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>integer</string>
+				<key>sleep</key>
+				<real>1.0</real>
+				<key>tooltip</key>
+				<string>Returns a Value raised to the Power, mod Modulus. ((a**b)%c) b is capped at 0xFFFF (16 bits).\nReturns (Value ^ Power) % Modulus. (Value raised to the Power, Modulus). Value is capped at 0xFFFF (16 bits).</string>
+			</map>
+			<key>llMoveToTarget</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Target</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+					<map>
+						<key>Tau</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Critically damp to Target in Tau seconds (if the script is physical).\nCritically damp to position target in tau-seconds if the script is physical. Good tau-values are greater than 0.2. A tau of 0.0 stops the critical damping.</string>
+			</map>
+			<key>llNavigateTo</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Location</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+					<map>
+						<key>Options</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real/>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real/>
+				<key>tooltip</key>
+				<string>Navigate to destination.\nDirects an object to travel to a defined position in the region or adjacent regions.</string>
+			</map>
+			<key>llOffsetTexture</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>OffsetS</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+					<map>
+						<key>OffsetT</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+					<map>
+						<key>Face</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.2</real>
+				<key>tooltip</key>
+				<string>Sets the texture S and T offsets for the chosen Face.\nSets the texture s and t offsets of face.\n
 			If Face is ALL_SIDES this function sets the texture offsets for all faces.</string>
-         </map>
-         <key>llOpenRemoteDataChannel</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>deprecated</key>
-            <boolean>true</boolean>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>1.0</real>
-            <key>tooltip</key>
-            <string>Requests a channel to listen for XML-RPC calls. Will trigger a remote_data event with channel ID once it is available.\nRequests a channel to listen for XML-RPC calls. (Deprecated: XML-RPC should not be used. Use http-in instead.)\n
+			</map>
+			<key>llOpenRemoteDataChannel</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>deprecated</key>
+				<boolean>true</boolean>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>1.0</real>
+				<key>tooltip</key>
+				<string>Requests a channel to listen for XML-RPC calls. Will trigger a remote_data event with channel ID once it is available.\nRequests a channel to listen for XML-RPC calls. (Deprecated: XML-RPC should not be used. Use http-in instead.)\n
 				Will trigger a remote_data event with type = REMOTE_DATA_CHANNEL and a channel ID (key) once it is available.\n
 				This channel ID must be referenced in the XML-RPC call to the script (from the internet) -- so the key must somehow get to the scripter's XML-RPC client, most often via llEmail, llHttpRequest or llLoadUrl.</string>
-         </map>
-         <key>llOverMyLand</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>ID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns TRUE if id ID over land owned by the script owner, otherwise FALSE.\nReturns TRUE if key ID is over land owned by the object owner, FALSE otherwise.</string>
-         </map>
-         <key>llOwnerSay</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Text</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>says Text to owner only (if owner is in region).\nSays Text to the owner of the object running the script, if the owner has been within the object's simulator since logging into Second Life, regardless of where they may be in-world.</string>
-         </map>
-         <key>llParcelMediaCommandList</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>CommandList</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>2.0</real>
-            <key>tooltip</key>
-            <string>Sends a list of commands, some with arguments, to a parcel.\nControls the playback of multimedia resources on a parcel or for an agent.</string>
-         </map>
-         <key>llParcelMediaQuery</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>QueryList</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>list</string>
-            <key>sleep</key>
-            <real>2.0</real>
-            <key>tooltip</key>
-            <string>Returns a list containing results of the sent query.\nQueries the texture and/or URL for QuickTime-playable video on the land parcel.\n
+			</map>
+			<key>llOverMyLand</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>ID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>integer</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns TRUE if id ID over land owned by the script owner, otherwise FALSE.\nReturns TRUE if key ID is over land owned by the object owner, FALSE otherwise.</string>
+			</map>
+			<key>llOwnerSay</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Text</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>says Text to owner only (if owner is in region).\nSays Text to the owner of the object running the script, if the owner has been within the object's simulator since logging into Second Life, regardless of where they may be in-world.</string>
+			</map>
+			<key>llParcelMediaCommandList</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>CommandList</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>2.0</real>
+				<key>tooltip</key>
+				<string>Sends a list of commands, some with arguments, to a parcel.\nControls the playback of multimedia resources on a parcel or for an agent.</string>
+			</map>
+			<key>llParcelMediaQuery</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>QueryList</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>list</string>
+				<key>sleep</key>
+				<real>2.0</real>
+				<key>tooltip</key>
+				<string>Returns a list containing results of the sent query.\nQueries the texture and/or URL for QuickTime-playable video on the land parcel.\n
 				This function will only work if the script is contained within an object owned by the land-owner (or if the land is owned by a group, only if the object has been deeded to the group). It will not work for group land if the object owner is a member of the group. The object actually has to be owned by the group.</string>
-         </map>
-         <key>llParseString2List</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Text</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Separators</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Spacers</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>list</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Breaks Text into a list, discarding Separators, keeping Spacers (Separators and Spacers must be lists of strings, maximum of 8 each).\nBreaks the Text into a list using Separators and Spacers to delimit entries. Separators are discarded, while Spacers are kept. Any empty entries are ignored.\n
+			</map>
+			<key>llParseString2List</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Text</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>Separators</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+					<map>
+						<key>Spacers</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>list</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Breaks Text into a list, discarding Separators, keeping Spacers (Separators and Spacers must be lists of strings, maximum of 8 each).\nBreaks the Text into a list using Separators and Spacers to delimit entries. Separators are discarded, while Spacers are kept. Any empty entries are ignored.\n
 				The separators and spacers must be lists of strings with a maximum of 8 entries each. So, if you had made the call:\n
 				llParseString2List("Parsethisnow! I dare:you to.", ["this", "!", " "], [":"]);\n
 				You would get the list: ["Parse", "now", "I", "dare", ":", "you", "to"].</string>
-         </map>
-         <key>llParseStringKeepNulls</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Text</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Separators</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Spacers</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>list</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Breaks Text into a list, discarding separators, keeping spacers, keeping any null values generated. (separators and spacers must be lists of strings, maximum of 8 each).\nllParseStringKeepNulls works almost exactly like llParseString2List, except that if a null is found it will add a null-string instead of discarding it like llParseString2List does.</string>
-         </map>
-         <key>llParticleSystem</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Parameters</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Creates a particle system based on Parameters.	An empty list removes particle system from object.
+			</map>
+			<key>llParseStringKeepNulls</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Text</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>Separators</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+					<map>
+						<key>Spacers</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>list</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Breaks Text into a list, discarding separators, keeping spacers, keeping any null values generated. (separators and spacers must be lists of strings, maximum of 8 each).\nllParseStringKeepNulls works almost exactly like llParseString2List, except that if a null is found it will add a null-string instead of discarding it like llParseString2List does.</string>
+			</map>
+			<key>llParticleSystem</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Parameters</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Creates a particle system based on Parameters.	An empty list removes particle system from object.
 				List format is [ rule-1, data-1, rule-2, data-2 . . . rule-n, data-n ].\nMakes a particle system based on the parameter list.\n
 				The parameters are specified as an ordered list of parameter and value. Valid parameters and their expected values can be found in the particle system constants.\n
 				Here is a simple example:\n
 				llParticleSystem([PSYS_PART_FLAGS, PSYS_PART_WIND_MASK, PSYS_PART_START_COLOR, &lt;1, 0, 0&gt;, PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_EXPLODE]);</string>
-         </map>
-         <key>llPassCollisions</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Pass</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>If Pass == TRUE, collisions are passed from children on to parents (default is FALSE).\nIf pass is TRUE, land and object collisions are passed from children on to parents.\n
+			</map>
+			<key>llPassCollisions</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Pass</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>If Pass == TRUE, collisions are passed from children on to parents (default is FALSE).\nIf pass is TRUE, land and object collisions are passed from children on to parents.\n
 				The default is FALSE if there is no script to handle the collision events.</string>
-         </map>
-         <key>llPassTouches</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Pass</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>If pass == TRUE, touches are passed from children on to parents (default is FALSE).\nIf pass is TRUE, touches are passed from children on to parents.\n
+			</map>
+			<key>llPassTouches</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Pass</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>If pass == TRUE, touches are passed from children on to parents (default is FALSE).\nIf pass is TRUE, touches are passed from children on to parents.\n
 				The default is TRUE if there is no script to handle the touch events.</string>
-         </map>
-         <key>llPatrolPoints</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Points</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Options</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real/>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real/>
-            <key>tooltip</key>
-            <string>Patrol a list of points.\nSets the points for a character (llCreateCharacter) to patrol along.</string>
-         </map>
-         <key>llPlaySound</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Sound</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Volume</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Plays attached Sound once, at Volume (0.0 - 1.0).\nPlays a sound once. The sound will be attached to the object and follow object's movement. Only one sound may be attached to an object at a time, and attaching a new sound or calling llStopSound will stop the previously attached sound.\n
+			</map>
+			<key>llPatrolPoints</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Points</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+					<map>
+						<key>Options</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real/>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real/>
+				<key>tooltip</key>
+				<string>Patrol a list of points.\nSets the points for a character (llCreateCharacter) to patrol along.</string>
+			</map>
+			<key>llPlaySound</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Sound</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>Volume</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Plays attached Sound once, at Volume (0.0 - 1.0).\nPlays a sound once. The sound will be attached to the object and follow object's movement. Only one sound may be attached to an object at a time, and attaching a new sound or calling llStopSound will stop the previously attached sound.\n
 				A second call to llPlaySound with the same sound will not restart the sound, but the new volume will be used, which allows control over the volume of already playing sounds.\n
 				To restart the sound from the beginning, call llStopSound before calling llPlaySound again.</string>
-         </map>
-         <key>llPlaySoundSlave</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Sound</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Volume</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Plays attached Sound once, at Volume (0.0 - 1.0), synced to next loop of most audible sync master.\nBehaviour is identical to llPlaySound, unless there is a "Sync Master" present. If a Sync Master is already playing, the Slave sound will not be played until the Master hits its loop point and returns to the beginning.\n
+			</map>
+			<key>llPlaySoundSlave</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Sound</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>Volume</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Plays attached Sound once, at Volume (0.0 - 1.0), synced to next loop of most audible sync master.\nBehaviour is identical to llPlaySound, unless there is a "Sync Master" present. If a Sync Master is already playing, the Slave sound will not be played until the Master hits its loop point and returns to the beginning.\n
 				llPlaySoundSlave will play the sound exactly once; if it is desired to have the sound play every time the Master loops, either use llLoopSoundSlave with extra silence padded on the end of the sound or ensure that llPlaySoundSlave is called at least once per loop of the Master.</string>
-         </map>
-         <key>llPow</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Value</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Exponent</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the Value raised to the power Exponent, or returns 0 and triggers Math Error for imaginary results.\nReturns the Value raised to the Exponent.</string>
-         </map>
-         <key>llPreloadSound</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Sound</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>1.0</real>
-            <key>tooltip</key>
-            <string>Preloads a sound on viewers within range.\nCauses nearby viewers to preload the Sound from the object's inventory. This is intended to prevent delays in starting new sounds when called upon.</string>
-         </map>
-         <key>llPursue</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>TargetID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Options</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real/>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real/>
-            <key>tooltip</key>
-            <string>Chase after a target.\nCauses the character (llCharacter) to pursue the target defined by TargetID.</string>
-         </map>
-         <key>llPushObject</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>ObjectID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Impulse</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-               <map>
-                  <key>AngularImpulse</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Local</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Applies Impulse and AngularImpulse to ObjectID.\nApplies the supplied impulse and angular impulse to the object specified.</string>
-         </map>
-         <key>llRefreshPrimURL</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>20.0</real>
-            <key>tooltip</key>
-            <string>Reloads the web page shown on the sides of the object.</string>
-         </map>
-         <key>llRegionSay</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Channel</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Text</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Broadcasts Text to entire region on Channel (not 0.).\nSays the Text on the specified non-zero Channel, so that it can be heard anywhere in the region by a script listening on that channel.</string>
-         </map>
-         <key>llRegionSayTo</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>TargetID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Channel</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Text</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Says Text, on Channel, to avatar or object indicated by TargetID (if within region).\nSays the Text on the supplied channel number, to the object or avatar specified.</string>
-         </map>
-         <key>llReleaseCamera</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>AvatarID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-            </array>
-            <key>deprecated</key>
-            <boolean>true</boolean>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Return camera to agent.\nDeprecated: Use llClearCameraParams instead.</string>
-         </map>
-         <key>llReleaseControls</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Stop taking inputs.\nStop taking inputs from the avatar.</string>
-         </map>
-         <key>llReleaseURL</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>URL</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Releases the specified URL, it will no longer be usable.</string>
-         </map>
-         <key>llRemoteDataReply</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>ChannelID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-               <map>
-                  <key>MessageID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Data</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Data</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>deprecated</key>
-            <boolean>true</boolean>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>3.0</real>
-            <key>tooltip</key>
-            <string>Send an XML-RPC reply to MessageID on ChannelID with payload of string sData and integer iData. Deprecated: Use HTTP functions/events instead.\nDeprecated: Use HTTP functions/events instead.\n
+			</map>
+			<key>llPow</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Value</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+					<map>
+						<key>Exponent</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the Value raised to the power Exponent, or returns 0 and triggers Math Error for imaginary results.\nReturns the Value raised to the Exponent.</string>
+			</map>
+			<key>llPreloadSound</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Sound</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>1.0</real>
+				<key>tooltip</key>
+				<string>Preloads a sound on viewers within range.\nCauses nearby viewers to preload the Sound from the object's inventory. This is intended to prevent delays in starting new sounds when called upon.</string>
+			</map>
+			<key>llPursue</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>TargetID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+					<map>
+						<key>Options</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real/>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real/>
+				<key>tooltip</key>
+				<string>Chase after a target.\nCauses the character (llCharacter) to pursue the target defined by TargetID.</string>
+			</map>
+			<key>llPushObject</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>ObjectID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+					<map>
+						<key>Impulse</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+					<map>
+						<key>AngularImpulse</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+					<map>
+						<key>Local</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Applies Impulse and AngularImpulse to ObjectID.\nApplies the supplied impulse and angular impulse to the object specified.</string>
+			</map>
+			<key>llRefreshPrimURL</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>20.0</real>
+				<key>tooltip</key>
+				<string>Reloads the web page shown on the sides of the object.</string>
+			</map>
+			<key>llRegionSay</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Channel</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>Text</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Broadcasts Text to entire region on Channel (not 0.).\nSays the Text on the specified non-zero Channel, so that it can be heard anywhere in the region by a script listening on that channel.</string>
+			</map>
+			<key>llRegionSayTo</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>TargetID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+					<map>
+						<key>Channel</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>Text</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Says Text, on Channel, to avatar or object indicated by TargetID (if within region).\nSays the Text on the supplied channel number, to the object or avatar specified.</string>
+			</map>
+			<key>llReleaseCamera</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>AvatarID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+				</array>
+				<key>deprecated</key>
+				<boolean>true</boolean>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Return camera to agent.\nDeprecated: Use llClearCameraParams instead.</string>
+			</map>
+			<key>llReleaseControls</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Stop taking inputs.\nStop taking inputs from the avatar.</string>
+			</map>
+			<key>llReleaseURL</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>URL</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Releases the specified URL, it will no longer be usable.</string>
+			</map>
+			<key>llRemoteDataReply</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>ChannelID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+					<map>
+						<key>MessageID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+					<map>
+						<key>Data</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>Data</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>deprecated</key>
+				<boolean>true</boolean>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>3.0</real>
+				<key>tooltip</key>
+				<string>Send an XML-RPC reply to MessageID on ChannelID with payload of string sData and integer iData. Deprecated: Use HTTP functions/events instead.\nDeprecated: Use HTTP functions/events instead.\n
 				Send an XML-RPC reply to the request with kMessageID on kChannelID with payload of string sData and integer iData.\n
 				The size of sData is limited to 254 characters.</string>
-         </map>
-         <key>llRemoteDataSetRegion</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>deprecated</key>
-            <boolean>true</boolean>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Deprecated: Use HTTP functions/events instead.\n
+			</map>
+			<key>llRemoteDataSetRegion</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>deprecated</key>
+				<boolean>true</boolean>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Deprecated: Use HTTP functions/events instead.\n
 				If an object using remote data channels changes regions, you must call this function to re-register the remote data channels.
 				You do not need to make this call if you don't change regions.\nDeprecated: Use HTTP functions/events instead.\n
 				Does not work! Use llOpenRemoteDataChannel instead.</string>
-         </map>
-         <key>llRemoteLoadScriptPin</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>ObjectID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-               <map>
-                  <key>ScriptName</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>PIN</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Running</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>StartParameter</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>3.0</real>
-            <key>tooltip</key>
-            <string>If the owner of the object this script is attached to can modify ObjectID, they are in the same region, and the matching PIN is used, copy ScriptName into target, if Running == TRUE, start the script with StartParameter.\nIf the owner of the object containing this script can modify the object identified by the specified object key, and if the PIN matches the PIN previously set using llSetRemoteScriptAccessPin (on the target prim), then the script will be copied into target.</string>
-         </map>
-         <key>llRemoveFromLandBanList</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>AvatarID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Remove avatar from the land ban list.\nRemove specified avatar from the land parcel ban list.</string>
-         </map>
-         <key>llRemoveFromLandPassList</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>AvatarID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Remove avatar from the land pass list.\nRemove specified avatar from the land parcel pass list.</string>
-         </map>
-         <key>llRemoveInventory</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>InventoryItem</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Remove the named inventory item.\nRemove the named inventory item from the object inventory.</string>
-         </map>
-         <key>llRemoveVehicleFlags</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Vehiclelags</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Removes the enabled bits in 'flags'.\nSets the vehicle flags to FALSE. Valid parameters can be found in the vehicle flags constants section.</string>
-         </map>
-         <key>llRequestAgentData</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>AvatarID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Data</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>sleep</key>
-            <real>0.1</real>
-            <key>tooltip</key>
-            <string>Requests data about AvatarID. When data is available the dataserver event will be raised.\nThis function requests data about an avatar. If and when the information is collected, the dataserver event is triggered with the key returned from this function passed in the requested parameter. See the agent data constants (DATA_*) for details about valid values of data and what each will return in the dataserver event.</string>
-         </map>
-         <key>llRequestDisplayName</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>AvatarID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Requests name of an avatar. When data is available, the dataserver event will be raised.\nRequests the Display Name of the agent. When the Display Name is available the dataserver event will be raised.\n
+			</map>
+			<key>llRemoteLoadScriptPin</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>ObjectID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+					<map>
+						<key>ScriptName</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>PIN</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>Running</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>StartParameter</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>3.0</real>
+				<key>tooltip</key>
+				<string>If the owner of the object this script is attached to can modify ObjectID, they are in the same region, and the matching PIN is used, copy ScriptName into target, if Running == TRUE, start the script with StartParameter.\nIf the owner of the object containing this script can modify the object identified by the specified object key, and if the PIN matches the PIN previously set using llSetRemoteScriptAccessPin (on the target prim), then the script will be copied into target.</string>
+			</map>
+			<key>llRemoveFromLandBanList</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>AvatarID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Remove avatar from the land ban list.\nRemove specified avatar from the land parcel ban list.</string>
+			</map>
+			<key>llRemoveFromLandPassList</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>AvatarID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Remove avatar from the land pass list.\nRemove specified avatar from the land parcel pass list.</string>
+			</map>
+			<key>llRemoveInventory</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>InventoryItem</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Remove the named inventory item.\nRemove the named inventory item from the object inventory.</string>
+			</map>
+			<key>llRemoveVehicleFlags</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Vehiclelags</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Removes the enabled bits in 'flags'.\nSets the vehicle flags to FALSE. Valid parameters can be found in the vehicle flags constants section.</string>
+			</map>
+			<key>llRequestAgentData</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>AvatarID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+					<map>
+						<key>Data</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>key</string>
+				<key>sleep</key>
+				<real>0.1</real>
+				<key>tooltip</key>
+				<string>Requests data about AvatarID. When data is available the dataserver event will be raised.\nThis function requests data about an avatar. If and when the information is collected, the dataserver event is triggered with the key returned from this function passed in the requested parameter. See the agent data constants (DATA_*) for details about valid values of data and what each will return in the dataserver event.</string>
+			</map>
+			<key>llRequestDisplayName</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>AvatarID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>key</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Requests name of an avatar. When data is available, the dataserver event will be raised.\nRequests the Display Name of the agent. When the Display Name is available the dataserver event will be raised.\n
 				The avatar identified does not need to be in the same region or online at the time of the request.\n
 				Returns a key that is used to identify the dataserver event when it is raised.</string>
-         </map>
-         <key>llRequestInventoryData</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>InventoryItem</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>sleep</key>
-            <real>1.0</real>
-            <key>tooltip</key>
-            <string>Requests data from object's inventory object. When data is available the dataserver event will be raised.\nRequests data for the object inventory item named.\n
+			</map>
+			<key>llRequestInventoryData</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>InventoryItem</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>key</string>
+				<key>sleep</key>
+				<real>1.0</real>
+				<key>tooltip</key>
+				<string>Requests data from object's inventory object. When data is available the dataserver event will be raised.\nRequests data for the object inventory item named.\n
 				When data is available the dataserver event will be raised with the key returned from this function in the requested parameter.\n
 				The only request currently implemented is to request data from landmarks, where the data returned is in the form "&lt;float, float, float&gt;" which can be cast to a vector. This position is in region local coordinates.</string>
-         </map>
-         <key>llRequestPermissions</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>AvatarID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-               <map>
-                  <key>PermmissionMask</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Ask AvatarID to allow the script to do PermmissionMask (NB: Debit, ownership, link, joint, and permission requests can only go to the task's owner).\nAsk avatar to allow the script to perform certain actions. The permission flag should be one or more PERMISSION_* constants.\n
+			</map>
+			<key>llRequestPermissions</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>AvatarID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+					<map>
+						<key>PermmissionMask</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Ask AvatarID to allow the script to do PermmissionMask (NB: Debit, ownership, link, joint, and permission requests can only go to the task's owner).\nAsk avatar to allow the script to perform certain actions. The permission flag should be one or more PERMISSION_* constants.\n
 				Multiple permissions can be requested simultaneously by ORing the constants together. Many of the permissions requests can only go to object owner.\n
 				This call will not stop script execution. If the avatar grants the requested permissions, the run_time_permissions event will be called.\n
 				Permissions for a single avatar are granted to a script, not to an object. So multiple scripts can hold permissions for multiple avatars.</string>
-         </map>
-         <key>llRequestSecureURL</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Requests one HTTPS:// (SSL) URL for use by this object. An http_request event is triggered with the results.\nRequests one HTTPS:// (SSL) URL for use by this object. The http_request event is triggered with results.\n
+			</map>
+			<key>llRequestSecureURL</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>key</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Requests one HTTPS:// (SSL) URL for use by this object. An http_request event is triggered with the results.\nRequests one HTTPS:// (SSL) URL for use by this object. The http_request event is triggered with results.\n
 				Returns a key that is the handle used for identifying the request in the http_request event.</string>
-         </map>
-         <key>llRequestSimulatorData</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>RegionName</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Data</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>sleep</key>
-            <real>1.0</real>
-            <key>tooltip</key>
-            <string>Requests data about a simulator. When data is available the dataserver event will be raised.\nRequests data about the region named. Data should use one of the DATA_SIM_* constants.\n
+			</map>
+			<key>llRequestSimulatorData</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>RegionName</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>Data</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>key</string>
+				<key>sleep</key>
+				<real>1.0</real>
+				<key>tooltip</key>
+				<string>Requests data about a simulator. When data is available the dataserver event will be raised.\nRequests data about the region named. Data should use one of the DATA_SIM_* constants.\n
 			Returns a dataserver query ID and triggers the dataserver event when data is found. The region name is usually not case-sensitive, but sometimes will return data for a similarly-named region if the supplied case doesn't match the intended region's actual name.</string>
-         </map>
-         <key>llRequestURL</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Requests one HTTP:// URL for use by this object. An http_request event is triggered with the results.\nRequests one HTTP:// URL for use by this script. The http_request event is triggered with the result of the request.\n
+			</map>
+			<key>llRequestURL</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>key</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Requests one HTTP:// URL for use by this object. An http_request event is triggered with the results.\nRequests one HTTP:// URL for use by this script. The http_request event is triggered with the result of the request.\n
 				Returns a key that is the handle used for identifying the result in the http_request event.</string>
-         </map>
-         <key>llRequestUsername</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>AvatarID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Requests single-word user-name of an avatar. When data is available the dataserver event will be raised.\nRequests the user-name of the identified agent. When the user-name is available the dataserver event is raised.\nThe agent identified does not need to be in the same region or online at the time of the request.\nReturns a key that is used to identify the dataserver event when it is raised.</string>
-         </map>
-         <key>llResetAnimationOverride</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>AnimationState</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0</real>
-            <key>tooltip</key>
-            <string>Resets the animation of the specified animation state to the default value.\nIf animation state equals "ALL", then all animation states are reset.</string>
-         </map>
-         <key>llResetLandBanList</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Removes all residents from the land ban list.</string>
-         </map>
-         <key>llResetLandPassList</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Removes all residents from the land access/pass list.</string>
-         </map>
-         <key>llResetOtherScript</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>ScriptName</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Resets the named script.</string>
-         </map>
-         <key>llResetScript</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Resets the script.</string>
-         </map>
-         <key>llResetTime</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Sets the time to zero.\nSets the internal timer to zero.</string>
-         </map>
-         <key>llReturnObjectsByID</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>ObjectIDs</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Return objects using their UUIDs</string>
-         </map>
-         <key>llReturnObjectsByOwner</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>ID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Scope</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Return objects based upon their owner and a scope of parcel, parcel owner, or region.</string>
-         </map>
-         <key>llRezAtRoot</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>InventoryItem</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Position</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Velocity</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Rotation</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>rotation</string>
-                  </map>
-               </map>
-               <map>
-                  <key>StartParameter</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>200.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.1</real>
-            <key>tooltip</key>
-            <string>Instantiate owner's InventoryItem at Position with Velocity, Rotation and with StartParameter. The last selected root object's location will be set to Position.\nCreates object's inventory item at the given Position, with Velocity, Rotation, and StartParameter.</string>
-         </map>
-         <key>llRezObject</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>InventoryItem</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Position</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Velocity</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Rotation</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>rotation</string>
-                  </map>
-               </map>
-               <map>
-                  <key>StartParameter</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>200</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.1</real>
-            <key>tooltip</key>
-            <string>Instantiate owners InventoryItem at Position with Velocity, Rotation and with start StartParameter.\nCreates object's inventory item at Position with Velocity and Rotation supplied. The StartParameter value will be available to the newly created object in the on_rez event or through the llGetStartParameter function.\nThe Velocity parameter is ignored if the rezzed object is not physical.</string>
-         </map>
-         <key>llRot2Angle</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Rotation</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>rotation</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the rotation angle represented by Rotation.\nReturns the angle represented by the Rotation.</string>
-         </map>
-         <key>llRot2Axis</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Rotation</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>rotation</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the rotation axis represented by Rotation.\nReturns the axis represented by the Rotation.</string>
-         </map>
-         <key>llRot2Euler</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Rotation</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>rotation</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the Euler representation (roll, pitch, yaw) of Rotation.\nReturns the Euler Angle representation of the Rotation.</string>
-         </map>
-         <key>llRot2Fwd</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Rotation</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>rotation</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the forward vector defined by Rotation.\nReturns the forward axis represented by the Rotation.</string>
-         </map>
-         <key>llRot2Left</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Rotation</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>rotation</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the left vector defined by Rotation.\nReturns the left axis represented by the Rotation.</string>
-         </map>
-         <key>llRot2Up</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Rotation</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>rotation</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the up vector defined by Rotation.\nReturns the up axis represented by the Rotation.</string>
-         </map>
-         <key>llRotateTexture</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Radians</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Face</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.2</real>
-            <key>tooltip</key>
-            <string>Sets the texture rotation for the chosen face.\nSets the rotation of the texture on the given side.\n
+			</map>
+			<key>llRequestUsername</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>AvatarID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>key</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Requests single-word user-name of an avatar. When data is available the dataserver event will be raised.\nRequests the user-name of the identified agent. When the user-name is available the dataserver event is raised.\nThe agent identified does not need to be in the same region or online at the time of the request.\nReturns a key that is used to identify the dataserver event when it is raised.</string>
+			</map>
+			<key>llResetAnimationOverride</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>AnimationState</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0</real>
+				<key>tooltip</key>
+				<string>Resets the animation of the specified animation state to the default value.\nIf animation state equals "ALL", then all animation states are reset.</string>
+			</map>
+			<key>llResetLandBanList</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Removes all residents from the land ban list.</string>
+			</map>
+			<key>llResetLandPassList</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Removes all residents from the land access/pass list.</string>
+			</map>
+			<key>llResetOtherScript</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>ScriptName</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Resets the named script.</string>
+			</map>
+			<key>llResetScript</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Resets the script.</string>
+			</map>
+			<key>llResetTime</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Sets the time to zero.\nSets the internal timer to zero.</string>
+			</map>
+			<key>llReturnObjectsByID</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>ObjectIDs</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>integer</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Return objects using their UUIDs</string>
+			</map>
+			<key>llReturnObjectsByOwner</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>ID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+					<map>
+						<key>Scope</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>integer</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Return objects based upon their owner and a scope of parcel, parcel owner, or region.</string>
+			</map>
+			<key>llRezAtRoot</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>InventoryItem</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>Position</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+					<map>
+						<key>Velocity</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+					<map>
+						<key>Rotation</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>rotation</string>
+						</map>
+					</map>
+					<map>
+						<key>StartParameter</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>200.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.1</real>
+				<key>tooltip</key>
+				<string>Instantiate owner's InventoryItem at Position with Velocity, Rotation and with StartParameter. The last selected root object's location will be set to Position.\nCreates object's inventory item at the given Position, with Velocity, Rotation, and StartParameter.</string>
+			</map>
+			<key>llRezObject</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>InventoryItem</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>Position</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+					<map>
+						<key>Velocity</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+					<map>
+						<key>Rotation</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>rotation</string>
+						</map>
+					</map>
+					<map>
+						<key>StartParameter</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>200</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.1</real>
+				<key>tooltip</key>
+				<string>Instantiate owners InventoryItem at Position with Velocity, Rotation and with start StartParameter.\nCreates object's inventory item at Position with Velocity and Rotation supplied. The StartParameter value will be available to the newly created object in the on_rez event or through the llGetStartParameter function.\nThe Velocity parameter is ignored if the rezzed object is not physical.</string>
+			</map>
+			<key>llRot2Angle</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Rotation</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>rotation</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>float</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the rotation angle represented by Rotation.\nReturns the angle represented by the Rotation.</string>
+			</map>
+			<key>llRot2Axis</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Rotation</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>rotation</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>vector</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the rotation axis represented by Rotation.\nReturns the axis represented by the Rotation.</string>
+			</map>
+			<key>llRot2Euler</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Rotation</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>rotation</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>vector</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the Euler representation (roll, pitch, yaw) of Rotation.\nReturns the Euler Angle representation of the Rotation.</string>
+			</map>
+			<key>llRot2Fwd</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Rotation</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>rotation</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>vector</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the forward vector defined by Rotation.\nReturns the forward axis represented by the Rotation.</string>
+			</map>
+			<key>llRot2Left</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Rotation</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>rotation</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>vector</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the left vector defined by Rotation.\nReturns the left axis represented by the Rotation.</string>
+			</map>
+			<key>llRot2Up</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Rotation</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>rotation</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>vector</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the up vector defined by Rotation.\nReturns the up axis represented by the Rotation.</string>
+			</map>
+			<key>llRotateTexture</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Radians</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+					<map>
+						<key>Face</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.2</real>
+				<key>tooltip</key>
+				<string>Sets the texture rotation for the chosen face.\nSets the rotation of the texture on the given side.\n
 				If face is ALL_SIDES, rotates the texture of all sides.</string>
-         </map>
-         <key>llRotBetween</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Vector1</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Vector2</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>rotation</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the rotation to rotate Vector1 to Vector2.\nReturns the rotation needed to rotate Vector1 to Vector2.</string>
-         </map>
-         <key>llRotLookAt</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Rotation</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>rotation</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Strength</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Damping</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Cause object to point it's forward axis towards Rotation.\nCause object to rotate to Rotation. Good strength values are around half the mass of the object and good damping values are less than 1/10th of the strength.\n
+			</map>
+			<key>llRotBetween</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Vector1</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+					<map>
+						<key>Vector2</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>rotation</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the rotation to rotate Vector1 to Vector2.\nReturns the rotation needed to rotate Vector1 to Vector2.</string>
+			</map>
+			<key>llRotLookAt</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Rotation</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>rotation</string>
+						</map>
+					</map>
+					<map>
+						<key>Strength</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+					<map>
+						<key>Damping</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Cause object to point it's forward axis towards Rotation.\nCause object to rotate to Rotation. Good strength values are around half the mass of the object and good damping values are less than 1/10th of the strength.\n
 				Asymmetrical shapes require smaller damping.\n
 				A strength of 0.0 cancels the look at.</string>
-         </map>
-         <key>llRotTarget</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Rotation</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>rotation</string>
-                  </map>
-               </map>
-               <map>
-                  <key>LeeWay</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Set rotations with error of LeeWay as a rotational target and return an ID for the rotational target.\nSet object rotation within the given lee way of rotation as a rotational target and return an integer number for the target.\n
+			</map>
+			<key>llRotTarget</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Rotation</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>rotation</string>
+						</map>
+					</map>
+					<map>
+						<key>LeeWay</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>integer</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Set rotations with error of LeeWay as a rotational target and return an ID for the rotational target.\nSet object rotation within the given lee way of rotation as a rotational target and return an integer number for the target.\n
 				The returned number is a handle that can be used in llRotTargetRemove.</string>
-         </map>
-         <key>llRotTargetRemove</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Handle</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Removes rotational target number.\nRemove rotational target indicated by the handle.</string>
-         </map>
-         <key>llRound</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Value</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns Value rounded to the nearest integer.\nReturns the Value rounded to the nearest integer.</string>
-         </map>
-         <key>llSameGroup</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>ID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns TRUE if avatar ID is in the same region and has the same active group, otherwise FALSE.\nReturns TRUE if the object or agent identified is in the same simulator and has the same active group as this object. Otherwise, returns FALSE.</string>
-         </map>
-         <key>llSay</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Channel</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Text</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Says Text on Channel.\nSay Text on channel.\n
+			</map>
+			<key>llRotTargetRemove</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Handle</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Removes rotational target number.\nRemove rotational target indicated by the handle.</string>
+			</map>
+			<key>llRound</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Value</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>integer</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns Value rounded to the nearest integer.\nReturns the Value rounded to the nearest integer.</string>
+			</map>
+			<key>llSameGroup</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>ID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>integer</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns TRUE if avatar ID is in the same region and has the same active group, otherwise FALSE.\nReturns TRUE if the object or agent identified is in the same simulator and has the same active group as this object. Otherwise, returns FALSE.</string>
+			</map>
+			<key>llSay</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Channel</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>Text</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Says Text on Channel.\nSay Text on channel.\n
 			Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 to 2,147,483,648 are private channels that are not sent to avatars but other scripts can listen for through the llListen/listen event system.</string>
-         </map>
-         <key>llScaleTexture</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Horizontal</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Vertical</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Face</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.2</real>
-            <key>tooltip</key>
-            <string>Sets the texture's S and T scales for the chosen Face.\nSets the Horizontal and Vertical repeats per Face on Face.\n
+			</map>
+			<key>llScaleTexture</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Horizontal</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+					<map>
+						<key>Vertical</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+					<map>
+						<key>Face</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.2</real>
+				<key>tooltip</key>
+				<string>Sets the texture's S and T scales for the chosen Face.\nSets the Horizontal and Vertical repeats per Face on Face.\n
 				If Face == ALL_SIDES, all sides are set in one call.\n
 				Negative values for horizontal and vertical will flip the texture.</string>
-         </map>
-         <key>llScriptDanger</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Position</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns TRUE if Position is over public land, sandbox land, land that doesn't allow everyone to edit and build, or land that doesn't allow outside scripts.\nReturns true if the position is over public land, land that doesn't allow everyone to edit and build, or land that doesn't allow outside scripts.</string>
-         </map>
-         <key>llScriptProfiler</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>State</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Enables or disables script profiling options. Currently only supports PROFILE_SCRIPT_MEMORY (Mono only) and PROFILE_NONE.\n
+			</map>
+			<key>llScriptDanger</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Position</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>integer</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns TRUE if Position is over public land, sandbox land, land that doesn't allow everyone to edit and build, or land that doesn't allow outside scripts.\nReturns true if the position is over public land, land that doesn't allow everyone to edit and build, or land that doesn't allow outside scripts.</string>
+			</map>
+			<key>llScriptProfiler</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>State</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Enables or disables script profiling options. Currently only supports PROFILE_SCRIPT_MEMORY (Mono only) and PROFILE_NONE.\n
 				MAY SIGNIFICANTLY REDUCE SCRIPT PERFORMANCE!.\nEnables or disables the scripts profiling state.. Currently only supports PROFILE_SCRIPT_MEMORY (Mono only) and PROFILE_NONE.\n
 				MAY SIGNIFICANTLY REDUCE SCRIPT PERFORMANCE!.</string>
-         </map>
-         <key>llSendRemoteData</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>ChannelID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Destination</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Value</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Text</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-            </array>
-            <key>deprecated</key>
-            <boolean>true</boolean>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>key</string>
-            <key>sleep</key>
-            <real>3.0</real>
-            <key>tooltip</key>
-            <string>Deprecated: use HTTP instead.\n
+			</map>
+			<key>llSendRemoteData</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>ChannelID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+					<map>
+						<key>Destination</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>Value</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>Text</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+				</array>
+				<key>deprecated</key>
+				<boolean>true</boolean>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>key</string>
+				<key>sleep</key>
+				<real>3.0</real>
+				<key>tooltip</key>
+				<string>Deprecated: use HTTP instead.\n
 				Sends an XML-RPC request to Destination through ChannelID with payload of ChannelID (in a string), integer Value and string Text.
 				Returns a key that is the message_id for the resulting remote_data events.\nSend an XML-RPC request to the Destination (probably an URL) through the ChannelID, with a payload of ChannelID (in a string), integer Value and string Text.</string>
-         </map>
-         <key>llSensor</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Name</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>ID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Type</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Range</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Arc</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Performs a single scan for Name and ID with Type (AGENT, ACTIVE, PASSIVE, and/or SCRIPTED) within Range meters and Arc radians of forward vector (Name, ID, and/or Type can be empty or 0).\nPerforms a single scan for Name and ID with Type within Range meters and Arc radians of the forward vector.\n
+			</map>
+			<key>llSensor</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Name</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>ID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+					<map>
+						<key>Type</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>Range</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+					<map>
+						<key>Arc</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Performs a single scan for Name and ID with Type (AGENT, ACTIVE, PASSIVE, and/or SCRIPTED) within Range meters and Arc radians of forward vector (Name, ID, and/or Type can be empty or 0).\nPerforms a single scan for Name and ID with Type within Range meters and Arc radians of the forward vector.\n
 				Specifying a blank Name or NULL_KEY ID will prevent filtering results for a particular Name or ID. A range of 0.0 does not perform a scan. The Type parameter should be an object type constant value.</string>
-         </map>
-         <key>llSensorRemove</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>removes sensor.\nRemoves the sensor set by llSensorRepeat.</string>
-         </map>
-         <key>llSensorRepeat</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Name</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>ID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Type</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Range</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Arc</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Rate</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Sets a callback for Name and ID with Type (AGENT, ACTIVE, PASSIVE, and/or SCRIPTED) within Range meters and Arc radians of forward vector (Name, ID, and/or Type can be empty or 0) and repeats every Rate seconds.\nPerforms a repeating sensor scan for Name and ID with Type within Range meters and Arc radians of the forward vector (Name and/or ID can be empty or NULL_KEY).\n
+			</map>
+			<key>llSensorRemove</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>removes sensor.\nRemoves the sensor set by llSensorRepeat.</string>
+			</map>
+			<key>llSensorRepeat</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Name</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>ID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+					<map>
+						<key>Type</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>Range</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+					<map>
+						<key>Arc</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+					<map>
+						<key>Rate</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Sets a callback for Name and ID with Type (AGENT, ACTIVE, PASSIVE, and/or SCRIPTED) within Range meters and Arc radians of forward vector (Name, ID, and/or Type can be empty or 0) and repeats every Rate seconds.\nPerforms a repeating sensor scan for Name and ID with Type within Range meters and Arc radians of the forward vector (Name and/or ID can be empty or NULL_KEY).\n
 				A range of 0.0m does not perform a scan. The parameters have the same function as llSensor, except Rate, which defines the number of seconds between repeated scans and subsequent sensor or no_sensor events.</string>
-         </map>
-         <key>llSetAlpha</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Opacity</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Face</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Sets the alpha (opacity) of Face.\nSets the alpha (opacity) value for Face. If Face is ALL_SIDES, sets the alpha for all faces. The alpha value is interpreted as an opacity percentage (1.0 is fully opaque, and 0.2 is mostly transparent). This function will clamp alpha values less than 0.1 to 0.1 and greater than 1.0 to 1.</string>
-         </map>
-         <key>llSetAngularVelocity</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Force</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Local</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real/>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Sets an object's angular velocity, in local coordinates if local == TRUE (if the script is physical).\nApplies angular (rotational) velocity to a physical object. Has no effect on non-physical objects.</string>
-         </map>
-         <key>llSetAnimationOverride</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>AnimationState</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>AnimationName</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0</real>
-            <key>tooltip</key>
-            <string>Sets the animation (in object inventory) that will play for the given animation state.\nTo use this function the script must obtain the PERMISSION_OVERRIDE_ANIMATIONS permission.</string>
-         </map>
-         <key>llSetBuoyancy</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Buoyancy</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Set the tasks buoyancy (0 is none, &lt; 1.0 sinks, 1.0 floats, &gt; 1.0 rises).\nSet the object buoyancy. A value of 0 is none, less than 1.0 sinks, 1.0 floats, and greater than 1.0 rises.</string>
-         </map>
-         <key>llSetCameraAtOffset</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Offset</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Sets the camera used in this object, at offset, if an avatar sits on it.\nSets the offset that an avatar's camera will be moved to if the avatar sits on the object.</string>
-         </map>
-         <key>llSetCameraEyeOffset</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Offset</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Sets the camera eye offset used in this object if an avatar sits on it.</string>
-         </map>
-         <key>llSetCameraParams</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Parameters</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Sets multiple camera parameters at once. List format is [ rule-1, data-1, rule-2, data-2 . . . rule-n, data-n ].\nSets multiple camera parameters at once.\n
+			</map>
+			<key>llSetAlpha</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Opacity</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+					<map>
+						<key>Face</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Sets the alpha (opacity) of Face.\nSets the alpha (opacity) value for Face. If Face is ALL_SIDES, sets the alpha for all faces. The alpha value is interpreted as an opacity percentage (1.0 is fully opaque, and 0.2 is mostly transparent). This function will clamp alpha values less than 0.1 to 0.1 and greater than 1.0 to 1.</string>
+			</map>
+			<key>llSetAngularVelocity</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Force</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+					<map>
+						<key>Local</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real/>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Sets an object's angular velocity, in local coordinates if local == TRUE (if the script is physical).\nApplies angular (rotational) velocity to a physical object. Has no effect on non-physical objects.</string>
+			</map>
+			<key>llSetAnimationOverride</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>AnimationState</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>AnimationName</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0</real>
+				<key>tooltip</key>
+				<string>Sets the animation (in object inventory) that will play for the given animation state.\nTo use this function the script must obtain the PERMISSION_OVERRIDE_ANIMATIONS permission.</string>
+			</map>
+			<key>llSetBuoyancy</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Buoyancy</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Set the tasks buoyancy (0 is none, &lt; 1.0 sinks, 1.0 floats, &gt; 1.0 rises).\nSet the object buoyancy. A value of 0 is none, less than 1.0 sinks, 1.0 floats, and greater than 1.0 rises.</string>
+			</map>
+			<key>llSetCameraAtOffset</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Offset</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Sets the camera used in this object, at offset, if an avatar sits on it.\nSets the offset that an avatar's camera will be moved to if the avatar sits on the object.</string>
+			</map>
+			<key>llSetCameraEyeOffset</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Offset</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Sets the camera eye offset used in this object if an avatar sits on it.</string>
+			</map>
+			<key>llSetCameraParams</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Parameters</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Sets multiple camera parameters at once. List format is [ rule-1, data-1, rule-2, data-2 . . . rule-n, data-n ].\nSets multiple camera parameters at once.\n
 				List format is [rule-1, value-1, rule-2, value-2 ... rule-N, value-N]</string>
-         </map>
-         <key>llSetClickAction</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Action</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Sets the action performed when a prim is clicked upon.</string>
-         </map>
-         <key>llSetColor</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Colour</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Face</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Sets the color, for the face.\nSets the colour of the side specified. If Face is ALL_SIDES, sets the colour on all faces.</string>
-         </map>
-         <key>llSetContentType</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>HTTPRequestID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-               <map>
-                  <key>ContentType</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real/>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real/>
-            <key>tooltip</key>
-            <string>Set the media type of an LSL HTTP server response.</string>
-         </map>
-         <key>llSetDamage</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Damage</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Sets the amount of damage that will be done to an avatar that this task hits.	Task will be killed.\nSets the amount of damage that will be done to an avatar that this object hits. This object will be destroyed on damaging an avatar, and no collision event is triggered.</string>
-         </map>
-         <key>llSetForce</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Force</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Local</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Sets Force on object, in local coordinates if Local == TRUE (if the script is physical).\nIf the object is physical, this function sets the force.\n
+			</map>
+			<key>llSetClickAction</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Action</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Sets the action performed when a prim is clicked upon.</string>
+			</map>
+			<key>llSetColor</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Colour</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+					<map>
+						<key>Face</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Sets the color, for the face.\nSets the colour of the side specified. If Face is ALL_SIDES, sets the colour on all faces.</string>
+			</map>
+			<key>llSetContentType</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>HTTPRequestID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+					<map>
+						<key>ContentType</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real/>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real/>
+				<key>tooltip</key>
+				<string>Set the media type of an LSL HTTP server response.</string>
+			</map>
+			<key>llSetDamage</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Damage</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Sets the amount of damage that will be done to an avatar that this task hits.	Task will be killed.\nSets the amount of damage that will be done to an avatar that this object hits. This object will be destroyed on damaging an avatar, and no collision event is triggered.</string>
+			</map>
+			<key>llSetForce</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Force</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+					<map>
+						<key>Local</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Sets Force on object, in local coordinates if Local == TRUE (if the script is physical).\nIf the object is physical, this function sets the force.\n
 				The vector is in local coordinates if local is TRUE, global if FALSE.</string>
-         </map>
-         <key>llSetForceAndTorque</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Force</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Torque</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Local</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Sets the Force and Torque of object, in local coordinates if Local == TRUE (if the script is physical).\nIf the object is physical, this function sets the Force and Torque. The vectors are in local coordinates if Local is TRUE, global if FALSE.</string>
-         </map>
-         <key>llSetHoverHeight</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Height</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Water</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Tau</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Critically damps to a Height (either above ground level or above the higher of land and water if water == TRUE).\nCritically damps to a Height. The height is above ground and water (which ever is greater) if water is TRUE. Only works with physics-enabled objects.\n
+			</map>
+			<key>llSetForceAndTorque</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Force</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+					<map>
+						<key>Torque</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+					<map>
+						<key>Local</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Sets the Force and Torque of object, in local coordinates if Local == TRUE (if the script is physical).\nIf the object is physical, this function sets the Force and Torque. The vectors are in local coordinates if Local is TRUE, global if FALSE.</string>
+			</map>
+			<key>llSetHoverHeight</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Height</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+					<map>
+						<key>Water</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>Tau</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Critically damps to a Height (either above ground level or above the higher of land and water if water == TRUE).\nCritically damps to a Height. The height is above ground and water (which ever is greater) if water is TRUE. Only works with physics-enabled objects.\n
 				Do not use with vehicles. Use llStopHover to stop hovering.</string>
-         </map>
-         <key>llSetInventoryPermMask</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>InventoryItem</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>PermissionFlag</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>PermissionMask</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>god-mode</key>
-            <boolean>true</boolean>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Sets the given permission mask to the new value on the inventory item.</string>
-         </map>
-         <key>llSetKeyframedMotion</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Keyframes</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Options</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real/>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real/>
-            <key>tooltip</key>
-            <string>Requests that a non-physical object be key-framed according to key-frame list.\nSpecify a list of times, positions, and orientations to be followed by an object. The object will be smoothly moved between key-frames by the simulator. Collisions with other non-physical or key-framed objects will be ignored (no script events will fire and collision processing will not occur). Collisions with physical objects will be computed and reported, but the key-framed object will be unaffected by those collisions.</string>
-         </map>
-         <key>llSetLinkAlpha</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>LinkNumber</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Opacity</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Face</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>If a prim exists in the link chain at LinkNumber, set Face to Opacity.\nSets the Face, on the linked prim specified, to the Opacity.</string>
-         </map>
-         <key>llSetLinkCamera</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>LinkNumber</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>EyeOffset</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-               <map>
-                  <key>LookOffset</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Sets the camera eye offset, and the offset that camera is looking at, for avatars that sit on the linked prim.</string>
-         </map>
-         <key>llSetLinkColor</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>LinkNumber</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Colour</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Face</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>If a task exists in the link chain at LinkNumber, set the Face to color.\nSets the colour of the linked child's side, specified by LinkNumber.</string>
-         </map>
-         <key>llSetLinkMedia</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Link</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Face</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Parameters</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Set the media parameters for a particular face on linked prim.	Parameters is a list of name/value pairs (in no particular order). If media is not already on this object, add it. Parameters not specified are unchanged, or if new media is added set to the default specified.\nSet the media parameters for a particular face on the linked prim(s) without a delay.\n
+			</map>
+			<key>llSetInventoryPermMask</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>InventoryItem</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>PermissionFlag</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>PermissionMask</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>god-mode</key>
+				<boolean>true</boolean>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Sets the given permission mask to the new value on the inventory item.</string>
+			</map>
+			<key>llSetKeyframedMotion</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Keyframes</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+					<map>
+						<key>Options</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real/>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real/>
+				<key>tooltip</key>
+				<string>Requests that a non-physical object be key-framed according to key-frame list.\nSpecify a list of times, positions, and orientations to be followed by an object. The object will be smoothly moved between key-frames by the simulator. Collisions with other non-physical or key-framed objects will be ignored (no script events will fire and collision processing will not occur). Collisions with physical objects will be computed and reported, but the key-framed object will be unaffected by those collisions.</string>
+			</map>
+			<key>llSetLinkAlpha</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>LinkNumber</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>Opacity</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+					<map>
+						<key>Face</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>If a prim exists in the link chain at LinkNumber, set Face to Opacity.\nSets the Face, on the linked prim specified, to the Opacity.</string>
+			</map>
+			<key>llSetLinkCamera</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>LinkNumber</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>EyeOffset</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+					<map>
+						<key>LookOffset</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Sets the camera eye offset, and the offset that camera is looking at, for avatars that sit on the linked prim.</string>
+			</map>
+			<key>llSetLinkColor</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>LinkNumber</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>Colour</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+					<map>
+						<key>Face</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>If a task exists in the link chain at LinkNumber, set the Face to color.\nSets the colour of the linked child's side, specified by LinkNumber.</string>
+			</map>
+			<key>llSetLinkMedia</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Link</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>Face</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>Parameters</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>0.0</real>
+				<key>return</key>
+				<string>integer</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Set the media parameters for a particular face on linked prim.	Parameters is a list of name/value pairs (in no particular order). If media is not already on this object, add it. Parameters not specified are unchanged, or if new media is added set to the default specified.\nSet the media parameters for a particular face on the linked prim(s) without a delay.\n
 				Returns an integer that is a STATUS_* flag which details the success/failure of the operation(s).</string>
-         </map>
-         <key>llSetLinkPrimitiveParams</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>LinkNumber</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Parameters</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.2</real>
-            <key>tooltip</key>
-            <string>Set primitive parameters for LinkNumber based on Parameters.\nSets the parameters (or properties) of any linked prim in one step.</string>
-         </map>
-         <key>llSetLinkPrimitiveParamsFast</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>LinkNumber</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Parameters</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Set primitive parameters for LinkNumber based on Parameters, without a delay.\nSet parameters for link number, from the list of Parameters, with no built-in script sleep. This function is identical to llSetLinkPrimitiveParams, except without the delay.</string>
-         </map>
-         <key>llSetLinkTexture</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>LinkNumber</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Texture</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Face</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.2</real>
-            <key>tooltip</key>
-            <string>Sets the Texture of Face for LinkNumber.\nSets the Texture of linked prims.</string>
-         </map>
-         <key>llSetLinkTextureAnim</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>LinkNumber</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Mode</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Face</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>SizeX</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>SizeY</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Start</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Length</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Rate</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Animate the texture on the specified prim's face/faces.\nAnimate the texture on the specified face/faces of the specified prim/prims by setting the texture scale and offset.\n
+			</map>
+			<key>llSetLinkPrimitiveParams</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>LinkNumber</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>Parameters</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.2</real>
+				<key>tooltip</key>
+				<string>Set primitive parameters for LinkNumber based on Parameters.\nSets the parameters (or properties) of any linked prim in one step.</string>
+			</map>
+			<key>llSetLinkPrimitiveParamsFast</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>LinkNumber</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>Parameters</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Set primitive parameters for LinkNumber based on Parameters, without a delay.\nSet parameters for link number, from the list of Parameters, with no built-in script sleep. This function is identical to llSetLinkPrimitiveParams, except without the delay.</string>
+			</map>
+			<key>llSetLinkTexture</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>LinkNumber</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>Texture</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>Face</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.2</real>
+				<key>tooltip</key>
+				<string>Sets the Texture of Face for LinkNumber.\nSets the Texture of linked prims.</string>
+			</map>
+			<key>llSetLinkTextureAnim</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>LinkNumber</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>Mode</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>Face</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>SizeX</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>SizeY</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>Start</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+					<map>
+						<key>Length</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+					<map>
+						<key>Rate</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Animate the texture on the specified prim's face/faces.\nAnimate the texture on the specified face/faces of the specified prim/prims by setting the texture scale and offset.\n
 				Identical to llSetTextureAnim except able to modify any prim in the link set.</string>
-         </map>
-         <key>llSetLocalRot</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Rotation</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>rotation</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.2</real>
-            <key>tooltip</key>
-            <string>Sets the rotation of a child prim relative to the root prim.</string>
-         </map>
-         <key>llSetMemoryLimit</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Limit</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real/>
-            <key>return</key>
-            <string>integer</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Request Limit bytes to be reserved for this script. This function has no effect if the script is running in the LSO VM.\nRequest Limit bytes to be reserved for this script. This function has no effect if the script is running in the LSO VM.\n
+			</map>
+			<key>llSetLocalRot</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Rotation</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>rotation</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.2</real>
+				<key>tooltip</key>
+				<string>Sets the rotation of a child prim relative to the root prim.</string>
+			</map>
+			<key>llSetMemoryLimit</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Limit</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real/>
+				<key>return</key>
+				<string>integer</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Request Limit bytes to be reserved for this script. This function has no effect if the script is running in the LSO VM.\nRequest Limit bytes to be reserved for this script. This function has no effect if the script is running in the LSO VM.\n
 				Return TRUE or FALSE indicating whether the limit was set successfully.</string>
-         </map>
-         <key>llSetObjectDesc</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Description</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Sets the object's description.\nSets the description of the scripted prim. You can get the description using llGetObjectDesc.\n
+			</map>
+			<key>llSetObjectDesc</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Description</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Sets the object's description.\nSets the description of the scripted prim. You can get the description using llGetObjectDesc.\n
 				The description is limited to 127 characters.</string>
-         </map>
-         <key>llSetObjectName</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Name</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Sets the object's name.</string>
-         </map>
-         <key>llSetObjectPermMask</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>PermissionFlag</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>PermissionMask</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>god-mode</key>
-            <boolean>true</boolean>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Sets the given permission mask to the new value on the root object the task is attached to.</string>
-         </map>
-         <key>llSetParcelMusicURL</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>URL</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>2.0</real>
-            <key>tooltip</key>
-            <string>Sets the streaming audio URL for the parcel object is on.\nSets the streaming audio URL for the parcel the scripted object is on (the object must be owned by the owner of the parcel, if the parcel is group owned the object must be owned by that group).</string>
-         </map>
-         <key>llSetPayPrice</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Price</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>QuickButtons</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Sets the default amount when someone chooses to pay this object.\nSets the values of the buttons and the text box default for the Pay dialogue, when a user right-clicks on the object and selects "Pay".\n
+			</map>
+			<key>llSetObjectName</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Name</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Sets the object's name.</string>
+			</map>
+			<key>llSetObjectPermMask</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>PermissionFlag</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>PermissionMask</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>god-mode</key>
+				<boolean>true</boolean>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Sets the given permission mask to the new value on the root object the task is attached to.</string>
+			</map>
+			<key>llSetParcelMusicURL</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>URL</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>2.0</real>
+				<key>tooltip</key>
+				<string>Sets the streaming audio URL for the parcel object is on.\nSets the streaming audio URL for the parcel the scripted object is on (the object must be owned by the owner of the parcel, if the parcel is group owned the object must be owned by that group).</string>
+			</map>
+			<key>llSetPayPrice</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Price</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>QuickButtons</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Sets the default amount when someone chooses to pay this object.\nSets the values of the buttons and the text box default for the Pay dialogue, when a user right-clicks on the object and selects "Pay".\n
 				llSetPayPrice will affect what buttons exist, what their values are, and whether or not there is a manual payment text entry box.</string>
-         </map>
-         <key>llSetPhysicsMaterial</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>MaterialBits</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>GravityMultiplier</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Restitution</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Friction</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Density</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real/>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real/>
-            <key>tooltip</key>
-            <string>Sets the requested attributes of the root object's physics material.</string>
-         </map>
-         <key>llSetPos</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Position</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.2</real>
-            <key>tooltip</key>
-            <string>Sets the position (if the script isn't physical).\nIf the object is not physical, this function sets the position in region coordinates. If the object is a child prim, the position is treated as root relative and the link-set is adjusted.</string>
-         </map>
-         <key>llSetPrimitiveParams</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Parameters</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.2</real>
-            <key>tooltip</key>
-            <string>Set primitive parameters.\nThis function changes the many properties (or "parameters") of a prim in one operation. The Parameters are a list of changes.</string>
-         </map>
-         <key>llSetPrimMediaParams</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Face</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>MediaParameters</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>sleep</key>
-            <real>0.1</real>
-            <key>tooltip</key>
-            <string>Sets the MediaParameters for a particular Face on an object. If media is not already on this object, add it.
+			</map>
+			<key>llSetPhysicsMaterial</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>MaterialBits</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>GravityMultiplier</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+					<map>
+						<key>Restitution</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+					<map>
+						<key>Friction</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+					<map>
+						<key>Density</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real/>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real/>
+				<key>tooltip</key>
+				<string>Sets the requested attributes of the root object's physics material.</string>
+			</map>
+			<key>llSetPos</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Position</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.2</real>
+				<key>tooltip</key>
+				<string>Sets the position (if the script isn't physical).\nIf the object is not physical, this function sets the position in region coordinates. If the object is a child prim, the position is treated as root relative and the link-set is adjusted.</string>
+			</map>
+			<key>llSetPrimitiveParams</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Parameters</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.2</real>
+				<key>tooltip</key>
+				<string>Set primitive parameters.\nThis function changes the many properties (or "parameters") of a prim in one operation. The Parameters are a list of changes.</string>
+			</map>
+			<key>llSetPrimMediaParams</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Face</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>MediaParameters</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>integer</string>
+				<key>sleep</key>
+				<real>0.1</real>
+				<key>tooltip</key>
+				<string>Sets the MediaParameters for a particular Face on an object. If media is not already on this object, add it.
 				MediaParameters is a set of name/value pairs in no particular order. Parameters not specified are unchanged, or if new media is added then set to the default specified.\nSet the MediaParameters for a particular face.\n
 				Returns an integer that is a STATUS_* flag which details the success/failure of the operation(s).</string>
-         </map>
-         <key>llSetPrimURL</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>URL</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-            </array>
-            <key>deprecated</key>
-            <boolean>true</boolean>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>20.0</real>
-            <key>tooltip</key>
-            <string>Deprecated: Use llSetPrimMediaParams instead.\nDeprecated: Use llSetPrimMediaParams instead. Updates the URL for the web page shown on the sides of the object.</string>
-         </map>
-         <key>llSetRegionPos</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Position</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>0.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Sets the Position anywhere within the region (if the object isn't physical).\nTries to moves the entire object so that the root prim is within 0.1m of Position.\n
+			</map>
+			<key>llSetPrimURL</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>URL</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+				</array>
+				<key>deprecated</key>
+				<boolean>true</boolean>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>20.0</real>
+				<key>tooltip</key>
+				<string>Deprecated: Use llSetPrimMediaParams instead.\nDeprecated: Use llSetPrimMediaParams instead. Updates the URL for the web page shown on the sides of the object.</string>
+			</map>
+			<key>llSetRegionPos</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Position</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>0.0</real>
+				<key>return</key>
+				<string>integer</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Sets the Position anywhere within the region (if the object isn't physical).\nTries to moves the entire object so that the root prim is within 0.1m of Position.\n
 				Returns an integer boolean, TRUE if the object is successfully placed within 0.1 m of Position, FALSE otherwise.\n
 				The object with the script will move the root prim position to the given location. The position is any position within the region. If the position is below ground, it will be set to the ground level at that x,y location. The function has no delay or throttle.</string>
-         </map>
-         <key>llSetRemoteScriptAccessPin</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>PIN</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.2</real>
-            <key>tooltip</key>
-            <string>If PIN is set to a non-zero number, the task will accept remote script loads via llRemoteLoadScriptPin if it passes in the correct PIN. Othersise, llRemoteLoadScriptPin is ignored.\nIf PIN is set to a non-zero number, the task will accept remote script loads via llRemoteLoadScriptPin if passed the matching PIN. Otherwise llRemoteLoadScriptPin is ignored</string>
-         </map>
-         <key>llSetRot</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Rotation</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>rotation</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.2</real>
-            <key>tooltip</key>
-            <string>Sets the rotation (if the script isn't physical).\nIf the object is not physical, this function sets the rotation.\n
+			</map>
+			<key>llSetRemoteScriptAccessPin</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>PIN</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.2</real>
+				<key>tooltip</key>
+				<string>If PIN is set to a non-zero number, the task will accept remote script loads via llRemoteLoadScriptPin if it passes in the correct PIN. Othersise, llRemoteLoadScriptPin is ignored.\nIf PIN is set to a non-zero number, the task will accept remote script loads via llRemoteLoadScriptPin if passed the matching PIN. Otherwise llRemoteLoadScriptPin is ignored</string>
+			</map>
+			<key>llSetRot</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Rotation</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>rotation</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.2</real>
+				<key>tooltip</key>
+				<string>Sets the rotation (if the script isn't physical).\nIf the object is not physical, this function sets the rotation.\n
 				If the script is in a child prim, the position is treated as root relative and the linked set is adjusted.</string>
-         </map>
-         <key>llSetScale</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Scale</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Sets the scale.\nSets the prim's scale (size).</string>
-         </map>
-         <key>llSetScriptState</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>ScriptName</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Running</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Control the state of a named script.\nControl the state of a script in the prim.</string>
-         </map>
-         <key>llSetSitText</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Text</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Displays Text rather than "Sit" in context menu.\nDisplays Text rather than 'Sit' in the viewer's menu.</string>
-         </map>
-         <key>llSetSoundQueueing</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>QueueEnable</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Determines whether attached sound calls wait for the current sound to finish (0 = no [default], non-zero = yes).\nSets whether successive calls to llPlaySound, llLoopSound, etc., (attached sounds) interrupt the playing sound.\n
+			</map>
+			<key>llSetScale</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Scale</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Sets the scale.\nSets the prim's scale (size).</string>
+			</map>
+			<key>llSetScriptState</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>ScriptName</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>Running</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Control the state of a named script.\nControl the state of a script in the prim.</string>
+			</map>
+			<key>llSetSitText</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Text</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Displays Text rather than "Sit" in context menu.\nDisplays Text rather than 'Sit' in the viewer's menu.</string>
+			</map>
+			<key>llSetSoundQueueing</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>QueueEnable</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Determines whether attached sound calls wait for the current sound to finish (0 = no [default], non-zero = yes).\nSets whether successive calls to llPlaySound, llLoopSound, etc., (attached sounds) interrupt the playing sound.\n
 				The default for objects is FALSE. Setting this value to TRUE will make the sound wait until the current playing sound reaches its end. The queue is one level deep.</string>
-         </map>
-         <key>llSetSoundRadius</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Radius</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Establishes a hard cut-off radius for audibility of scripted sounds (both attached and triggered).</string>
-         </map>
-         <key>llSetStatus</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Status</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Value</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Sets status (STATUS_PHYSICS, STATUS_PHANTOM, STATUS_BLOCK_GRAB, STATUS_ROTATE_X, STATUS_ROTATE_Y, and/or STATUS_ROTATE_Z) to value.\nSets the Status to Value. Use STATUS_* constants for the values of status.</string>
-         </map>
-         <key>llSetText</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Text</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Colour</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Opacity</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Set text floating over object.\nSets the text that floats above the object, using the specified colour and opacity level.</string>
-         </map>
-         <key>llSetTexture</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Texture</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Face</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.2</real>
-            <key>tooltip</key>
-            <string>Sets the Texture of Face.\nSets the Texture of Face. If Face is ALL_SIDES, set the texture on all faces.</string>
-         </map>
-         <key>llSetTextureAnim</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Mode</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Face</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>SizeX</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>SizeY</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Start</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Length</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Rate</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Animate the texture on the specified face/faces.\nAnimates a texture by setting the texture scale and offset.</string>
-         </map>
-         <key>llSetTimerEvent</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Rate</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Cause the timer event to be triggered every Rate seconds.\nSets the timer event to be triggered at the specified Rate, in seconds.\n
+			</map>
+			<key>llSetSoundRadius</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Radius</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Establishes a hard cut-off radius for audibility of scripted sounds (both attached and triggered).</string>
+			</map>
+			<key>llSetStatus</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Status</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>Value</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Sets status (STATUS_PHYSICS, STATUS_PHANTOM, STATUS_BLOCK_GRAB, STATUS_ROTATE_X, STATUS_ROTATE_Y, and/or STATUS_ROTATE_Z) to value.\nSets the Status to Value. Use STATUS_* constants for the values of status.</string>
+			</map>
+			<key>llSetText</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Text</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>Colour</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+					<map>
+						<key>Opacity</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Set text floating over object.\nSets the text that floats above the object, using the specified colour and opacity level.</string>
+			</map>
+			<key>llSetTexture</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Texture</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>Face</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.2</real>
+				<key>tooltip</key>
+				<string>Sets the Texture of Face.\nSets the Texture of Face. If Face is ALL_SIDES, set the texture on all faces.</string>
+			</map>
+			<key>llSetTextureAnim</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Mode</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>Face</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>SizeX</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>SizeY</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>Start</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+					<map>
+						<key>Length</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+					<map>
+						<key>Rate</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Animate the texture on the specified face/faces.\nAnimates a texture by setting the texture scale and offset.</string>
+			</map>
+			<key>llSetTimerEvent</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Rate</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Cause the timer event to be triggered every Rate seconds.\nSets the timer event to be triggered at the specified Rate, in seconds.\n
 				Passing in 0.0 stops further timer events.</string>
-         </map>
-         <key>llSetTorque</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Torque</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Local</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Sets the Torque of object, in local coordinates if Local == TRUE (if the script is physical).\nIf the object is physical, this function sets the torque.\n
+			</map>
+			<key>llSetTorque</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Torque</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+					<map>
+						<key>Local</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Sets the Torque of object, in local coordinates if Local == TRUE (if the script is physical).\nIf the object is physical, this function sets the torque.\n
 			The vector is in local coordinates if Local is TRUE, global if FALSE.</string>
-         </map>
-         <key>llSetTouchText</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Text</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Displays Text in the menu that acts on a touch.\nDisplays Text in the viewer context menu that acts on a touch.</string>
-         </map>
-         <key>llSetVehicleFlags</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Flags</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Sets the enabled bits in 'flags'.\nSets the vehicle flags to TRUE.\nValid parameters can be found in the vehicle flags constants section.</string>
-         </map>
-         <key>llSetVehicleFloatParam</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>ParameterName</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>ParameterValue</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Sets the specified vehicle float parameter.\nSets the vehicle floating point parameter.\n
+			</map>
+			<key>llSetTouchText</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Text</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Displays Text in the menu that acts on a touch.\nDisplays Text in the viewer context menu that acts on a touch.</string>
+			</map>
+			<key>llSetVehicleFlags</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Flags</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Sets the enabled bits in 'flags'.\nSets the vehicle flags to TRUE.\nValid parameters can be found in the vehicle flags constants section.</string>
+			</map>
+			<key>llSetVehicleFloatParam</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>ParameterName</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>ParameterValue</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Sets the specified vehicle float parameter.\nSets the vehicle floating point parameter.\n
 				Valid parameters and their expected values can be found in the vehicle parameter constants section.</string>
-         </map>
-         <key>llSetVehicleRotationParam</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>ParameterName</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>ParameterValue</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Sets the specified vehicle rotation parameter.\nSets the vehicle rotation parameter.\n
+			</map>
+			<key>llSetVehicleRotationParam</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>ParameterName</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>ParameterValue</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Sets the specified vehicle rotation parameter.\nSets the vehicle rotation parameter.\n
 				Valid parameters can be found in the vehicle parameter constants section.</string>
-         </map>
-         <key>llSetVehicleType</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Type</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Sets vehicle to one of the default types.\nActivates the vehicle action and choose vehicle Type.\n
+			</map>
+			<key>llSetVehicleType</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Type</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Sets vehicle to one of the default types.\nActivates the vehicle action and choose vehicle Type.\n
 				Valid Types and an explanation of their characteristics can be found in the vehicle type constants section.</string>
-         </map>
-         <key>llSetVehicleVectorParam</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>ParameterName</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>ParameterValue</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Sets the specified vehicle vector parameter.\nSets the vehicle vector parameter.\nValid parameters can be found in the vehicle parameter constants section.</string>
-         </map>
-         <key>llSetVelocity</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Force</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Local</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real/>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Sets an objects velocity, in local coordinates if Local == TRUE (if the script is physical).\nApplies Force to a physical object.</string>
-         </map>
-         <key>llSHA1String</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Text</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns a string of 40 hex characters that is the SHA1 security Hash of Text.\nReturns a string of 40 hex characters that is the SHA1 security hash of the supplied string.</string>
-         </map>
-         <key>llShout</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Channel</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Text</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>shouts Text on Channel.\nShout Text on Channel. Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 to 2,147,483,648 are private channels that are not sent to avatars but other scripts can listen for through the llListen function.</string>
-         </map>
-         <key>llSin</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Theta</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the sine of Theta (Theta in radians).\nReturns the sine of Theta in radians.</string>
-         </map>
-         <key>llSitTarget</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Offset</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Rotation</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>rotation</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Set the sit location for this object (if offset == &lt;0,0,0&gt; clear it).\nSet the sit location for this object. If offset == ZERO_VECTOR, clears the sit target.</string>
-         </map>
-         <key>llSleep</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Time</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Put script to sleep for Time seconds.\nPuts the script to sleep for time specified, in seconds.</string>
-         </map>
-         <key>llSound</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Sound</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Volume</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Queue</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Loop</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>deprecated</key>
-            <boolean>true</boolean>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Deprecated: Use llPlaySound instead.\nDeprecated: Use llPlaySound instead.\nPlays Sound at Volume and specifies whether it should loop or not.</string>
-         </map>
-         <key>llSoundPreload</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Sound</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-            </array>
-            <key>deprecated</key>
-            <boolean>true</boolean>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Deprecated: Use llPreloadSound instead.\nDeprecated: Use llPreloadSound instead.\nPreloads a sound on viewers within range.</string>
-         </map>
-         <key>llSqrt</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Value</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the square root of Value, or returns 0 and triggers a Math Error for imaginary results.\nReturns the square root of the value. If the value is less than 0.0, this function returns 0.0 and raises a maths runtime error.</string>
-         </map>
-         <key>llStartAnimation</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Animation</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Start Animation for agent that owns object.\nThis function starts the animation for the last avatar that granted the object PERMISSION_TRIGGER_ANIMATION permission.</string>
-         </map>
-         <key>llStopAnimation</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Animation</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Stop Animation for agent that owns object.\nThis function stops the animation for the last avatar that granted the object PERMISSION_TRIGGER_ANIMATION permission.</string>
-         </map>
-         <key>llStopHover</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Stop hovering to a height.\nStop hovering at a height.</string>
-         </map>
-         <key>llStopLookAt</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Stop causing object to point at a target.\nStop causing object to look at target.</string>
-         </map>
-         <key>llStopMoveToTarget</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Stops critically damped motion.</string>
-         </map>
-         <key>llStopSound</key>
-         <map>
-            <key>arguments</key>
-            <undef/>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Stops currently attached sound.\nStops the currently playing attached sound started with llPlaySound or llLoopSound. Has no effect on sounds started with llTriggerSound.</string>
-         </map>
-         <key>llStringLength</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Text</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the length of string.\nReturns the number of characters in the specified text.</string>
-         </map>
-         <key>llStringToBase64</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Text</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Converts a string to the Base64 representation of the string.\nConverts a string to the Base 64 representation of the string.</string>
-         </map>
-         <key>llStringTrim</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Text</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>TrimType</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Trims the leading and/or trailing white spaces from a string.\n
+			</map>
+			<key>llSetVehicleVectorParam</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>ParameterName</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>ParameterValue</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Sets the specified vehicle vector parameter.\nSets the vehicle vector parameter.\nValid parameters can be found in the vehicle parameter constants section.</string>
+			</map>
+			<key>llSetVelocity</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Force</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+					<map>
+						<key>Local</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real/>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Sets an objects velocity, in local coordinates if Local == TRUE (if the script is physical).\nApplies Force to a physical object.</string>
+			</map>
+			<key>llSHA1String</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Text</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>string</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns a string of 40 hex characters that is the SHA1 security Hash of Text.\nReturns a string of 40 hex characters that is the SHA1 security hash of the supplied string.</string>
+			</map>
+			<key>llShout</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Channel</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>Text</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>shouts Text on Channel.\nShout Text on Channel. Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 to 2,147,483,648 are private channels that are not sent to avatars but other scripts can listen for through the llListen function.</string>
+			</map>
+			<key>llSin</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Theta</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>float</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the sine of Theta (Theta in radians).\nReturns the sine of Theta in radians.</string>
+			</map>
+			<key>llSitTarget</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Offset</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+					<map>
+						<key>Rotation</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>rotation</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Set the sit location for this object (if offset == &lt;0,0,0&gt; clear it).\nSet the sit location for this object. If offset == ZERO_VECTOR, clears the sit target.</string>
+			</map>
+			<key>llSleep</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Time</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Put script to sleep for Time seconds.\nPuts the script to sleep for time specified, in seconds.</string>
+			</map>
+			<key>llSound</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Sound</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>Volume</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+					<map>
+						<key>Queue</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>Loop</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>deprecated</key>
+				<boolean>true</boolean>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Deprecated: Use llPlaySound instead.\nDeprecated: Use llPlaySound instead.\nPlays Sound at Volume and specifies whether it should loop or not.</string>
+			</map>
+			<key>llSoundPreload</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Sound</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+				</array>
+				<key>deprecated</key>
+				<boolean>true</boolean>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Deprecated: Use llPreloadSound instead.\nDeprecated: Use llPreloadSound instead.\nPreloads a sound on viewers within range.</string>
+			</map>
+			<key>llSqrt</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Value</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>float</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the square root of Value, or returns 0 and triggers a Math Error for imaginary results.\nReturns the square root of the value. If the value is less than 0.0, this function returns 0.0 and raises a maths runtime error.</string>
+			</map>
+			<key>llStartAnimation</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Animation</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Start Animation for agent that owns object.\nThis function starts the animation for the last avatar that granted the object PERMISSION_TRIGGER_ANIMATION permission.</string>
+			</map>
+			<key>llStopAnimation</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Animation</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Stop Animation for agent that owns object.\nThis function stops the animation for the last avatar that granted the object PERMISSION_TRIGGER_ANIMATION permission.</string>
+			</map>
+			<key>llStopHover</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Stop hovering to a height.\nStop hovering at a height.</string>
+			</map>
+			<key>llStopLookAt</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Stop causing object to point at a target.\nStop causing object to look at target.</string>
+			</map>
+			<key>llStopMoveToTarget</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Stops critically damped motion.</string>
+			</map>
+			<key>llStopSound</key>
+			<map>
+				<key>arguments</key>
+				<undef/>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Stops currently attached sound.\nStops the currently playing attached sound started with llPlaySound or llLoopSound. Has no effect on sounds started with llTriggerSound.</string>
+			</map>
+			<key>llStringLength</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Text</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>integer</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the length of string.\nReturns the number of characters in the specified text.</string>
+			</map>
+			<key>llStringToBase64</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Text</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>string</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Converts a string to the Base64 representation of the string.\nConverts a string to the Base 64 representation of the string.</string>
+			</map>
+			<key>llStringTrim</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Text</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>TrimType</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>string</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Trims the leading and/or trailing white spaces from a string.\n
 				TrimType can be STRING_TRIM, STRING_TRIM_HEAD or STRING_TRIM_TAIL.\nOutputs a string, eliminating white-space from the start and/or end of the specified string.\n
 				Constants for trim_type:\n
 				STRING_TRIM_HEAD: trim all leading spaces in text\n
 				STRING_TRIM_TAIL: trim all trailing spaces in text\n
 				STRING_TRIM: trim all leading and trailing spaces in text</string>
-         </map>
-         <key>llSubStringIndex</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Text</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Sequence</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns an integer that is the index in source where pattern first appears. Returns -1 if not found.\nReturns an index of the text where the sequence of characters first appears.\n
+			</map>
+			<key>llSubStringIndex</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Text</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>Sequence</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>integer</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns an integer that is the index in source where pattern first appears. Returns -1 if not found.\nReturns an index of the text where the sequence of characters first appears.\n
 				Returns -1 if no match is found.</string>
-         </map>
-         <key>llTakeCamera</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>AvatarID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-            </array>
-            <key>deprecated</key>
-            <boolean>true</boolean>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Deprecated: Use llSetCameraParams instead.\nDeprecated: Use llSetCameraParams instead. Move avatar's viewpoint to task.</string>
-         </map>
-         <key>llTakeControls</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Controls</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Accept</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>PassOn</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Take controls from agent task has permissions for.	If (Accept == (controls &amp; input)), send input to task.	If PassOn send to agent also.\nRequires the PERMISSION_TAKE_CONTROLS permission to run.</string>
-         </map>
-         <key>llTan</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Theta</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the tangent of Theta (Theta in radians).\nReturns the tangent of Theta radians.</string>
-         </map>
-         <key>llTarget</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Position</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Range</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>integer</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Sets positions within range of position as a target and return an ID for the target.\nSet object position, within range of position, as a target and returns an integer ID for the target.</string>
-         </map>
-         <key>llTargetOmega</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Axis</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-               <map>
-                  <key>SpinRate</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Gain</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Attempt to spin at SpinRate with strength Gain.\nAttempt to spin at SpinRate with strength Gain on axis.\n
+			</map>
+			<key>llTakeCamera</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>AvatarID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+				</array>
+				<key>deprecated</key>
+				<boolean>true</boolean>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Deprecated: Use llSetCameraParams instead.\nDeprecated: Use llSetCameraParams instead. Move avatar's viewpoint to task.</string>
+			</map>
+			<key>llTakeControls</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Controls</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>Accept</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>PassOn</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Take controls from agent task has permissions for.	If (Accept == (controls &amp; input)), send input to task.	If PassOn send to agent also.\nRequires the PERMISSION_TAKE_CONTROLS permission to run.</string>
+			</map>
+			<key>llTan</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Theta</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>float</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the tangent of Theta (Theta in radians).\nReturns the tangent of Theta radians.</string>
+			</map>
+			<key>llTarget</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Position</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+					<map>
+						<key>Range</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>integer</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Sets positions within range of position as a target and return an ID for the target.\nSet object position, within range of position, as a target and returns an integer ID for the target.</string>
+			</map>
+			<key>llTargetOmega</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Axis</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+					<map>
+						<key>SpinRate</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+					<map>
+						<key>Gain</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Attempt to spin at SpinRate with strength Gain.\nAttempt to spin at SpinRate with strength Gain on axis.\n
 			A spin-rate of 0.0 cancels the spin. This function always works in object local coordinates.</string>
-         </map>
-         <key>llTargetRemove</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Target</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Removes target number.\nRemove target number.</string>
-         </map>
-         <key>llTeleportAgent</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>AvatarID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-               <map>
-                  <key>LandmarkName</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Position</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-               <map>
-                  <key>LookAtPoint</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0</real>
-            <key>tooltip</key>
-            <string>Requests a teleport of avatar to a landmark stored in the object's inventory. If no landmark is provided (an empty string), the avatar is teleported to the location position in the current region. In either case, the avatar is turned to face the position given by look_at in local coordinates.
+			</map>
+			<key>llTargetRemove</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Target</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Removes target number.\nRemove target number.</string>
+			</map>
+			<key>llTeleportAgent</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>AvatarID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+					<map>
+						<key>LandmarkName</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>Position</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+					<map>
+						<key>LookAtPoint</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0</real>
+				<key>tooltip</key>
+				<string>Requests a teleport of avatar to a landmark stored in the object's inventory. If no landmark is provided (an empty string), the avatar is teleported to the location position in the current region. In either case, the avatar is turned to face the position given by look_at in local coordinates.
 				Requires the PERMISSION_TELEPORT permission. This function can only teleport the owner of the object.</string>
-         </map>
-         <key>llTeleportAgentGlobalCoords</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>AvatarID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-               <map>
-                  <key>GlobalPosition</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-               <map>
-                  <key>RegionPosition</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-               <map>
-                  <key>LookAtPoint</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0</real>
-            <key>tooltip</key>
-            <string>Teleports an agent to set of a region_coordinates within a region at the specified global_coordinates. The agent lands facing the position defined by look_at local coordinates.</string>
-         </map>
-         <key>llTeleportAgentHome</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>AvatarID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>100.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>5.0</real>
-            <key>tooltip</key>
-            <string>Teleports agent on owner's land to agent's home location.\nTeleport agent over the owner's land to agent's home location.</string>
-         </map>
-         <key>llTextBox</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>AvatarID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Text</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Channel</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>1.0</real>
-            <key>tooltip</key>
-            <string>Shows a dialog box on the avatar's screen with the message. A text box asks for input, and if entered the Text is chatted on Channel.\nShows a dialogue box on avatar's screen with the text message.\n
+			</map>
+			<key>llTeleportAgentGlobalCoords</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>AvatarID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+					<map>
+						<key>GlobalPosition</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+					<map>
+						<key>RegionPosition</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+					<map>
+						<key>LookAtPoint</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0</real>
+				<key>tooltip</key>
+				<string>Teleports an agent to set of a region_coordinates within a region at the specified global_coordinates. The agent lands facing the position defined by look_at local coordinates.</string>
+			</map>
+			<key>llTeleportAgentHome</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>AvatarID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>100.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>5.0</real>
+				<key>tooltip</key>
+				<string>Teleports agent on owner's land to agent's home location.\nTeleport agent over the owner's land to agent's home location.</string>
+			</map>
+			<key>llTextBox</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>AvatarID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+					<map>
+						<key>Text</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>Channel</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>1.0</real>
+				<key>tooltip</key>
+				<string>Shows a dialog box on the avatar's screen with the message. A text box asks for input, and if entered the Text is chatted on Channel.\nShows a dialogue box on avatar's screen with the text message.\n
 				It contains a text box for input. Any text that is entered is said on the specified channel (as if by the avatar) when the "OK" button is clicked.</string>
-         </map>
-         <key>llToLower</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Text</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns a string that is Text with all lower-case characters.\nReturns Text in all lower case.</string>
-         </map>
-         <key>llToUpper</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Text</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns a string that is Text with all upper-case characters.\nReturns Text in all upper case.</string>
-         </map>
-         <key>llTransferLindenDollars</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>AvatarID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Amount</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real/>
-            <key>return</key>
-            <string>key</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Transfer Amount of linden dollars (L$) from script owner to AvatarID. Returns a key to a corresponding transaction_result event for the success of the transfer.\nAttempts to send the amount of money to the specified avatar, and trigger a transaction_result event identified by the returned key.</string>
-         </map>
-         <key>llTriggerSound</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Sound</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Volume</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Plays Sound at Volume (0.0 - 1.0), centered at but not attached to object.\nPlays a transient sound NOT attached to an object.\n
+			</map>
+			<key>llToLower</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Text</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>string</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns a string that is Text with all lower-case characters.\nReturns Text in all lower case.</string>
+			</map>
+			<key>llToUpper</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Text</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>string</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns a string that is Text with all upper-case characters.\nReturns Text in all upper case.</string>
+			</map>
+			<key>llTransferLindenDollars</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>AvatarID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+					<map>
+						<key>Amount</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real/>
+				<key>return</key>
+				<string>key</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Transfer Amount of linden dollars (L$) from script owner to AvatarID. Returns a key to a corresponding transaction_result event for the success of the transfer.\nAttempts to send the amount of money to the specified avatar, and trigger a transaction_result event identified by the returned key.</string>
+			</map>
+			<key>llTriggerSound</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Sound</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>Volume</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Plays Sound at Volume (0.0 - 1.0), centered at but not attached to object.\nPlays a transient sound NOT attached to an object.\n
 				The sound plays from a stationary position located at the centre of the object at the time of the triggering.\n
 				There is no limit to the number of triggered sounds which can be generated by an object, and calling llTriggerSound does not affect the attached sounds created by llPlaySound and llLoopSound. This is very useful for things like collision noises, explosions, etc. There is no way to stop or alter the volume of a sound triggered by this function.</string>
-         </map>
-         <key>llTriggerSoundLimited</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Sound</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Volume</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>float</string>
-                  </map>
-               </map>
-               <map>
-                  <key>TNE</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-               <map>
-                  <key>BSW</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Plays Sound at Volume (0.0 - 1.0), centered at but not attached to object, limited to axis-aligned bounding box defined by vectors top-north-east (TNE) and bottom-south-west (BSW).\nPlays a transient sound NOT attached to an object, with its audible range limited by the axis-aligned bounding box define by TNE (top-north-east) and BSW (bottom-south-west).\n
+			</map>
+			<key>llTriggerSoundLimited</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Sound</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>Volume</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>float</string>
+						</map>
+					</map>
+					<map>
+						<key>TNE</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+					<map>
+						<key>BSW</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Plays Sound at Volume (0.0 - 1.0), centered at but not attached to object, limited to axis-aligned bounding box defined by vectors top-north-east (TNE) and bottom-south-west (BSW).\nPlays a transient sound NOT attached to an object, with its audible range limited by the axis-aligned bounding box define by TNE (top-north-east) and BSW (bottom-south-west).\n
 				The sound plays from a stationary position located at the centre of the object at the time of the triggering.\n
 				There is no limit to the number of triggered sounds which can be generated by an object, and calling llTriggerSound does not affect the attached sounds created by llPlaySound and llLoopSound. This is very useful for things like collision noises, explosions, etc. There is no way to stop or alter the volume of a sound triggered by this function.</string>
-         </map>
-         <key>llUnescapeURL</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>URL</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns an unescaped/ unencoded version of URL, replacing %20 with spaces etc.\nReturns the string that is the URL unescaped, replacing "%20" with spaces, etc., version of URL.\n
+			</map>
+			<key>llUnescapeURL</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>URL</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>string</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns an unescaped/ unencoded version of URL, replacing %20 with spaces etc.\nReturns the string that is the URL unescaped, replacing "%20" with spaces, etc., version of URL.\n
 				The function can output raw UTF-8 strings.</string>
-         </map>
-         <key>llUnSit</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>AvatarID</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>key</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>If agent identified by AvatarID is sitting on the object the script is attached to or is over land owned by the objects owner, the agent is forced to stand up.\nIf the agent identified is sitting on the object the script is attached to or is over land owned by the objects owner, the agent is forced to stand up.</string>
-         </map>
-         <key>llUpdateCharacter</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Options</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real/>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real/>
-            <key>tooltip</key>
-            <string>Change the character's settings.\nUpdates settings for a character.</string>
-         </map>
-         <key>llVecDist</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Location1</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Location2</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the 3D distance between Location1 and Location2.\nReturns the distance from location 1 to location 2.</string>
-         </map>
-         <key>llVecMag</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Vector</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the magnitude of Vector.\nReturns the magnitude of the vector.</string>
-         </map>
-         <key>llVecNorm</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Vector</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the v normalized.\nReturns normalized vector.</string>
-         </map>
-         <key>llVolumeDetect</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>DetectEnabled</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>If DetectEnabled = TRUE, object becomes phantom but triggers collision_start and collision_end events when other objects start and stop interpenetrating. Must be applied to the root object.\nWhen detect = TRUE, this makes the entire link set the script is attached to phantom. If another object (including avatars) interpenetrates it, it will get a collision_start event.\n
+			</map>
+			<key>llUnSit</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>AvatarID</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>key</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>If agent identified by AvatarID is sitting on the object the script is attached to or is over land owned by the objects owner, the agent is forced to stand up.\nIf the agent identified is sitting on the object the script is attached to or is over land owned by the objects owner, the agent is forced to stand up.</string>
+			</map>
+			<key>llUpdateCharacter</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Options</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real/>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real/>
+				<key>tooltip</key>
+				<string>Change the character's settings.\nUpdates settings for a character.</string>
+			</map>
+			<key>llVecDist</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Location1</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+					<map>
+						<key>Location2</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>float</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the 3D distance between Location1 and Location2.\nReturns the distance from location 1 to location 2.</string>
+			</map>
+			<key>llVecMag</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Vector</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>float</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the magnitude of Vector.\nReturns the magnitude of the vector.</string>
+			</map>
+			<key>llVecNorm</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Vector</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>vector</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the v normalized.\nReturns normalized vector.</string>
+			</map>
+			<key>llVolumeDetect</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>DetectEnabled</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>If DetectEnabled = TRUE, object becomes phantom but triggers collision_start and collision_end events when other objects start and stop interpenetrating. Must be applied to the root object.\nWhen detect = TRUE, this makes the entire link set the script is attached to phantom. If another object (including avatars) interpenetrates it, it will get a collision_start event.\n
 				When an object stops interpenetrating, a collision_end event is generated. While the other is inter-penetrating, collision events are NOT generated. The script must be applied to the root object of the link set to get the collision events.\n
 				Collision filters work normally.</string>
-         </map>
-         <key>llWanderWithin</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Origin</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Area</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Options</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>list</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real/>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real/>
-            <key>tooltip</key>
-            <string>Wander within a specified volume.\nSets a character to wander about a central spot within a specified area.</string>
-         </map>
-         <key>llWater</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Offset</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>float</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the water height below the object position + offset.\nReturns the water height at the object's position + offset.</string>
-         </map>
-         <key>llWhisper</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Channel</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>integer</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Text</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>void</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Whispers Text on Channel.\nWhisper Text on Channel. Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 to 2,147,483,648 are private channels that are not sent to avatars but other scripts can listen for through the llListen function.</string>
-         </map>
-         <key>llWind</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Offset</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>vector</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>vector</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Returns the wind velocity at the object position + offset.\nReturns the wind velocity at the object's position + offset.</string>
-         </map>
-         <key>llXorBase64</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Text1</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Text2</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-            </array>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>sleep</key>
-            <real>0.3</real>
-            <key>tooltip</key>
-            <string>Performs an exclusive OR on two Base64 strings and returns a Base64 string.	Text2 repeats if it is shorter than Text1.	Retained for backwards compatibility.\nDeprecated: Use llXorBase64StringsCorrect instead.\nIncorrectly performs an exclusive OR on two Base64 strings and returns a Base64 string.</string>
-         </map>
-         <key>llXorBase64Strings</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Text1</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Text2</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-            </array>
-            <key>deprecated</key>
-            <boolean>true</boolean>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>sleep</key>
-            <real>0.3</real>
-            <key>tooltip</key>
-            <string>Deprecated: Please use llXorBase64 instead.\n
+			</map>
+			<key>llWanderWithin</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Origin</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+					<map>
+						<key>Area</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+					<map>
+						<key>Options</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>list</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real/>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real/>
+				<key>tooltip</key>
+				<string>Wander within a specified volume.\nSets a character to wander about a central spot within a specified area.</string>
+			</map>
+			<key>llWater</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Offset</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>float</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the water height below the object position + offset.\nReturns the water height at the object's position + offset.</string>
+			</map>
+			<key>llWhisper</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Channel</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>integer</string>
+						</map>
+					</map>
+					<map>
+						<key>Text</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>void</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Whispers Text on Channel.\nWhisper Text on Channel. Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 to 2,147,483,648 are private channels that are not sent to avatars but other scripts can listen for through the llListen function.</string>
+			</map>
+			<key>llWind</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Offset</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>vector</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>vector</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Returns the wind velocity at the object position + offset.\nReturns the wind velocity at the object's position + offset.</string>
+			</map>
+			<key>llXorBase64</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Text1</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>Text2</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+				</array>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>string</string>
+				<key>sleep</key>
+				<real>0.3</real>
+				<key>tooltip</key>
+				<string>Performs an exclusive OR on two Base64 strings and returns a Base64 string.	Text2 repeats if it is shorter than Text1.	Retained for backwards compatibility.\nDeprecated: Use llXorBase64StringsCorrect instead.\nIncorrectly performs an exclusive OR on two Base64 strings and returns a Base64 string.</string>
+			</map>
+			<key>llXorBase64Strings</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Text1</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>Text2</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+				</array>
+				<key>deprecated</key>
+				<boolean>true</boolean>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>string</string>
+				<key>sleep</key>
+				<real>0.3</real>
+				<key>tooltip</key>
+				<string>Deprecated: Please use llXorBase64 instead.\n
 				Incorrectly performs an exclusive OR on two Base64 strings and returns a Base64 string.	Text2 repeats if it is shorter than Text1.	Retained for backwards compatibility.\nDeprecated: Use llXorBase64StringsCorrect instead.\nIncorrectly performs an exclusive OR on two Base64 strings and returns a Base64 string.</string>
-         </map>
-         <key>llXorBase64StringsCorrect</key>
-         <map>
-            <key>arguments</key>
-            <array>
-               <map>
-                  <key>Text1</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-               <map>
-                  <key>Text2</key>
-                  <map>
-                     <key>tooltip</key>
-                     <string/>
-                     <key>type</key>
-                     <string>string</string>
-                  </map>
-               </map>
-            </array>
-            <key>deprecated</key>
-            <boolean>true</boolean>
-            <key>energy</key>
-            <real>10.0</real>
-            <key>return</key>
-            <string>string</string>
-            <key>sleep</key>
-            <real>0.0</real>
-            <key>tooltip</key>
-            <string>Deprecated: Please use llXorBase64 instead.\n
+			</map>
+			<key>llXorBase64StringsCorrect</key>
+			<map>
+				<key>arguments</key>
+				<array>
+					<map>
+						<key>Text1</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+					<map>
+						<key>Text2</key>
+						<map>
+							<key>tooltip</key>
+							<string/>
+							<key>type</key>
+							<string>string</string>
+						</map>
+					</map>
+				</array>
+				<key>deprecated</key>
+				<boolean>true</boolean>
+				<key>energy</key>
+				<real>10.0</real>
+				<key>return</key>
+				<string>string</string>
+				<key>sleep</key>
+				<real>0.0</real>
+				<key>tooltip</key>
+				<string>Deprecated: Please use llXorBase64 instead.\n
 				Correctly (unless nulls are present) performs an exclusive OR on two Base64 strings and returns a Base64 string.\n
 				Text2 repeats if it is shorter than Text1.\nPerforms an exclusive-OR on two Base64 strings and returns a Base64 string. text-2 repeats if it is shorter than text-1.\n
 				This function is for encrypting data. Put your data in text-1 and your key in text-2 to encrypt or put the encrypted data into text-1 with the same key in text-2 to decrypt again.</string>
-         </map>
-      </map>
-   </map>
-</llsd>
+			</map>
+		</map>
+	</map>
+</llsd>
\ No newline at end of file
-- 
cgit v1.2.3


From 640fb0376d8ec59779f05eb698e30c2b8cce92b7 Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Tue, 14 Jan 2014 00:19:03 +0000
Subject: STORM-1831 Updated XML defaults file. Adding some recently added
 constants. Changed indenting to a single space. Adding the Relax schema file
 that is referenced in the XML.

---
 .../newview/app_settings/keywords_lsl_default.xml  | 36259 ++++++++++---------
 indra/newview/app_settings/llsd-lsl-syntax.rng     |   390 +
 2 files changed, 18644 insertions(+), 18005 deletions(-)
 create mode 100755 indra/newview/app_settings/llsd-lsl-syntax.rng

(limited to 'indra')

diff --git a/indra/newview/app_settings/keywords_lsl_default.xml b/indra/newview/app_settings/keywords_lsl_default.xml
index 12601a753f..dac3081d37 100755
--- a/indra/newview/app_settings/keywords_lsl_default.xml
+++ b/indra/newview/app_settings/keywords_lsl_default.xml
@@ -1,5146 +1,5253 @@
-<?xml version="1.0" encoding="utf-8"?><?xml-model href="llsd-lsl-syntax.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
+<?xml version="1.0" encoding="UTF-8"?><?xml-model href="llsd-lsl-syntax.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
 <llsd>
-	<map>
-		<key>controls</key>
-		<map>
-			<key>default</key>
-			<map>
-				<key>tooltip</key>
-				<string>All scripts must have a default state, which is the first state entered when the script starts.\nIf another state is defined before the default state, the compiler will report a syntax error.</string>
-			</map>
-			<key>do</key>
-			<map>
-				<key>tooltip</key>
-				<string>do / while loop\ndo {\n...\n} while (&lt;condition&gt;);</string>
-			</map>
-			<key>else</key>
-			<map>
-				<key>tooltip</key>
-				<string>if / else block\nif (&lt;condition&gt;) {\n...\n[} else [if (&lt;condition&gt;) {\n...]]\n}</string>
-			</map>
-			<key>for</key>
-			<map>
-				<key>tooltip</key>
-				<string>for loop\nfor (&lt;initialiser&gt;; &lt;condition&gt;; &lt;post-iteration-statement&gt;)\n{ ...\n}</string>
-			</map>
-			<key>if</key>
-			<map>
-				<key>tooltip</key>
-				<string>if / else block\nif (&lt;condition&gt;) {\n...\n[} else [if (&lt;condition&gt;) {\n...]]\n}</string>
-			</map>
-			<key>jump</key>
-			<map>
-				<key>tooltip</key>
-				<string>jump statement\njump &lt;label&gt;</string>
-			</map>
-			<key>return</key>
-			<map>
-				<key>tooltip</key>
-				<string>Leave current event or function.\nreturn [&lt;variable&gt;];\nOptionally pass back a variable's value, from a function.</string>
-			</map>
-			<key>state</key>
-			<map>
-				<key>tooltip</key>
-				<string>state &lt;target&gt;\nIf the target state is not the same as the current one, change to the target state.</string>
-			</map>
-			<key>while</key>
-			<map>
-				<key>tooltip</key>
-				<string>while loop\nwhile (&lt;condition&gt;) {\n,,,\n}</string>
-			</map>
-		</map>
-		<key>types</key>
-		<map>
-			<key>float</key>
-			<map>
-				<key>tooltip</key>
-				<string>32 bit floating point value.\nThe range is 1.175494351E-38 to 3.402823466E+38.</string>
-			</map>
-			<key>integer</key>
-			<map>
-				<key>tooltip</key>
-				<string>32 bit integer value.\n−2,147,483,648 and +2,147,483,647 (that is 0x80000000 to 0x7FFFFFFF in hex).</string>
-			</map>
-			<key>key</key>
-			<map>
-				<key>tooltip</key>
-				<string>A 128 bit unique identifier (UUID).\nThe key is represented as hexidecimal characters (A-F and 0-9), grouped into sections (8,4,4,4,12 characters) and separated by hyphens (for a total of 36 characters). e.g. "A822FF2B-FF02-461D-B45D-DCD10A2DE0C2".</string>
-			</map>
-			<key>list</key>
-			<map>
-				<key>tooltip</key>
-				<string>A collection of other data types.\nLists are signified by square brackets surrounding their elements; the elements inside are separated by commas. e.g. [0, 1, 2, 3, 4] or ["Yes", "No", "Perhaps"].</string>
-			</map>
-			<key>quaternion</key>
-			<map>
-				<key>tooltip</key>
-				<string>The quaternion type is a left over from way back when LSL was created. It was later renamed to &lt;rotation&gt; to make it more user friendly, but it appears someone forgot to remove it ;-)</string>
-			</map>
-			<key>rotation</key>
-			<map>
-				<key>tooltip</key>
-				<string>The rotation type is one of several ways to represent an orientation in 3D.\nIt is a mathematical object called a quaternion. You can think of a quaternion as four numbers (x, y, z, w), three of which represent the direction an object is facing and a fourth that represents the object's banking left or right around that direction.</string>
-			</map>
-			<key>string</key>
-			<map>
-				<key>tooltip</key>
-				<string>Text data.\nThe editor accepts UTF-8 encoded text.</string>
-			</map>
-			<key>vector</key>
-			<map>
-				<key>tooltip</key>
-				<string>A vector is a data type that contains a set of three float values.\nVectors are used to represent colours (RGB), positions, and directions/velocities.</string>
-			</map>
-		</map>
-		<key>constants</key>
-		<map>
-			<key>ACTIVE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x2</integer>
-				<key>tooltip</key>
-				<string>Objects in world that are running a script or currently physically moving.</string>
-			</map>
-			<key>AGENT</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x1</integer>
-				<key>tooltip</key>
-				<string>Objects in world that are agents.</string>
-			</map>
-			<key>AGENT_ALWAYS_RUN</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x1000</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>AGENT_ATTACHMENTS</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x2</integer>
-				<key>tooltip</key>
-				<string>The agent has attachments.</string>
-			</map>
-			<key>AGENT_AUTOPILOT</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x2000</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>AGENT_AWAY</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x40</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>AGENT_BUSY</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x800</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>AGENT_BY_LEGACY_NAME</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x1</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>AGENT_BY_USERNAME</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x10</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>AGENT_CROUCHING</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x400</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>AGENT_FLYING</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x1</integer>
-				<key>tooltip</key>
-				<string>The agent is flying.</string>
-			</map>
-			<key>AGENT_IN_AIR</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x100</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>AGENT_LIST_PARCEL</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>1</integer>
-				<key>tooltip</key>
-				<string>Agents on the same parcel where the script is running.</string>
-			</map>
-			<key>AGENT_LIST_PARCEL_OWNER</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>2</integer>
-				<key>tooltip</key>
-				<string>Agents on any parcel in the region where the parcel owner is the same as the owner of the parcel under the scripted object.</string>
-			</map>
-			<key>AGENT_LIST_REGION</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>4</integer>
-				<key>tooltip</key>
-				<string>All agents in the region.</string>
-			</map>
-			<key>AGENT_MOUSELOOK</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x8</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>AGENT_ON_OBJECT</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x20</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>AGENT_SCRIPTED</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x4</integer>
-				<key>tooltip</key>
-				<string>The agent has scripted attachments.</string>
-			</map>
-			<key>AGENT_SITTING</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x10</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>AGENT_TYPING</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x200</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>AGENT_WALKING</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x80</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>ALL_SIDES</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>-1</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>ANIM_ON</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x1</integer>
-				<key>tooltip</key>
-				<string>Texture animation is on.</string>
-			</map>
-			<key>ATTACH_AVATAR_CENTER</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>40</integer>
-				<key>tooltip</key>
-				<string>Attach to the avatar's geometric centre.</string>
-			</map>
-			<key>ATTACH_BACK</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>9</integer>
-				<key>tooltip</key>
-				<string>Attach to the avatar's back.</string>
-			</map>
-			<key>ATTACH_BELLY</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>28</integer>
-				<key>tooltip</key>
-				<string>Attach to the avatar's belly.</string>
-			</map>
-			<key>ATTACH_CHEST</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>1</integer>
-				<key>tooltip</key>
-				<string>Attach to the avatar's chest.</string>
-			</map>
-			<key>ATTACH_CHIN</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>12</integer>
-				<key>tooltip</key>
-				<string>Attach to the avatar's chin.</string>
-			</map>
-			<key>ATTACH_HEAD</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>2</integer>
-				<key>tooltip</key>
-				<string>Attach to the avatar's head.</string>
-			</map>
-			<key>ATTACH_HUD_BOTTOM</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>37</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>ATTACH_HUD_BOTTOM_LEFT</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>36</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>ATTACH_HUD_BOTTOM_RIGHT</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>38</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>ATTACH_HUD_CENTER_1</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>35</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>ATTACH_HUD_CENTER_2</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>31</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>ATTACH_HUD_TOP_CENTER</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>33</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>ATTACH_HUD_TOP_LEFT</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>34</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>ATTACH_HUD_TOP_RIGHT</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>32</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>ATTACH_LEAR</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>13</integer>
-				<key>tooltip</key>
-				<string>Attach to the avatar's left ear.</string>
-			</map>
-			<key>ATTACH_LEFT_PEC</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>29</integer>
-				<key>tooltip</key>
-				<string>Attach to the avatar's left pectoral.</string>
-			</map>
-			<key>ATTACH_LEYE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>15</integer>
-				<key>tooltip</key>
-				<string>Attach to the avatar's left eye.</string>
-			</map>
-			<key>ATTACH_LFOOT</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>7</integer>
-				<key>tooltip</key>
-				<string>Attach to the avatar's left foot.</string>
-			</map>
-			<key>ATTACH_LHAND</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>5</integer>
-				<key>tooltip</key>
-				<string>Attach to the avatar's left hand.</string>
-			</map>
-			<key>ATTACH_LHIP</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>25</integer>
-				<key>tooltip</key>
-				<string>Attach to the avatar's left hip.</string>
-			</map>
-			<key>ATTACH_LLARM</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>21</integer>
-				<key>tooltip</key>
-				<string>Attach to the avatar's left lower arm.</string>
-			</map>
-			<key>ATTACH_LLLEG</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>27</integer>
-				<key>tooltip</key>
-				<string>Attach to the avatar's lower left leg.</string>
-			</map>
-			<key>ATTACH_LPEC</key>
-			<map>
-				<key>deprecated</key>
-				<boolean>true</boolean>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>30</integer>
-				<key>tooltip</key>
-				<string>Attach to the avatar's right pectoral. (Deprecated, use ATTACH_RIGHT_PEC)</string>
-			</map>
-			<key>ATTACH_LSHOULDER</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>3</integer>
-				<key>tooltip</key>
-				<string>Attach to the avatar's left shoulder.</string>
-			</map>
-			<key>ATTACH_LUARM</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>20</integer>
-				<key>tooltip</key>
-				<string>Attach to the avatar's left upper arm.</string>
-			</map>
-			<key>ATTACH_LULEG</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>27</integer>
-				<key>tooltip</key>
-				<string>Attach to the avatar's lower upper leg.</string>
-			</map>
-			<key>ATTACH_MOUTH</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>11</integer>
-				<key>tooltip</key>
-				<string>Attach to the avatar's mouth.</string>
-			</map>
-			<key>ATTACH_NECK</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>39</integer>
-				<key>tooltip</key>
-				<string>Attach to the avatar's neck.</string>
-			</map>
-			<key>ATTACH_NOSE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>17</integer>
-				<key>tooltip</key>
-				<string>Attach to the avatar's nose.</string>
-			</map>
-			<key>ATTACH_PELVIS</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>10</integer>
-				<key>tooltip</key>
-				<string>Attach to the avatar's pelvis.</string>
-			</map>
-			<key>ATTACH_REAR</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>14</integer>
-				<key>tooltip</key>
-				<string>Attach to the avatar's right ear.</string>
-			</map>
-			<key>ATTACH_REYE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>16</integer>
-				<key>tooltip</key>
-				<string>Attach to the avatar's right eye.</string>
-			</map>
-			<key>ATTACH_RFOOT</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>8</integer>
-				<key>tooltip</key>
-				<string>Attach to the avatar's right foot.</string>
-			</map>
-			<key>ATTACH_RHAND</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>6</integer>
-				<key>tooltip</key>
-				<string>Attach to the avatar's right hand.</string>
-			</map>
-			<key>ATTACH_RHIP</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>22</integer>
-				<key>tooltip</key>
-				<string>Attach to the avatar's right hip.</string>
-			</map>
-			<key>ATTACH_RIGHT_PEC</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>30</integer>
-				<key>tooltip</key>
-				<string>Attach to the avatar's right pectoral.</string>
-			</map>
-			<key>ATTACH_RLARM</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>19</integer>
-				<key>tooltip</key>
-				<string>Attach to the avatar's right lower arm.</string>
-			</map>
-			<key>ATTACH_RLLEG</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>24</integer>
-				<key>tooltip</key>
-				<string>Attach to the avatar's right lower leg.</string>
-			</map>
-			<key>ATTACH_RPEC</key>
-			<map>
-				<key>deprecated</key>
-				<boolean>true</boolean>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>29</integer>
-				<key>tooltip</key>
-				<string>Attach to the avatar's left pectoral. (deprecated, use ATTACH_LEFT_PEC)</string>
-			</map>
-			<key>ATTACH_RSHOULDER</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>4</integer>
-				<key>tooltip</key>
-				<string>Attach to the avatar's right shoulder.</string>
-			</map>
-			<key>ATTACH_RUARM</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>18</integer>
-				<key>tooltip</key>
-				<string>Attach to the avatar's right upper arm.</string>
-			</map>
-			<key>ATTACH_RULEG</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>23</integer>
-				<key>tooltip</key>
-				<string>Attach to the avatar's right upper leg.</string>
-			</map>
-			<key>AVOID_CHARACTERS</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>1</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>AVOID_DYNAMIC_OBSTACLES</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>2</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>AVOID_NONE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>CAMERA_ACTIVE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>12</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>CAMERA_BEHINDNESS_ANGLE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>8</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>CAMERA_BEHINDNESS_LAG</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>9</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>CAMERA_DISTANCE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>7</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>CAMERA_FOCUS</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>17</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>CAMERA_FOCUS_LAG</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>6</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>CAMERA_FOCUS_LOCKED</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>22</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>CAMERA_FOCUS_OFFSET</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>1</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>CAMERA_FOCUS_THRESHOLD</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>11</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>CAMERA_PITCH</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>CAMERA_POSITION</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>13</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>CAMERA_POSITION_LAG</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>6</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>CAMERA_POSITION_LOCKED</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>22</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>CAMERA_POSITION_THRESHOLD</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>10</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>CHANGED_ALLOWED_DROP</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x40</integer>
-				<key>tooltip</key>
-				<string>The object inventory has changed because an item was added through the llAllowInventoryDrop interface.</string>
-			</map>
-			<key>CHANGED_COLOR</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x2</integer>
-				<key>tooltip</key>
-				<string>The object colour has changed.</string>
-			</map>
-			<key>CHANGED_INVENTORY</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x1</integer>
-				<key>tooltip</key>
-				<string>The object inventory has changed.</string>
-			</map>
-			<key>CHANGED_LINK</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x20</integer>
-				<key>tooltip</key>
-				<string>The object has linked or its links were broken.</string>
-			</map>
-			<key>CHANGED_MEDIA</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>2048</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>CHANGED_OWNER</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x80</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>CHANGED_REGION</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x100</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>CHANGED_REGION_START</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x400</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>CHANGED_SCALE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x8</integer>
-				<key>tooltip</key>
-				<string>The object scale (size) has changed.</string>
-			</map>
-			<key>CHANGED_SHAPE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x4</integer>
-				<key>tooltip</key>
-				<string>The object base shape has changed, e.g., a box to a cylinder.</string>
-			</map>
-			<key>CHANGED_TELEPORT</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x200</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>CHANGED_TEXTURE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x10</integer>
-				<key>tooltip</key>
-				<string>The texture offset, scale rotation, or simply the object texture has changed.</string>
-			</map>
-			<key>CHARACTER_ACCOUNT_FOR_SKIPPED_FRAMES</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>14</integer>
-				<key>tooltip</key>
-				<string>If set to false, character will not attempt to catch up on lost time when pathfinding performance is low, potentially providing more reliable movement (albeit while potentially appearing to be more stuttery). Default is true to match pre-existing behavior.</string>
-			</map>
-			<key>CHARACTER_AVOIDANCE_MODE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>5</integer>
-				<key>tooltip</key>
-				<string>Allows you to specify that a character should not try to avoid other characters, should not try to avoid dynamic obstacles (relatively fast moving objects and avatars), or both.</string>
-			</map>
-			<key>CHARACTER_CMD_JUMP</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x01</integer>
-				<key>tooltip</key>
-				<string>Makes the character jump. Requires an additional parameter, the height to jump, between 0.1m and 2.0m. This must be provided as the first element of the llExecCharacterCmd option list.</string>
-			</map>
-			<key>CHARACTER_CMD_SMOOTH_STOP</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>2</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>CHARACTER_CMD_STOP</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x00</integer>
-				<key>tooltip</key>
-				<string>Stops any current pathfinding operation.</string>
-			</map>
-			<key>CHARACTER_DESIRED_SPEED</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>1</integer>
-				<key>tooltip</key>
-				<string>Speed of pursuit in meters per second.</string>
-			</map>
-			<key>CHARACTER_DESIRED_TURN_SPEED</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>12</integer>
-				<key>tooltip</key>
-				<string>The character's maximum speed while turning about the Z axis. - Note that this is only loosely enforced.</string>
-			</map>
-			<key>CHARACTER_LENGTH</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>3</integer>
-				<key>tooltip</key>
-				<string>Set collision capsule length - cannot be less than two times the radius.</string>
-			</map>
-			<key>CHARACTER_MAX_ACCEL</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>8</integer>
-				<key>tooltip</key>
-				<string>The character's maximum acceleration rate.</string>
-			</map>
-			<key>CHARACTER_MAX_DECEL</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>9</integer>
-				<key>tooltip</key>
-				<string>The character's maximum deceleration rate.</string>
-			</map>
-			<key>CHARACTER_MAX_SPEED</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>13</integer>
-				<key>tooltip</key>
-				<string>The character's maximum speed.</string>
-			</map>
-			<key>CHARACTER_MAX_TURN_RADIUS</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>10</integer>
-				<key>tooltip</key>
-				<string>The character's turn radius when travelling at CHARACTER_MAX_TURN_SPEED.</string>
-			</map>
-			<key>CHARACTER_ORIENTATION</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>4</integer>
-				<key>tooltip</key>
-				<string>Valid options are: VERTICAL, HORIZONTAL.</string>
-			</map>
-			<key>CHARACTER_RADIUS</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>2</integer>
-				<key>tooltip</key>
-				<string>Set collision capsule radius.</string>
-			</map>
-			<key>CHARACTER_STAY_WITHIN_PARCEL</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>15</integer>
-				<key>tooltip</key>
-				<string>Determines whether a character can leave its starting parcel.\nTakes a boolean parameter. If TRUE, the character cannot voluntarilly leave the parcel, but can return to it.</string>
-			</map>
-			<key>CHARACTER_TYPE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>6</integer>
-				<key>tooltip</key>
-				<string>Specifies which walk-ability coefficient will be used by this character.</string>
-			</map>
-			<key>CHARACTER_TYPE_A</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>CHARACTER_TYPE_B</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>1</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>CHARACTER_TYPE_C</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>2</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>CHARACTER_TYPE_D</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>3</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>CHARACTER_TYPE_NONE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>4</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>CLICK_ACTION_BUY</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>2</integer>
-				<key>tooltip</key>
-				<string>When the prim is clicked, the buy dialog is opened.</string>
-			</map>
-			<key>CLICK_ACTION_NONE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0</integer>
-				<key>tooltip</key>
-				<string>Performs the default action: when the prim is clicked, touch events are triggered".</string>
-			</map>
-			<key>CLICK_ACTION_OPEN</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>4</integer>
-				<key>tooltip</key>
-				<string>When the prim is clicked, the object inventory dialog is opened.</string>
-			</map>
-			<key>CLICK_ACTION_OPEN_MEDIA</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>6</integer>
-				<key>tooltip</key>
-				<string>When the prim is touched, the web media dialog is opened".</string>
-			</map>
-			<key>CLICK_ACTION_PAY</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>3</integer>
-				<key>tooltip</key>
-				<string>When the prim is clicked, the pay dialog is opened.</string>
-			</map>
-			<key>CLICK_ACTION_PLAY</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>5</integer>
-				<key>tooltip</key>
-				<string>When the prim is clicked, html-on-a-prim is enabled?</string>
-			</map>
-			<key>CLICK_ACTION_SIT</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>1</integer>
-				<key>tooltip</key>
-				<string>When the prim is clicked, the avatar sits upon it.</string>
-			</map>
-			<key>CLICK_ACTION_TOUCH</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0</integer>
-				<key>tooltip</key>
-				<string>When the prim is clicked, touch events are triggered".</string>
-			</map>
-			<key>CONTENT_TYPE_ATOM</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>4</integer>
-				<key>tooltip</key>
-				<string>"application/atom+xml"</string>
-			</map>
-			<key>CONTENT_TYPE_FORM</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>7</integer>
-				<key>tooltip</key>
-				<string>"application/x-www-form-urlencoded"</string>
-			</map>
-			<key>CONTENT_TYPE_HTML</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>1</integer>
-				<key>tooltip</key>
-				<string>"text/html", only valid for embedded browsers on content owned by the person viewing. Falls back to "text/plain" otherwise.</string>
-			</map>
-			<key>CONTENT_TYPE_JSON</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>5</integer>
-				<key>tooltip</key>
-				<string>"application/json"</string>
-			</map>
-			<key>CONTENT_TYPE_LLSD</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>6</integer>
-				<key>tooltip</key>
-				<string>"application/llsd+xml"</string>
-			</map>
-			<key>CONTENT_TYPE_RSS</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>8</integer>
-				<key>tooltip</key>
-				<string>"application/rss+xml"</string>
-			</map>
-			<key>CONTENT_TYPE_TEXT</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0</integer>
-				<key>tooltip</key>
-				<string>"text/plain"</string>
-			</map>
-			<key>CONTENT_TYPE_XHTML</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>3</integer>
-				<key>tooltip</key>
-				<string>"application/xhtml+xml"</string>
-			</map>
-			<key>CONTENT_TYPE_XML</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>2</integer>
-				<key>tooltip</key>
-				<string>"application/xml"</string>
-			</map>
-			<key>CONTROL_BACK</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x2</integer>
-				<key>tooltip</key>
-				<string>Test for the avatar move back control.</string>
-			</map>
-			<key>CONTROL_DOWN</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x20</integer>
-				<key>tooltip</key>
-				<string>Test for the avatar move down control.</string>
-			</map>
-			<key>CONTROL_FWD</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x1</integer>
-				<key>tooltip</key>
-				<string>Test for the avatar move forward control.</string>
-			</map>
-			<key>CONTROL_LBUTTON</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x10000000</integer>
-				<key>tooltip</key>
-				<string>Test for the avatar left button control.</string>
-			</map>
-			<key>CONTROL_LEFT</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x4</integer>
-				<key>tooltip</key>
-				<string>Test for the avatar move left control.</string>
-			</map>
-			<key>CONTROL_ML_LBUTTON</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x40000000</integer>
-				<key>tooltip</key>
-				<string>Test for the avatar left button control while in mouse look.</string>
-			</map>
-			<key>CONTROL_RIGHT</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x8</integer>
-				<key>tooltip</key>
-				<string>Test for the avatar move right control.</string>
-			</map>
-			<key>CONTROL_ROT_LEFT</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x100</integer>
-				<key>tooltip</key>
-				<string>Test for the avatar rotate left control.</string>
-			</map>
-			<key>CONTROL_ROT_RIGHT</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x200</integer>
-				<key>tooltip</key>
-				<string>Test for the avatar rotate right control.</string>
-			</map>
-			<key>CONTROL_UP</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x10</integer>
-				<key>tooltip</key>
-				<string>Test for the avatar move up control.</string>
-			</map>
-			<key>DATA_BORN</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>3</integer>
-				<key>tooltip</key>
-				<string>The date the agent was born, returned in ISO 8601 format of YYYY-MM-DD.</string>
-			</map>
-			<key>DATA_NAME</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>2</integer>
-				<key>tooltip</key>
-				<string>The name of the agent.</string>
-			</map>
-			<key>DATA_ONLINE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>1</integer>
-				<key>tooltip</key>
-				<string>TRUE for online, FALSE for offline.</string>
-			</map>
-			<key>DATA_PAYINFO</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>8</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>DATA_RATING</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>4</integer>
-				<key>tooltip</key>
-				<string>Returns the agent ratings as a comma separated string of six integers. They are:
+ <map>
+  <key>constants</key>
+  <map>
+   <key>ACTIVE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x2</integer>
+    <key>tooltip</key>
+    <string>Objects in world that are running a script or currently physically moving.</string>
+   </map>
+   <key>AGENT</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x1</integer>
+    <key>tooltip</key>
+    <string>Objects in world that are agents.</string>
+   </map>
+   <key>AGENT_ALWAYS_RUN</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x1000</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>AGENT_ATTACHMENTS</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x2</integer>
+    <key>tooltip</key>
+    <string>The agent has attachments.</string>
+   </map>
+   <key>AGENT_AUTOPILOT</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x2000</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>AGENT_AWAY</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x40</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>AGENT_BUSY</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x800</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>AGENT_BY_LEGACY_NAME</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x1</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>AGENT_BY_USERNAME</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x10</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>AGENT_CROUCHING</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x400</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>AGENT_FLYING</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x1</integer>
+    <key>tooltip</key>
+    <string>The agent is flying.</string>
+   </map>
+   <key>AGENT_IN_AIR</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x100</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>AGENT_LIST_PARCEL</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1</integer>
+    <key>tooltip</key>
+    <string>Agents on the same parcel where the script is running.</string>
+   </map>
+   <key>AGENT_LIST_PARCEL_OWNER</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>2</integer>
+    <key>tooltip</key>
+    <string>Agents on any parcel in the region where the parcel owner is the same as the owner of the parcel under the scripted object.</string>
+   </map>
+   <key>AGENT_LIST_REGION</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>4</integer>
+    <key>tooltip</key>
+    <string>All agents in the region.</string>
+   </map>
+   <key>AGENT_MOUSELOOK</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x8</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>AGENT_ON_OBJECT</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x20</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>AGENT_SCRIPTED</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x4</integer>
+    <key>tooltip</key>
+    <string>The agent has scripted attachments.</string>
+   </map>
+   <key>AGENT_SITTING</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x10</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>AGENT_TYPING</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x200</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>AGENT_WALKING</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x80</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>ALL_SIDES</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>-1</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>ANIM_ON</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x1</integer>
+    <key>tooltip</key>
+    <string>Texture animation is on.</string>
+   </map>
+   <key>ATTACH_AVATAR_CENTER</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>40</integer>
+    <key>tooltip</key>
+    <string>Attach to the avatar's geometric centre.</string>
+   </map>
+   <key>ATTACH_BACK</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>9</integer>
+    <key>tooltip</key>
+    <string>Attach to the avatar's back.</string>
+   </map>
+   <key>ATTACH_BELLY</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>28</integer>
+    <key>tooltip</key>
+    <string>Attach to the avatar's belly.</string>
+   </map>
+   <key>ATTACH_CHEST</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1</integer>
+    <key>tooltip</key>
+    <string>Attach to the avatar's chest.</string>
+   </map>
+   <key>ATTACH_CHIN</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>12</integer>
+    <key>tooltip</key>
+    <string>Attach to the avatar's chin.</string>
+   </map>
+   <key>ATTACH_HEAD</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>2</integer>
+    <key>tooltip</key>
+    <string>Attach to the avatar's head.</string>
+   </map>
+   <key>ATTACH_HUD_BOTTOM</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>37</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>ATTACH_HUD_BOTTOM_LEFT</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>36</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>ATTACH_HUD_BOTTOM_RIGHT</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>38</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>ATTACH_HUD_CENTER_1</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>35</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>ATTACH_HUD_CENTER_2</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>31</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>ATTACH_HUD_TOP_CENTER</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>33</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>ATTACH_HUD_TOP_LEFT</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>34</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>ATTACH_HUD_TOP_RIGHT</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>32</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>ATTACH_LEAR</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>13</integer>
+    <key>tooltip</key>
+    <string>Attach to the avatar's left ear.</string>
+   </map>
+   <key>ATTACH_LEFT_PEC</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>29</integer>
+    <key>tooltip</key>
+    <string>Attach to the avatar's left pectoral.</string>
+   </map>
+   <key>ATTACH_LEYE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>15</integer>
+    <key>tooltip</key>
+    <string>Attach to the avatar's left eye.</string>
+   </map>
+   <key>ATTACH_LFOOT</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>7</integer>
+    <key>tooltip</key>
+    <string>Attach to the avatar's left foot.</string>
+   </map>
+   <key>ATTACH_LHAND</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>5</integer>
+    <key>tooltip</key>
+    <string>Attach to the avatar's left hand.</string>
+   </map>
+   <key>ATTACH_LHIP</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>25</integer>
+    <key>tooltip</key>
+    <string>Attach to the avatar's left hip.</string>
+   </map>
+   <key>ATTACH_LLARM</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>21</integer>
+    <key>tooltip</key>
+    <string>Attach to the avatar's left lower arm.</string>
+   </map>
+   <key>ATTACH_LLLEG</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>27</integer>
+    <key>tooltip</key>
+    <string>Attach to the avatar's lower left leg.</string>
+   </map>
+   <key>ATTACH_LPEC</key>
+   <map>
+    <key>deprecated</key>
+    <boolean>true</boolean>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>30</integer>
+    <key>tooltip</key>
+    <string>Attach to the avatar's right pectoral. (Deprecated, use ATTACH_RIGHT_PEC)</string>
+   </map>
+   <key>ATTACH_LSHOULDER</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>3</integer>
+    <key>tooltip</key>
+    <string>Attach to the avatar's left shoulder.</string>
+   </map>
+   <key>ATTACH_LUARM</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>20</integer>
+    <key>tooltip</key>
+    <string>Attach to the avatar's left upper arm.</string>
+   </map>
+   <key>ATTACH_LULEG</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>27</integer>
+    <key>tooltip</key>
+    <string>Attach to the avatar's lower upper leg.</string>
+   </map>
+   <key>ATTACH_MOUTH</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>11</integer>
+    <key>tooltip</key>
+    <string>Attach to the avatar's mouth.</string>
+   </map>
+   <key>ATTACH_NECK</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>39</integer>
+    <key>tooltip</key>
+    <string>Attach to the avatar's neck.</string>
+   </map>
+   <key>ATTACH_NOSE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>17</integer>
+    <key>tooltip</key>
+    <string>Attach to the avatar's nose.</string>
+   </map>
+   <key>ATTACH_PELVIS</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>10</integer>
+    <key>tooltip</key>
+    <string>Attach to the avatar's pelvis.</string>
+   </map>
+   <key>ATTACH_REAR</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>14</integer>
+    <key>tooltip</key>
+    <string>Attach to the avatar's right ear.</string>
+   </map>
+   <key>ATTACH_REYE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>16</integer>
+    <key>tooltip</key>
+    <string>Attach to the avatar's right eye.</string>
+   </map>
+   <key>ATTACH_RFOOT</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>8</integer>
+    <key>tooltip</key>
+    <string>Attach to the avatar's right foot.</string>
+   </map>
+   <key>ATTACH_RHAND</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>6</integer>
+    <key>tooltip</key>
+    <string>Attach to the avatar's right hand.</string>
+   </map>
+   <key>ATTACH_RHIP</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>22</integer>
+    <key>tooltip</key>
+    <string>Attach to the avatar's right hip.</string>
+   </map>
+   <key>ATTACH_RIGHT_PEC</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>30</integer>
+    <key>tooltip</key>
+    <string>Attach to the avatar's right pectoral.</string>
+   </map>
+   <key>ATTACH_RLARM</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>19</integer>
+    <key>tooltip</key>
+    <string>Attach to the avatar's right lower arm.</string>
+   </map>
+   <key>ATTACH_RLLEG</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>24</integer>
+    <key>tooltip</key>
+    <string>Attach to the avatar's right lower leg.</string>
+   </map>
+   <key>ATTACH_RPEC</key>
+   <map>
+    <key>deprecated</key>
+    <boolean>true</boolean>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>29</integer>
+    <key>tooltip</key>
+    <string>Attach to the avatar's left pectoral. (deprecated, use ATTACH_LEFT_PEC)</string>
+   </map>
+   <key>ATTACH_RSHOULDER</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>4</integer>
+    <key>tooltip</key>
+    <string>Attach to the avatar's right shoulder.</string>
+   </map>
+   <key>ATTACH_RUARM</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>18</integer>
+    <key>tooltip</key>
+    <string>Attach to the avatar's right upper arm.</string>
+   </map>
+   <key>ATTACH_RULEG</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>23</integer>
+    <key>tooltip</key>
+    <string>Attach to the avatar's right upper leg.</string>
+   </map>
+   <key>AVOID_CHARACTERS</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>AVOID_DYNAMIC_OBSTACLES</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>2</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>AVOID_NONE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>CAMERA_ACTIVE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>12</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>CAMERA_BEHINDNESS_ANGLE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>8</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>CAMERA_BEHINDNESS_LAG</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>9</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>CAMERA_DISTANCE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>7</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>CAMERA_FOCUS</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>17</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>CAMERA_FOCUS_LAG</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>6</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>CAMERA_FOCUS_LOCKED</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>22</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>CAMERA_FOCUS_OFFSET</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>CAMERA_FOCUS_THRESHOLD</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>11</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>CAMERA_PITCH</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>CAMERA_POSITION</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>13</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>CAMERA_POSITION_LAG</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>6</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>CAMERA_POSITION_LOCKED</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>22</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>CAMERA_POSITION_THRESHOLD</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>10</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>CHANGED_ALLOWED_DROP</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x40</integer>
+    <key>tooltip</key>
+    <string>The object inventory has changed because an item was added through the llAllowInventoryDrop interface.</string>
+   </map>
+   <key>CHANGED_COLOR</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x2</integer>
+    <key>tooltip</key>
+    <string>The object colour has changed.</string>
+   </map>
+   <key>CHANGED_INVENTORY</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x1</integer>
+    <key>tooltip</key>
+    <string>The object inventory has changed.</string>
+   </map>
+   <key>CHANGED_LINK</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x20</integer>
+    <key>tooltip</key>
+    <string>The object has linked or its links were broken.</string>
+   </map>
+   <key>CHANGED_MEDIA</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>2048</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>CHANGED_OWNER</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x80</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>CHANGED_REGION</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x100</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>CHANGED_REGION_START</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x400</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>CHANGED_SCALE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x8</integer>
+    <key>tooltip</key>
+    <string>The object scale (size) has changed.</string>
+   </map>
+   <key>CHANGED_SHAPE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x4</integer>
+    <key>tooltip</key>
+    <string>The object base shape has changed, e.g., a box to a cylinder.</string>
+   </map>
+   <key>CHANGED_TELEPORT</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x200</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>CHANGED_TEXTURE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x10</integer>
+    <key>tooltip</key>
+    <string>The texture offset, scale rotation, or simply the object texture has changed.</string>
+   </map>
+   <key>CHARACTER_ACCOUNT_FOR_SKIPPED_FRAMES</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>14</integer>
+    <key>tooltip</key>
+    <string>If set to false, character will not attempt to catch up on lost time when pathfinding performance is low, potentially providing more reliable movement (albeit while potentially appearing to be more stuttery). Default is true to match pre-existing behavior.</string>
+   </map>
+   <key>CHARACTER_AVOIDANCE_MODE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>5</integer>
+    <key>tooltip</key>
+    <string>Allows you to specify that a character should not try to avoid other characters, should not try to avoid dynamic obstacles (relatively fast moving objects and avatars), or both.</string>
+   </map>
+   <key>CHARACTER_CMD_JUMP</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x01</integer>
+    <key>tooltip</key>
+    <string>Makes the character jump. Requires an additional parameter, the height to jump, between 0.1m and 2.0m. This must be provided as the first element of the llExecCharacterCmd option list.</string>
+   </map>
+   <key>CHARACTER_CMD_SMOOTH_STOP</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>2</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>CHARACTER_CMD_STOP</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x00</integer>
+    <key>tooltip</key>
+    <string>Stops any current pathfinding operation.</string>
+   </map>
+   <key>CHARACTER_DESIRED_SPEED</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1</integer>
+    <key>tooltip</key>
+    <string>Speed of pursuit in meters per second.</string>
+   </map>
+   <key>CHARACTER_DESIRED_TURN_SPEED</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>12</integer>
+    <key>tooltip</key>
+    <string>The character's maximum speed while turning about the Z axis. - Note that this is only loosely enforced.</string>
+   </map>
+   <key>CHARACTER_LENGTH</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>3</integer>
+    <key>tooltip</key>
+    <string>Set collision capsule length - cannot be less than two times the radius.</string>
+   </map>
+   <key>CHARACTER_MAX_ACCEL</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>8</integer>
+    <key>tooltip</key>
+    <string>The character's maximum acceleration rate.</string>
+   </map>
+   <key>CHARACTER_MAX_DECEL</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>9</integer>
+    <key>tooltip</key>
+    <string>The character's maximum deceleration rate.</string>
+   </map>
+   <key>CHARACTER_MAX_SPEED</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>13</integer>
+    <key>tooltip</key>
+    <string>The character's maximum speed.</string>
+   </map>
+   <key>CHARACTER_MAX_TURN_RADIUS</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>10</integer>
+    <key>tooltip</key>
+    <string>The character's turn radius when travelling at CHARACTER_MAX_TURN_SPEED.</string>
+   </map>
+   <key>CHARACTER_ORIENTATION</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>4</integer>
+    <key>tooltip</key>
+    <string>Valid options are: VERTICAL, HORIZONTAL.</string>
+   </map>
+   <key>CHARACTER_RADIUS</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>2</integer>
+    <key>tooltip</key>
+    <string>Set collision capsule radius.</string>
+   </map>
+   <key>CHARACTER_STAY_WITHIN_PARCEL</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>15</integer>
+    <key>tooltip</key>
+    <string>Determines whether a character can leave its starting parcel.\nTakes a boolean parameter. If TRUE, the character cannot voluntarilly leave the parcel, but can return to it.</string>
+   </map>
+   <key>CHARACTER_TYPE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>6</integer>
+    <key>tooltip</key>
+    <string>Specifies which walk-ability coefficient will be used by this character.</string>
+   </map>
+   <key>CHARACTER_TYPE_A</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>CHARACTER_TYPE_B</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>CHARACTER_TYPE_C</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>2</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>CHARACTER_TYPE_D</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>3</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>CHARACTER_TYPE_NONE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>4</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>CLICK_ACTION_BUY</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>2</integer>
+    <key>tooltip</key>
+    <string>When the prim is clicked, the buy dialog is opened.</string>
+   </map>
+   <key>CLICK_ACTION_NONE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0</integer>
+    <key>tooltip</key>
+    <string>Performs the default action: when the prim is clicked, touch events are triggered.</string>
+   </map>
+   <key>CLICK_ACTION_OPEN</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>4</integer>
+    <key>tooltip</key>
+    <string>When the prim is clicked, the object inventory dialog is opened.</string>
+   </map>
+   <key>CLICK_ACTION_OPEN_MEDIA</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>6</integer>
+    <key>tooltip</key>
+    <string>When the prim is touched, the web media dialog is opened.</string>
+   </map>
+   <key>CLICK_ACTION_PAY</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>3</integer>
+    <key>tooltip</key>
+    <string>When the prim is clicked, the pay dialog is opened.</string>
+   </map>
+   <key>CLICK_ACTION_PLAY</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>5</integer>
+    <key>tooltip</key>
+    <string>When the prim is clicked, html-on-a-prim is enabled?</string>
+   </map>
+   <key>CLICK_ACTION_SIT</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1</integer>
+    <key>tooltip</key>
+    <string>When the prim is clicked, the avatar sits upon it.</string>
+   </map>
+   <key>CLICK_ACTION_TOUCH</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0</integer>
+    <key>tooltip</key>
+    <string>When the prim is clicked, touch events are triggered.</string>
+   </map>
+   <key>CONTENT_TYPE_ATOM</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>4</integer>
+    <key>tooltip</key>
+    <string>"application/atom+xml"</string>
+   </map>
+   <key>CONTENT_TYPE_FORM</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>7</integer>
+    <key>tooltip</key>
+    <string>"application/x-www-form-urlencoded"</string>
+   </map>
+   <key>CONTENT_TYPE_HTML</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1</integer>
+    <key>tooltip</key>
+    <string>"text/html", only valid for embedded browsers on content owned by the person viewing. Falls back to "text/plain" otherwise.</string>
+   </map>
+   <key>CONTENT_TYPE_JSON</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>5</integer>
+    <key>tooltip</key>
+    <string>"application/json"</string>
+   </map>
+   <key>CONTENT_TYPE_LLSD</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>6</integer>
+    <key>tooltip</key>
+    <string>"application/llsd+xml"</string>
+   </map>
+   <key>CONTENT_TYPE_RSS</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>8</integer>
+    <key>tooltip</key>
+    <string>"application/rss+xml"</string>
+   </map>
+   <key>CONTENT_TYPE_TEXT</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0</integer>
+    <key>tooltip</key>
+    <string>"text/plain"</string>
+   </map>
+   <key>CONTENT_TYPE_XHTML</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>3</integer>
+    <key>tooltip</key>
+    <string>"application/xhtml+xml"</string>
+   </map>
+   <key>CONTENT_TYPE_XML</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>2</integer>
+    <key>tooltip</key>
+    <string>"application/xml"</string>
+   </map>
+   <key>CONTROL_BACK</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x2</integer>
+    <key>tooltip</key>
+    <string>Test for the avatar move back control.</string>
+   </map>
+   <key>CONTROL_DOWN</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x20</integer>
+    <key>tooltip</key>
+    <string>Test for the avatar move down control.</string>
+   </map>
+   <key>CONTROL_FWD</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x1</integer>
+    <key>tooltip</key>
+    <string>Test for the avatar move forward control.</string>
+   </map>
+   <key>CONTROL_LBUTTON</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x10000000</integer>
+    <key>tooltip</key>
+    <string>Test for the avatar left button control.</string>
+   </map>
+   <key>CONTROL_LEFT</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x4</integer>
+    <key>tooltip</key>
+    <string>Test for the avatar move left control.</string>
+   </map>
+   <key>CONTROL_ML_LBUTTON</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x40000000</integer>
+    <key>tooltip</key>
+    <string>Test for the avatar left button control while in mouse look.</string>
+   </map>
+   <key>CONTROL_RIGHT</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x8</integer>
+    <key>tooltip</key>
+    <string>Test for the avatar move right control.</string>
+   </map>
+   <key>CONTROL_ROT_LEFT</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x100</integer>
+    <key>tooltip</key>
+    <string>Test for the avatar rotate left control.</string>
+   </map>
+   <key>CONTROL_ROT_RIGHT</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x200</integer>
+    <key>tooltip</key>
+    <string>Test for the avatar rotate right control.</string>
+   </map>
+   <key>CONTROL_UP</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x10</integer>
+    <key>tooltip</key>
+    <string>Test for the avatar move up control.</string>
+   </map>
+   <key>DATA_BORN</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>3</integer>
+    <key>tooltip</key>
+    <string>The date the agent was born, returned in ISO 8601 format of YYYY-MM-DD.</string>
+   </map>
+   <key>DATA_NAME</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>2</integer>
+    <key>tooltip</key>
+    <string>The name of the agent.</string>
+   </map>
+   <key>DATA_ONLINE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1</integer>
+    <key>tooltip</key>
+    <string>TRUE for online, FALSE for offline.</string>
+   </map>
+   <key>DATA_PAYINFO</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>8</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>DATA_RATING</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>4</integer>
+    <key>tooltip</key>
+    <string>Returns the agent ratings as a comma separated string of six integers. They are:
 			1) Positive rated behaviour
 			2) Negative rated behaviour
 			3) Positive rated appearance
 			4) Negative rated appearance
 			5) Positive rated building
 			6) Negative rated building</string>
-			</map>
-			<key>DATA_SIM_POS</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>5</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>DATA_SIM_RATING</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>7</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>DATA_SIM_STATUS</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>6</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>DEBUG_CHANNEL</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>2147483647</integer>
-				<key>tooltip</key>
-				<string>DEBUG_CHANNEL is an integer constant that, when passed to llSay, llWhisper, or llShout as a channel parameter, will print text to the Script Warning/Error Window.</string>
-			</map>
-			<key>DEG_TO_RAD</key>
-			<map>
-				<key>type</key>
-				<string>float</string>
-				<key>value</key>
-				<real>0.01745329</real>
-				<key>tooltip</key>
-				<string>0.01745329 - Number of radians per degree.
+   </map>
+   <key>DATA_SIM_POS</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>5</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>DATA_SIM_RATING</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>7</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>DATA_SIM_STATUS</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>6</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>DEBUG_CHANNEL</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>2147483647</integer>
+    <key>tooltip</key>
+    <string>DEBUG_CHANNEL is an integer constant that, when passed to llSay, llWhisper, or llShout as a channel parameter, will print text to the Script Warning/Error Window.</string>
+   </map>
+   <key>DEG_TO_RAD</key>
+   <map>
+    <key>type</key>
+    <string>float</string>
+    <key>value</key>
+    <real>0.01745329</real>
+    <key>tooltip</key>
+    <string>0.01745329 - Number of radians per degree.
 			You can use this to convert degrees to radians by multiplying the degrees by this number.</string>
-			</map>
-			<key>DENSITY</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>1</integer>
-				<key>tooltip</key>
-				<string>Used with llSetPhysicsMaterial to enable the density value. Must be between 1.0 and 22587.0 (in Kg/m^3 -- see if you can figure out what 22587 represents)</string>
-			</map>
-			<key>EOF</key>
-			<map>
-				<key>type</key>
-				<string>string</string>
-				<key>value</key>
-				<string>\n\n\n</string>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>ERR_GENERIC</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>-1</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>ERR_MALFORMED_PARAMS</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>-3</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>ERR_PARCEL_PERMISSIONS</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>-2</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>ERR_RUNTIME_PERMISSIONS</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>-4</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>ERR_THROTTLED</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>-5</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>ESTATE_ACCESS_ALLOWED_AGENT_ADD</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>4</integer>
-				<key>tooltip</key>
-				<string>Add the agent to this estate's Allowed Residents list.</string>
-			</map>
-			<key>ESTATE_ACCESS_ALLOWED_AGENT_REMOVE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>8</integer>
-				<key>tooltip</key>
-				<string>Remove the agent from this estate's Allowed Residents list.</string>
-			</map>
-			<key>ESTATE_ACCESS_ALLOWED_GROUP_ADD</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>16</integer>
-				<key>tooltip</key>
-				<string>Add the group to this estate's Allowed groups list.</string>
-			</map>
-			<key>ESTATE_ACCESS_ALLOWED_GROUP_REMOVE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>32</integer>
-				<key>tooltip</key>
-				<string>Remove the group from this estate's Allowed groups list.</string>
-			</map>
-			<key>ESTATE_ACCESS_BANNED_AGENT_ADD</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>64</integer>
-				<key>tooltip</key>
-				<string>Add the agent to this estate's Banned residents list.</string>
-			</map>
-			<key>ESTATE_ACCESS_BANNED_AGENT_REMOVE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>128</integer>
-				<key>tooltip</key>
-				<string>Remove the agent from this estate's Banned residents list.</string>
-			</map>
-			<key>FALSE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0</integer>
-				<key>tooltip</key>
-				<string>An integer constant for boolean comparisons. Has the value '0'.</string>
-			</map>
-			<key>FORCE_DIRECT_PATH</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>1</integer>
-				<key>tooltip</key>
-				<string>Makes character navigate in a straight line toward position. May be set to TRUE or FALSE.</string>
-			</map>
-			<key>FRICTION</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>2</integer>
-				<key>tooltip</key>
-				<string>Used with llSetPhysicsMaterial to enable the friction value. Must be between 0.0 and 255.0</string>
-			</map>
-			<key>GRAVITY_MULTIPLIER</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>8</integer>
-				<key>tooltip</key>
-				<string>Used with llSetPhysicsMaterial to enable the gravity multiplier value. Must be between -1.0 and +28.0</string>
-			</map>
-			<key>HORIZONTAL</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>1</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>HTTP_BODY_MAXLENGTH</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>2</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>HTTP_BODY_TRUNCATED</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>HTTP_CUSTOM_HEADER</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>5</integer>
-				<key>tooltip</key>
-				<string>Add an extra custom HTTP header to the request. The first string is the name of the parameter to change, e.g. "Pragma", and the second string is the value, e.g. "no-cache". Up to 8 custom headers may be configured per request. Note that certain headers, such as the default headers, are blocked for security reasons.</string>
-			</map>
-			<key>HTTP_METHOD</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>HTTP_MIMETYPE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>1</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>HTTP_PRAGMA_NO_CACHE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>6</integer>
-				<key>tooltip</key>
-				<string>Allows enabling/disbling of the "Pragma: no-cache" header.\nUsage: [HTTP_PRAGMA_NO_CACHE, integer SendHeader]. When SendHeader is TRUE, the "Pragma: no-cache" header is sent by the script. This matches the default behavior. When SendHeader is FALSE, no "Pragma" header is sent by the script.</string>
-			</map>
-			<key>HTTP_VERBOSE_THROTTLE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>4</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>HTTP_VERIFY_CERT</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>3</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>INVENTORY_ALL</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>-1</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>INVENTORY_ANIMATION</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>20</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>INVENTORY_BODYPART</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>13</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>INVENTORY_CLOTHING</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>5</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>INVENTORY_GESTURE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>21</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>INVENTORY_LANDMARK</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>3</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>INVENTORY_NONE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>-1</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>INVENTORY_NOTECARD</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>7</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>INVENTORY_OBJECT</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>6</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>INVENTORY_SCRIPT</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>10</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>INVENTORY_SOUND</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>1</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>INVENTORY_TEXTURE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>JSON_APPEND</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>-1</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>JSON_ARRAY</key>
-			<map>
-				<key>type</key>
-				<string>string</string>
-				<key>value</key>
-				<string>U+FDD2</string>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>JSON_DELETE</key>
-			<map>
-				<key>type</key>
-				<string>string</string>
-				<key>value</key>
-				<string>U+FDD8</string>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>JSON_FALSE</key>
-			<map>
-				<key>type</key>
-				<string>string</string>
-				<key>value</key>
-				<string>U+FDD7</string>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>JSON_INVALID</key>
-			<map>
-				<key>type</key>
-				<string>string</string>
-				<key>value</key>
-				<string>U+FDD0</string>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>JSON_NULL</key>
-			<map>
-				<key>type</key>
-				<string>string</string>
-				<key>value</key>
-				<string>U+FDD5</string>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>JSON_NUMBER</key>
-			<map>
-				<key>type</key>
-				<string>string</string>
-				<key>value</key>
-				<string>U+FDD3</string>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>JSON_OBJECT</key>
-			<map>
-				<key>type</key>
-				<string>string</string>
-				<key>value</key>
-				<string>U+FDD1</string>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>JSON_STRING</key>
-			<map>
-				<key>type</key>
-				<string>string</string>
-				<key>value</key>
-				<string>U+FDD4</string>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>JSON_TRUE</key>
-			<map>
-				<key>type</key>
-				<string>string</string>
-				<key>value</key>
-				<string>U+FDD6</string>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>KFM_CMD_PAUSE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>2</integer>
-				<key>tooltip</key>
-				<string>For use with KFM_COMMAND.</string>
-			</map>
-			<key>KFM_CMD_PLAY</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0</integer>
-				<key>tooltip</key>
-				<string>For use with KFM_COMMAND.</string>
-			</map>
-			<key>KFM_CMD_STOP</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>1</integer>
-				<key>tooltip</key>
-				<string>For use with KFM_COMMAND.</string>
-			</map>
-			<key>KFM_COMMAND</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>KFM_DATA</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>2</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>KFM_FORWARD</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0</integer>
-				<key>tooltip</key>
-				<string>For use with KFM_MODE.</string>
-			</map>
-			<key>KFM_LOOP</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>1</integer>
-				<key>tooltip</key>
-				<string>For use with KFM_MODE.</string>
-			</map>
-			<key>KFM_MODE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>1</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>KFM_PING_PONG</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>2</integer>
-				<key>tooltip</key>
-				<string>For use with KFM_MODE.</string>
-			</map>
-			<key>KFM_REVERSE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>2</integer>
-				<key>tooltip</key>
-				<string>For use with KFM_MODE.</string>
-			</map>
-			<key>KFM_ROTATION</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>1</integer>
-				<key>tooltip</key>
-				<string>For use with KFM_DATA.</string>
-			</map>
-			<key>KFM_TRANSLATION</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>2</integer>
-				<key>tooltip</key>
-				<string>For use with KFM_DATA.</string>
-			</map>
-			<key>LAND_LARGE_BRUSH</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>3</integer>
-				<key>tooltip</key>
-				<string>Use a large brush size.</string>
-			</map>
-			<key>LAND_LEVEL</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0</integer>
-				<key>tooltip</key>
-				<string>Action to level the land.</string>
-			</map>
-			<key>LAND_LOWER</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>2</integer>
-				<key>tooltip</key>
-				<string>Action to lower the land.</string>
-			</map>
-			<key>LAND_MEDIUM_BRUSH</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>2</integer>
-				<key>tooltip</key>
-				<string>Use a medium brush size.</string>
-			</map>
-			<key>LAND_NOISE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>4</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>LAND_RAISE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>1</integer>
-				<key>tooltip</key>
-				<string>Action to raise the land.</string>
-			</map>
-			<key>LAND_REVERT</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>5</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>LAND_SMALL_BRUSH</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>1</integer>
-				<key>tooltip</key>
-				<string>Use a small brush size.</string>
-			</map>
-			<key>LAND_SMOOTH</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>3</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>LINK_ALL_CHILDREN</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>-3</integer>
-				<key>tooltip</key>
-				<string>This targets every object except the root in the linked set.</string>
-			</map>
-			<key>LINK_ALL_OTHERS</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>-2</integer>
-				<key>tooltip</key>
-				<string>This targets every object in the linked set except the object with the script.</string>
-			</map>
-			<key>LINK_ROOT</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0</integer>
-				<key>tooltip</key>
-				<string>This targets the root of the linked set.</string>
-			</map>
-			<key>LINK_SET</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>-1</integer>
-				<key>tooltip</key>
-				<string>This targets every object in the linked set.</string>
-			</map>
-			<key>LINK_THIS</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>-4</integer>
-				<key>tooltip</key>
-				<string>The link number of the prim containing the script.</string>
-			</map>
-			<key>LIST_STAT_GEOMETRIC_MEAN</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>9</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>LIST_STAT_MAX</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>2</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>LIST_STAT_MEAN</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>3</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>LIST_STAT_MEDIAN</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>4</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>LIST_STAT_MIN</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>1</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>LIST_STAT_NUM_COUNT</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>8</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>LIST_STAT_RANGE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>LIST_STAT_STD_DEV</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>5</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>LIST_STAT_SUM</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>6</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>LIST_STAT_SUM_SQUARES</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>7</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>LOOP</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x2</integer>
-				<key>tooltip</key>
-				<string>Loop the texture animation.</string>
-			</map>
-			<key>MASK_BASE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>MASK_EVERYONE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>3</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>MASK_GROUP</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>2</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>MASK_NEXT</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>4</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>MASK_OWNER</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>1</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>NULL_KEY</key>
-			<map>
-				<key>type</key>
-				<string>key</string>
-				<key>value</key>
-				<uuid>00000000-0000-0000-0000-000000000000</uuid>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>OBJECT_ATTACHED_POINT</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>19</integer>
-				<key>tooltip</key>
-				<string>Gets the attachment point to which the object is attached.\nReturns 0 if the object is not an attachment (or is an avatar, etc).</string>
-			</map>
-			<key>OBJECT_CHARACTER_TIME</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>17</integer>
-				<key>tooltip</key>
-				<string>Units in seconds</string>
-			</map>
-			<key>OBJECT_CREATOR</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>8</integer>
-				<key>tooltip</key>
-				<string>Gets the object's creator key. If id is an avatar, a NULL_KEY is returned.</string>
-			</map>
-			<key>OBJECT_DESC</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>2</integer>
-				<key>tooltip</key>
-				<string>Gets the object's description. If id is an avatar, an empty string is returned.</string>
-			</map>
-			<key>OBJECT_GROUP</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>7</integer>
-				<key>tooltip</key>
-				<string>Gets the prims's group key. If id is an avatar, a NULL_KEY is returned.</string>
-			</map>
-			<key>OBJECT_NAME</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>1</integer>
-				<key>tooltip</key>
-				<string>Gets the object's name.</string>
-			</map>
-			<key>OBJECT_OWNER</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>6</integer>
-				<key>tooltip</key>
-				<string>Gets an object's owner's key. If id is group owned, a NULL_KEY is returned.</string>
-			</map>
-			<key>OBJECT_PATHFINDING_TYPE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>20</integer>
-				<key>tooltip</key>
-				<string>Returns the pathfinding setting of any object in the region. It returns an integer matching one of the OPT_* constants.</string>
-			</map>
-			<key>OBJECT_PHANTOM</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>22</integer>
-				<key>tooltip</key>
-				<string>Returns boolean, detailing if phantom is enabled or disabled on the object.\nIf id is an avatar or attachment, 0 is returned.</string>
-			</map>
-			<key>OBJECT_PHYSICS</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>21</integer>
-				<key>tooltip</key>
-				<string>Returns boolean, detailing if physics is enabled or disabled on the object.\nIf id is an avatar or attachment, 0 is returned.</string>
-			</map>
-			<key>OBJECT_PHYSICS_COST</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>16</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>OBJECT_POS</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>3</integer>
-				<key>tooltip</key>
-				<string>Gets the object's position in region coordinates.</string>
-			</map>
-			<key>OBJECT_PRIM_EQUIVALENCE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>13</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>OBJECT_RETURN_PARCEL</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>1</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>OBJECT_RETURN_PARCEL_OWNER</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>2</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>OBJECT_RETURN_REGION</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>4</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>OBJECT_ROOT</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>18</integer>
-				<key>tooltip</key>
-				<string>Gets the id of the root prim of the object requested.\nIf id is an avatar, return the id of the root prim of the linkset the avatar is sitting on (or the avatar's own id if the avatar is not sitting on an object within the region).</string>
-			</map>
-			<key>OBJECT_ROT</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>4</integer>
-				<key>tooltip</key>
-				<string>Gets the object's rotation.</string>
-			</map>
-			<key>OBJECT_RUNNING_SCRIPT_COUNT</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>9</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>OBJECT_SCRIPT_MEMORY</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>11</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>OBJECT_SCRIPT_TIME</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>12</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>OBJECT_SERVER_COST</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>14</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>OBJECT_STREAMING_COST</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>15</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>OBJECT_TEMP_ON_REZ</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>23</integer>
-				<key>tooltip</key>
-				<string>Returns boolean, detailing if temporary is enabled or disabled on the object.</string>
-			</map>
-			<key>OBJECT_TOTAL_SCRIPT_COUNT</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>10</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>OBJECT_UNKNOWN_DETAIL</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>-1</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>OBJECT_VELOCITY</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>5</integer>
-				<key>tooltip</key>
-				<string>Gets the object's velocity.</string>
-			</map>
-			<key>OPT_AVATAR</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>1</integer>
-				<key>tooltip</key>
-				<string>Returned for avatars.</string>
-			</map>
-			<key>OPT_CHARACTER</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>2</integer>
-				<key>tooltip</key>
-				<string>Returned for pathfinding characters.</string>
-			</map>
-			<key>OPT_EXCLUSION_VOLUME</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>6</integer>
-				<key>tooltip</key>
-				<string>Returned for exclusion volumes.</string>
-			</map>
-			<key>OPT_LEGACY_LINKSET</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0</integer>
-				<key>tooltip</key>
-				<string>Returned for movable obstacles, movable phantoms, physical, and volumedetect objects.</string>
-			</map>
-			<key>OPT_MATERIAL_VOLUME</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>5</integer>
-				<key>tooltip</key>
-				<string>Returned for material volumes.</string>
-			</map>
-			<key>OPT_OTHER</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>-1</integer>
-				<key>tooltip</key>
-				<string>Returned for attachments, Linden trees, and grass.</string>
-			</map>
-			<key>OPT_STATIC_OBSTACLE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>4</integer>
-				<key>tooltip</key>
-				<string>Returned for static obstacles.</string>
-			</map>
-			<key>OPT_WALKABLE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>3</integer>
-				<key>tooltip</key>
-				<string>Returned for walkable objects.</string>
-			</map>
-			<key>PARCEL_COUNT_GROUP</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>2</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PARCEL_COUNT_OTHER</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>3</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PARCEL_COUNT_OWNER</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>1</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PARCEL_COUNT_SELECTED</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>4</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PARCEL_COUNT_TEMP</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>5</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PARCEL_COUNT_TOTAL</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PARCEL_DETAILS_AREA</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>4</integer>
-				<key>tooltip</key>
-				<string>The parcel's area, in square meters. (5 chars.).</string>
-			</map>
-			<key>PARCEL_DETAILS_DESC</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>1</integer>
-				<key>tooltip</key>
-				<string>The description of the parcel. (127 chars).</string>
-			</map>
-			<key>PARCEL_DETAILS_GROUP</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>3</integer>
-				<key>tooltip</key>
-				<string>The parcel group's key. (36 chars.).</string>
-			</map>
-			<key>PARCEL_DETAILS_ID</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>5</integer>
-				<key>tooltip</key>
-				<string>The parcel's key. (36 chars.).</string>
-			</map>
-			<key>PARCEL_DETAILS_NAME</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0</integer>
-				<key>tooltip</key>
-				<string>The name of the parcel. (63 chars.).</string>
-			</map>
-			<key>PARCEL_DETAILS_OWNER</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>2</integer>
-				<key>tooltip</key>
-				<string>The parcel owner's key. (36 chars.).</string>
-			</map>
-			<key>PARCEL_DETAILS_SEE_AVATARS</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>6</integer>
-				<key>tooltip</key>
-				<string>The parcel's avatar visibility setting. (1 char.).</string>
-			</map>
-			<key>PARCEL_FLAG_ALLOW_ALL_OBJECT_ENTRY</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x08000000</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PARCEL_FLAG_ALLOW_CREATE_GROUP_OBJECTS</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x4000000</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PARCEL_FLAG_ALLOW_CREATE_OBJECTS</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x40</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PARCEL_FLAG_ALLOW_DAMAGE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x20</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PARCEL_FLAG_ALLOW_FLY</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x1</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PARCEL_FLAG_ALLOW_GROUP_OBJECT_ENTRY</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x10000000</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PARCEL_FLAG_ALLOW_GROUP_SCRIPTS</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x2000000</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PARCEL_FLAG_ALLOW_LANDMARK</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x8</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PARCEL_FLAG_ALLOW_SCRIPTS</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x2</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PARCEL_FLAG_ALLOW_TERRAFORM</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x10</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PARCEL_FLAG_LOCAL_SOUND_ONLY</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x8000</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PARCEL_FLAG_RESTRICT_PUSHOBJECT</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x200000</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PARCEL_FLAG_USE_ACCESS_GROUP</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x100</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PARCEL_FLAG_USE_ACCESS_LIST</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x200</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PARCEL_FLAG_USE_BAN_LIST</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x400</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PARCEL_FLAG_USE_LAND_PASS_LIST</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x800</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PARCEL_MEDIA_COMMAND_AGENT</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>7</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PARCEL_MEDIA_COMMAND_AUTO_ALIGN</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>9</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PARCEL_MEDIA_COMMAND_DESC</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>12</integer>
-				<key>tooltip</key>
-				<string>Use this to get or set the parcel media description.</string>
-			</map>
-			<key>PARCEL_MEDIA_COMMAND_LOOP</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>3</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PARCEL_MEDIA_COMMAND_LOOP_SET</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>13</integer>
-				<key>tooltip</key>
-				<string>Used to get or set the parcel's media looping variable.</string>
-			</map>
-			<key>PARCEL_MEDIA_COMMAND_PAUSE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>1</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PARCEL_MEDIA_COMMAND_PLAY</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>2</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PARCEL_MEDIA_COMMAND_SIZE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>11</integer>
-				<key>tooltip</key>
-				<string>Use this to get or set the parcel media pixel resolution.</string>
-			</map>
-			<key>PARCEL_MEDIA_COMMAND_STOP</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PARCEL_MEDIA_COMMAND_TEXTURE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>4</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PARCEL_MEDIA_COMMAND_TIME</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>6</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PARCEL_MEDIA_COMMAND_TYPE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>10</integer>
-				<key>tooltip</key>
-				<string>Use this to get or set the parcel media MIME type (e.g. "text/html").</string>
-			</map>
-			<key>PARCEL_MEDIA_COMMAND_UNLOAD</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>8</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PARCEL_MEDIA_COMMAND_URL</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>5</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PASSIVE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x4</integer>
-				<key>tooltip</key>
-				<string>Static in-world objects.</string>
-			</map>
-			<key>PATROL_PAUSE_AT_WAYPOINTS</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PAY_DEFAULT</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>-2</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PAY_HIDE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>-1</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PAYMENT_INFO_ON_FILE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>1</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PAYMENT_INFO_USED</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>2</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PERM_ALL</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x7FFFFFFF</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PERM_COPY</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x8000</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PERM_MODIFY</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x4000</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PERM_MOVE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x80000</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PERM_TRANSFER</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x2000</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PERMISSION_ATTACH</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x20</integer>
-				<key>tooltip</key>
-				<string>If this permission is enabled, the object can successfully call llAttachToAvatar to attach to the given avatar.</string>
-			</map>
-			<key>PERMISSION_CHANGE_JOINTS</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x100</integer>
-				<key>tooltip</key>
-				<string>(not yet implemented)</string>
-			</map>
-			<key>PERMISSION_CHANGE_LINKS</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x80</integer>
-				<key>tooltip</key>
-				<string>If this permission is enabled, the object can successfully call llCreateLink, llBreakLink, and llBreakAllLinks to change links to other objects.</string>
-			</map>
-			<key>PERMISSION_CHANGE_PERMISSIONS</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x200</integer>
-				<key>tooltip</key>
-				<string>(not yet implemented)</string>
-			</map>
-			<key>PERMISSION_CONTROL_CAMERA</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x800</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PERMISSION_DEBIT</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x2</integer>
-				<key>tooltip</key>
-				<string>If this permission is enabled, the object can successfully call llGiveMoney or llTransferLindenDollars to debit the owners account.</string>
-			</map>
-			<key>PERMISSION_OVERRIDE_ANIMATIONS</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x8000</integer>
-				<key>tooltip</key>
-				<string>Permission to override default animations.</string>
-			</map>
-			<key>PERMISSION_RELEASE_OWNERSHIP</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x40</integer>
-				<key>tooltip</key>
-				<string>(not yet implemented)</string>
-			</map>
-			<key>PERMISSION_REMAP_CONTROLS</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x8</integer>
-				<key>tooltip</key>
-				<string>(not yet implemented)</string>
-			</map>
-			<key>PERMISSION_RETURN_OBJECTS</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>65536</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PERMISSION_TAKE_CONTROLS</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x4</integer>
-				<key>tooltip</key>
-				<string>If this permission enabled, the object can successfully call the llTakeControls libray call.</string>
-			</map>
-			<key>PERMISSION_TELEPORT</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x1000</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PERMISSION_TRACK_CAMERA</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x400</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PERMISSION_TRIGGER_ANIMATION</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x10</integer>
-				<key>tooltip</key>
-				<string>If this permission is enabled, the object can successfully call llStartAnimation for the avatar that owns this.</string>
-			</map>
-			<key>PI</key>
-			<map>
-				<key>type</key>
-				<string>float</string>
-				<key>value</key>
-				<real>3.14159265</real>
-				<key>tooltip</key>
-				<string>3.14159265 - The number of radians in a semi-circle.</string>
-			</map>
-			<key>PI_BY_TWO</key>
-			<map>
-				<key>type</key>
-				<string>float</string>
-				<key>value</key>
-				<real>1.57079633</real>
-				<key>tooltip</key>
-				<string>1.57079633 - The number of radians in a quarter circle.</string>
-			</map>
-			<key>PING_PONG</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x8</integer>
-				<key>tooltip</key>
-				<string>Play animation going forwards, then backwards.</string>
-			</map>
-			<key>PRIM_BUMP_BARK</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>4</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_BUMP_BLOBS</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>12</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_BUMP_BRICKS</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>5</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_BUMP_BRIGHT</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>1</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_BUMP_CHECKER</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>6</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_BUMP_CONCRETE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>7</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_BUMP_DARK</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>2</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_BUMP_DISKS</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>10</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_BUMP_GRAVEL</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>11</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_BUMP_LARGETILE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>14</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_BUMP_NONE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_BUMP_SHINY</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>19</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_BUMP_SIDING</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>13</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_BUMP_STONE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>9</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_BUMP_STUCCO</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>15</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_BUMP_SUCTION</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>16</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_BUMP_TILE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>8</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_BUMP_WEAVE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>17</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_BUMP_WOOD</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>3</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_CAST_SHADOWS</key>
-			<map>
-				<key>deprecated</key>
-				<boolean>true</boolean>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>24</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_COLOR</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>18</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_DESC</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>28</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_FLEXIBLE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>21</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_FULLBRIGHT</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>20</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_GLOW</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>25</integer>
-				<key>tooltip</key>
-				<string>PRIM_GLOW is used to get or set the glow status of the face.</string>
-			</map>
-			<key>PRIM_HOLE_CIRCLE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x10</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_HOLE_DEFAULT</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x00</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_HOLE_SQUARE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x20</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_HOLE_TRIANGLE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x30</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_LINK_TARGET</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>34</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_MATERIAL</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>2</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_MATERIAL_FLESH</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>4</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_MATERIAL_GLASS</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>2</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_MATERIAL_LIGHT</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>7</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_MATERIAL_METAL</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>1</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_MATERIAL_PLASTIC</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>5</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_MATERIAL_RUBBER</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>6</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_MATERIAL_STONE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_MATERIAL_WOOD</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>3</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_MEDIA_ALT_IMAGE_ENABLE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0</integer>
-				<key>tooltip</key>
-				<string>Boolean. Gets/Sets the default image state (the image that the user sees before a piece of media is active) for the chosen face. The default image is specified by Second Life's server for that media type.</string>
-			</map>
-			<key>PRIM_MEDIA_AUTO_LOOP</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>4</integer>
-				<key>tooltip</key>
-				<string>Boolean. Gets/Sets whether auto-looping is enabled.</string>
-			</map>
-			<key>PRIM_MEDIA_AUTO_PLAY</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>5</integer>
-				<key>tooltip</key>
-				<string>Boolean. Gets/Sets whether the media auto-plays when a Resident can view it.</string>
-			</map>
-			<key>PRIM_MEDIA_AUTO_SCALE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>6</integer>
-				<key>tooltip</key>
-				<string>Boolean. Gets/Sets whether auto-scaling is enabled. Auto-scaling forces the media to the full size of the texture.</string>
-			</map>
-			<key>PRIM_MEDIA_AUTO_ZOOM</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>7</integer>
-				<key>tooltip</key>
-				<string>Boolean. Gets/Sets whether clicking the media triggers auto-zoom and auto-focus on the media.</string>
-			</map>
-			<key>PRIM_MEDIA_CONTROLS</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>1</integer>
-				<key>tooltip</key>
-				<string>Integer. Gets/Sets the style of controls. Can be either PRIM_MEDIA_CONTROLS_STANDARD or PRIM_MEDIA_CONTROLS_MINI.</string>
-			</map>
-			<key>PRIM_MEDIA_CONTROLS_MINI</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>1</integer>
-				<key>tooltip</key>
-				<string>Mini web navigation controls; does not include an address bar.</string>
-			</map>
-			<key>PRIM_MEDIA_CONTROLS_STANDARD</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0</integer>
-				<key>tooltip</key>
-				<string>Standard web navigation controls.</string>
-			</map>
-			<key>PRIM_MEDIA_CURRENT_URL</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>2</integer>
-				<key>tooltip</key>
-				<string>String. Gets/Sets the current url displayed on the chosen face. Changing this URL causes navigation. 1024 characters Maximum.</string>
-			</map>
-			<key>PRIM_MEDIA_FIRST_CLICK_INTERACT</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>8</integer>
-				<key>tooltip</key>
-				<string>Boolean. Gets/Sets whether the first click interaction is enabled.</string>
-			</map>
-			<key>PRIM_MEDIA_HEIGHT_PIXELS</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>10</integer>
-				<key>tooltip</key>
-				<string>Integer. Gets/Sets the height of the media in pixels.</string>
-			</map>
-			<key>PRIM_MEDIA_HOME_URL</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>3</integer>
-				<key>tooltip</key>
-				<string>String. Gets/Sets the home URL for the chosen face. 1024 characters maximum.</string>
-			</map>
-			<key>PRIM_MEDIA_PERM_ANYONE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>4</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_MEDIA_PERM_GROUP</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>2</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_MEDIA_PERM_NONE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_MEDIA_PERM_OWNER</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>1</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_MEDIA_PERMS_CONTROL</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>14</integer>
-				<key>tooltip</key>
-				<string>Integer. Gets/Sets the permissions mask that control who can see the media control bar above the object:: PRIM_MEDIA_PERM_ANYONE, PRIM_MEDIA_PERM_GROUP, PRIM_MEDIA_PERM_NONE, PRIM_MEDIA_PERM_OWNER</string>
-			</map>
-			<key>PRIM_MEDIA_PERMS_INTERACT</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>13</integer>
-				<key>tooltip</key>
-				<string>Integer. Gets/Sets the permissions mask that control who can interact with the object: PRIM_MEDIA_PERM_ANYONE, PRIM_MEDIA_PERM_GROUP, PRIM_MEDIA_PERM_NONE, PRIM_MEDIA_PERM_OWNER</string>
-			</map>
-			<key>PRIM_MEDIA_WHITELIST</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>12</integer>
-				<key>tooltip</key>
-				<string>String. Gets/Sets the white-list as a string of escaped, comma-separated URLs. This string can hold up to 64 URLs or 1024 characters, whichever comes first.</string>
-			</map>
-			<key>PRIM_MEDIA_WHITELIST_ENABLE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>11</integer>
-				<key>tooltip</key>
-				<string>Boolean. Gets/Sets whether navigation is restricted to URLs in PRIM_MEDIA_WHITELIST.</string>
-			</map>
-			<key>PRIM_MEDIA_WIDTH_PIXELS</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>9</integer>
-				<key>tooltip</key>
-				<string>Integer. Gets/Sets the width of the media in pixels.</string>
-			</map>
-			<key>PRIM_NAME</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>27</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_OMEGA</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>32</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_PHANTOM</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>5</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_PHYSICS</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>3</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_PHYSICS_SHAPE_CONVEX</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>2</integer>
-				<key>tooltip</key>
-				<string>Use the convex hull of the prim shape for physics (this is the default for mesh objects).</string>
-			</map>
-			<key>PRIM_PHYSICS_SHAPE_NONE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>1</integer>
-				<key>tooltip</key>
-				<string>Ignore this prim in the physics shape. NB: This cannot be applied to the root prim.</string>
-			</map>
-			<key>PRIM_PHYSICS_SHAPE_PRIM</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0</integer>
-				<key>tooltip</key>
-				<string>Use the normal prim shape for physics (this is the default for all non-mesh objects).</string>
-			</map>
-			<key>PRIM_PHYSICS_SHAPE_TYPE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>30</integer>
-				<key>tooltip</key>
-				<string>Allows you to set the physics shape type of a prim via lsl. Permitted values are:
+   </map>
+   <key>DENSITY</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1</integer>
+    <key>tooltip</key>
+    <string>Used with llSetPhysicsMaterial to enable the density value. Must be between 1.0 and 22587.0 (in Kg/m^3 -- see if you can figure out what 22587 represents)</string>
+   </map>
+   <key>EOF</key>
+   <map>
+    <key>type</key>
+    <string>string</string>
+    <key>value</key>
+    <string>\n\n\n</string>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>ERR_GENERIC</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>-1</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>ERR_MALFORMED_PARAMS</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>-3</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>ERR_PARCEL_PERMISSIONS</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>-2</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>ERR_RUNTIME_PERMISSIONS</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>-4</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>ERR_THROTTLED</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>-5</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>ESTATE_ACCESS_ALLOWED_AGENT_ADD</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>4</integer>
+    <key>tooltip</key>
+    <string>Add the agent to this estate's Allowed Residents list.</string>
+   </map>
+   <key>ESTATE_ACCESS_ALLOWED_AGENT_REMOVE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>8</integer>
+    <key>tooltip</key>
+    <string>Remove the agent from this estate's Allowed Residents list.</string>
+   </map>
+   <key>ESTATE_ACCESS_ALLOWED_GROUP_ADD</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>16</integer>
+    <key>tooltip</key>
+    <string>Add the group to this estate's Allowed groups list.</string>
+   </map>
+   <key>ESTATE_ACCESS_ALLOWED_GROUP_REMOVE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>32</integer>
+    <key>tooltip</key>
+    <string>Remove the group from this estate's Allowed groups list.</string>
+   </map>
+   <key>ESTATE_ACCESS_BANNED_AGENT_ADD</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>64</integer>
+    <key>tooltip</key>
+    <string>Add the agent to this estate's Banned residents list.</string>
+   </map>
+   <key>ESTATE_ACCESS_BANNED_AGENT_REMOVE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>128</integer>
+    <key>tooltip</key>
+    <string>Remove the agent from this estate's Banned residents list.</string>
+   </map>
+   <key>FALSE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0</integer>
+    <key>tooltip</key>
+    <string>An integer constant for boolean comparisons. Has the value '0'.</string>
+   </map>
+   <key>FORCE_DIRECT_PATH</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1</integer>
+    <key>tooltip</key>
+    <string>Makes character navigate in a straight line toward position. May be set to TRUE or FALSE.</string>
+   </map>
+   <key>FRICTION</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>2</integer>
+    <key>tooltip</key>
+    <string>Used with llSetPhysicsMaterial to enable the friction value. Must be between 0.0 and 255.0</string>
+   </map>
+   <key>GCNP_RADIUS</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>GCNP_STATIC</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>GRAVITY_MULTIPLIER</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>8</integer>
+    <key>tooltip</key>
+    <string>Used with llSetPhysicsMaterial to enable the gravity multiplier value. Must be between -1.0 and +28.0</string>
+   </map>
+   <key>HORIZONTAL</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>HTTP_BODY_MAXLENGTH</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>2</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>HTTP_BODY_TRUNCATED</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>HTTP_CUSTOM_HEADER</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>5</integer>
+    <key>tooltip</key>
+    <string>Add an extra custom HTTP header to the request. The first string is the name of the parameter to change, e.g. "Pragma", and the second string is the value, e.g. "no-cache". Up to 8 custom headers may be configured per request. Note that certain headers, such as the default headers, are blocked for security reasons.</string>
+   </map>
+   <key>HTTP_METHOD</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>HTTP_MIMETYPE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>HTTP_PRAGMA_NO_CACHE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>6</integer>
+    <key>tooltip</key>
+    <string>Allows enabling/disbling of the "Pragma: no-cache" header.\nUsage: [HTTP_PRAGMA_NO_CACHE, integer SendHeader]. When SendHeader is TRUE, the "Pragma: no-cache" header is sent by the script. This matches the default behavior. When SendHeader is FALSE, no "Pragma" header is sent by the script.</string>
+   </map>
+   <key>HTTP_VERBOSE_THROTTLE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>4</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>HTTP_VERIFY_CERT</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>3</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>INVENTORY_ALL</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>-1</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>INVENTORY_ANIMATION</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>20</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>INVENTORY_BODYPART</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>13</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>INVENTORY_CLOTHING</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>5</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>INVENTORY_GESTURE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>21</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>INVENTORY_LANDMARK</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>3</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>INVENTORY_NONE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>-1</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>INVENTORY_NOTECARD</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>7</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>INVENTORY_OBJECT</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>6</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>INVENTORY_SCRIPT</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>10</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>INVENTORY_SOUND</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>INVENTORY_TEXTURE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>JSON_APPEND</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>-1</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>JSON_ARRAY</key>
+   <map>
+    <key>type</key>
+    <string>string</string>
+    <key>value</key>
+    <string>U+FDD2</string>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>JSON_DELETE</key>
+   <map>
+    <key>type</key>
+    <string>string</string>
+    <key>value</key>
+    <string>U+FDD8</string>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>JSON_FALSE</key>
+   <map>
+    <key>type</key>
+    <string>string</string>
+    <key>value</key>
+    <string>U+FDD7</string>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>JSON_INVALID</key>
+   <map>
+    <key>type</key>
+    <string>string</string>
+    <key>value</key>
+    <string>U+FDD0</string>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>JSON_NULL</key>
+   <map>
+    <key>type</key>
+    <string>string</string>
+    <key>value</key>
+    <string>U+FDD5</string>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>JSON_NUMBER</key>
+   <map>
+    <key>type</key>
+    <string>string</string>
+    <key>value</key>
+    <string>U+FDD3</string>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>JSON_OBJECT</key>
+   <map>
+    <key>type</key>
+    <string>string</string>
+    <key>value</key>
+    <string>U+FDD1</string>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>JSON_STRING</key>
+   <map>
+    <key>type</key>
+    <string>string</string>
+    <key>value</key>
+    <string>U+FDD4</string>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>JSON_TRUE</key>
+   <map>
+    <key>type</key>
+    <string>string</string>
+    <key>value</key>
+    <string>U+FDD6</string>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>KFM_CMD_PAUSE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>2</integer>
+    <key>tooltip</key>
+    <string>For use with KFM_COMMAND.</string>
+   </map>
+   <key>KFM_CMD_PLAY</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0</integer>
+    <key>tooltip</key>
+    <string>For use with KFM_COMMAND.</string>
+   </map>
+   <key>KFM_CMD_SET_MODE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>3</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>KFM_CMD_STOP</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1</integer>
+    <key>tooltip</key>
+    <string>For use with KFM_COMMAND.</string>
+   </map>
+   <key>KFM_COMMAND</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>KFM_DATA</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>2</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>KFM_FORWARD</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0</integer>
+    <key>tooltip</key>
+    <string>For use with KFM_MODE.</string>
+   </map>
+   <key>KFM_LOOP</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1</integer>
+    <key>tooltip</key>
+    <string>For use with KFM_MODE.</string>
+   </map>
+   <key>KFM_MODE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>KFM_PING_PONG</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>2</integer>
+    <key>tooltip</key>
+    <string>For use with KFM_MODE.</string>
+   </map>
+   <key>KFM_REVERSE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>2</integer>
+    <key>tooltip</key>
+    <string>For use with KFM_MODE.</string>
+   </map>
+   <key>KFM_ROTATION</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1</integer>
+    <key>tooltip</key>
+    <string>For use with KFM_DATA.</string>
+   </map>
+   <key>KFM_TRANSLATION</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>2</integer>
+    <key>tooltip</key>
+    <string>For use with KFM_DATA.</string>
+   </map>
+   <key>LAND_LARGE_BRUSH</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>3</integer>
+    <key>tooltip</key>
+    <string>Use a large brush size.\nNOTE: This value is incorrect, a large brush should be 2.</string>
+   </map>
+   <key>LAND_LEVEL</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0</integer>
+    <key>tooltip</key>
+    <string>Action to level the land.</string>
+   </map>
+   <key>LAND_LOWER</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>2</integer>
+    <key>tooltip</key>
+    <string>Action to lower the land.</string>
+   </map>
+   <key>LAND_MEDIUM_BRUSH</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>2</integer>
+    <key>tooltip</key>
+    <string>Use a medium brush size.\nNOTE: This value is incorrect, a medium brush should be 1.</string>
+   </map>
+   <key>LAND_NOISE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>4</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>LAND_RAISE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1</integer>
+    <key>tooltip</key>
+    <string>Action to raise the land.</string>
+   </map>
+   <key>LAND_REVERT</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>5</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>LAND_SMALL_BRUSH</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1</integer>
+    <key>tooltip</key>
+    <string>Use a small brush size.\nNOTE: This value is incorrect, a small brush should be 0.</string>
+   </map>
+   <key>LAND_SMOOTH</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>3</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>LINK_ALL_CHILDREN</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>-3</integer>
+    <key>tooltip</key>
+    <string>This targets every object except the root in the linked set.</string>
+   </map>
+   <key>LINK_ALL_OTHERS</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>-2</integer>
+    <key>tooltip</key>
+    <string>This targets every object in the linked set except the object with the script.</string>
+   </map>
+   <key>LINK_ROOT</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0</integer>
+    <key>tooltip</key>
+    <string>This targets the root of the linked set.</string>
+   </map>
+   <key>LINK_SET</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>-1</integer>
+    <key>tooltip</key>
+    <string>This targets every object in the linked set.</string>
+   </map>
+   <key>LINK_THIS</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>-4</integer>
+    <key>tooltip</key>
+    <string>The link number of the prim containing the script.</string>
+   </map>
+   <key>LIST_STAT_GEOMETRIC_MEAN</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>9</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>LIST_STAT_MAX</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>2</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>LIST_STAT_MEAN</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>3</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>LIST_STAT_MEDIAN</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>4</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>LIST_STAT_MIN</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>LIST_STAT_NUM_COUNT</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>8</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>LIST_STAT_RANGE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>LIST_STAT_STD_DEV</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>5</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>LIST_STAT_SUM</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>6</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>LIST_STAT_SUM_SQUARES</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>7</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>LOOP</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x2</integer>
+    <key>tooltip</key>
+    <string>Loop the texture animation.</string>
+   </map>
+   <key>MASK_BASE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>MASK_EVERYONE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>3</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>MASK_GROUP</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>2</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>MASK_NEXT</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>4</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>MASK_OWNER</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>NULL_KEY</key>
+   <map>
+    <key>type</key>
+    <string>key</string>
+    <key>value</key>
+    <uuid>00000000-0000-0000-0000-000000000000</uuid>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>OBJECT_ATTACHED_POINT</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>19</integer>
+    <key>tooltip</key>
+    <string>Gets the attachment point to which the object is attached.\nReturns 0 if the object is not an attachment (or is an avatar, etc).</string>
+   </map>
+   <key>OBJECT_CHARACTER_TIME</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>17</integer>
+    <key>tooltip</key>
+    <string>Units in seconds</string>
+   </map>
+   <key>OBJECT_CREATOR</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>8</integer>
+    <key>tooltip</key>
+    <string>Gets the object's creator key. If id is an avatar, a NULL_KEY is returned.</string>
+   </map>
+   <key>OBJECT_DESC</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>2</integer>
+    <key>tooltip</key>
+    <string>Gets the object's description. If id is an avatar, an empty string is returned.</string>
+   </map>
+   <key>OBJECT_GROUP</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>7</integer>
+    <key>tooltip</key>
+    <string>Gets the prims's group key. If id is an avatar, a NULL_KEY is returned.</string>
+   </map>
+   <key>OBJECT_NAME</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1</integer>
+    <key>tooltip</key>
+    <string>Gets the object's name.</string>
+   </map>
+   <key>OBJECT_OWNER</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>6</integer>
+    <key>tooltip</key>
+    <string>Gets an object's owner's key. If id is group owned, a NULL_KEY is returned.</string>
+   </map>
+   <key>OBJECT_PATHFINDING_TYPE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>20</integer>
+    <key>tooltip</key>
+    <string>Returns the pathfinding setting of any object in the region. It returns an integer matching one of the OPT_* constants.</string>
+   </map>
+   <key>OBJECT_PHANTOM</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>22</integer>
+    <key>tooltip</key>
+    <string>Returns boolean, detailing if phantom is enabled or disabled on the object.\nIf id is an avatar or attachment, 0 is returned.</string>
+   </map>
+   <key>OBJECT_PHYSICS</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>21</integer>
+    <key>tooltip</key>
+    <string>Returns boolean, detailing if physics is enabled or disabled on the object.\nIf id is an avatar or attachment, 0 is returned.</string>
+   </map>
+   <key>OBJECT_PHYSICS_COST</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>16</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>OBJECT_POS</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>3</integer>
+    <key>tooltip</key>
+    <string>Gets the object's position in region coordinates.</string>
+   </map>
+   <key>OBJECT_PRIM_EQUIVALENCE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>13</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>OBJECT_RENDER_WEIGHT</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>24</integer>
+    <key>tooltip</key>
+    <string>This is a flag used with llGetObjectDetails to get the Avatar_Rendering_Cost of an avatar, based on values reported by nearby viewers.\nIf no data is available, -1 is returned.\nThe maximum render weight stored by the simulator is 500000. When called against an object, 0 is returned.</string>
+   </map>
+   <key>OBJECT_RETURN_PARCEL</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>OBJECT_RETURN_PARCEL_OWNER</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>2</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>OBJECT_RETURN_REGION</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>4</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>OBJECT_ROOT</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>18</integer>
+    <key>tooltip</key>
+    <string>Gets the id of the root prim of the object requested.\nIf id is an avatar, return the id of the root prim of the linkset the avatar is sitting on (or the avatar's own id if the avatar is not sitting on an object within the region).</string>
+   </map>
+   <key>OBJECT_ROT</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>4</integer>
+    <key>tooltip</key>
+    <string>Gets the object's rotation.</string>
+   </map>
+   <key>OBJECT_RUNNING_SCRIPT_COUNT</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>9</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>OBJECT_SCRIPT_MEMORY</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>11</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>OBJECT_SCRIPT_TIME</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>12</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>OBJECT_SERVER_COST</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>14</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>OBJECT_STREAMING_COST</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>15</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>OBJECT_TEMP_ON_REZ</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>23</integer>
+    <key>tooltip</key>
+    <string>Returns boolean, detailing if temporary is enabled or disabled on the object.</string>
+   </map>
+   <key>OBJECT_TOTAL_SCRIPT_COUNT</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>10</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>OBJECT_UNKNOWN_DETAIL</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>-1</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>OBJECT_VELOCITY</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>5</integer>
+    <key>tooltip</key>
+    <string>Gets the object's velocity.</string>
+   </map>
+   <key>OPT_AVATAR</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1</integer>
+    <key>tooltip</key>
+    <string>Returned for avatars.</string>
+   </map>
+   <key>OPT_CHARACTER</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>2</integer>
+    <key>tooltip</key>
+    <string>Returned for pathfinding characters.</string>
+   </map>
+   <key>OPT_EXCLUSION_VOLUME</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>6</integer>
+    <key>tooltip</key>
+    <string>Returned for exclusion volumes.</string>
+   </map>
+   <key>OPT_LEGACY_LINKSET</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0</integer>
+    <key>tooltip</key>
+    <string>Returned for movable obstacles, movable phantoms, physical, and volumedetect objects.</string>
+   </map>
+   <key>OPT_MATERIAL_VOLUME</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>5</integer>
+    <key>tooltip</key>
+    <string>Returned for material volumes.</string>
+   </map>
+   <key>OPT_OTHER</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>-1</integer>
+    <key>tooltip</key>
+    <string>Returned for attachments, Linden trees, and grass.</string>
+   </map>
+   <key>OPT_STATIC_OBSTACLE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>4</integer>
+    <key>tooltip</key>
+    <string>Returned for static obstacles.</string>
+   </map>
+   <key>OPT_WALKABLE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>3</integer>
+    <key>tooltip</key>
+    <string>Returned for walkable objects.</string>
+   </map>
+   <key>PARCEL_COUNT_GROUP</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>2</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PARCEL_COUNT_OTHER</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>3</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PARCEL_COUNT_OWNER</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PARCEL_COUNT_SELECTED</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>4</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PARCEL_COUNT_TEMP</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>5</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PARCEL_COUNT_TOTAL</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PARCEL_DETAILS_AREA</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>4</integer>
+    <key>tooltip</key>
+    <string>The parcel's area, in square meters. (5 chars.).</string>
+   </map>
+   <key>PARCEL_DETAILS_DESC</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1</integer>
+    <key>tooltip</key>
+    <string>The description of the parcel. (127 chars).</string>
+   </map>
+   <key>PARCEL_DETAILS_GROUP</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>3</integer>
+    <key>tooltip</key>
+    <string>The parcel group's key. (36 chars.).</string>
+   </map>
+   <key>PARCEL_DETAILS_ID</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>5</integer>
+    <key>tooltip</key>
+    <string>The parcel's key. (36 chars.).</string>
+   </map>
+   <key>PARCEL_DETAILS_NAME</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0</integer>
+    <key>tooltip</key>
+    <string>The name of the parcel. (63 chars.).</string>
+   </map>
+   <key>PARCEL_DETAILS_OWNER</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>2</integer>
+    <key>tooltip</key>
+    <string>The parcel owner's key. (36 chars.).</string>
+   </map>
+   <key>PARCEL_DETAILS_SEE_AVATARS</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>6</integer>
+    <key>tooltip</key>
+    <string>The parcel's avatar visibility setting. (1 char.).</string>
+   </map>
+   <key>PARCEL_FLAG_ALLOW_ALL_OBJECT_ENTRY</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x08000000</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PARCEL_FLAG_ALLOW_CREATE_GROUP_OBJECTS</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x4000000</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PARCEL_FLAG_ALLOW_CREATE_OBJECTS</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x40</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PARCEL_FLAG_ALLOW_DAMAGE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x20</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PARCEL_FLAG_ALLOW_FLY</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x1</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PARCEL_FLAG_ALLOW_GROUP_OBJECT_ENTRY</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x10000000</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PARCEL_FLAG_ALLOW_GROUP_SCRIPTS</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x2000000</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PARCEL_FLAG_ALLOW_LANDMARK</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x8</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PARCEL_FLAG_ALLOW_SCRIPTS</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x2</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PARCEL_FLAG_ALLOW_TERRAFORM</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x10</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PARCEL_FLAG_LOCAL_SOUND_ONLY</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x8000</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PARCEL_FLAG_RESTRICT_PUSHOBJECT</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x200000</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PARCEL_FLAG_USE_ACCESS_GROUP</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x100</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PARCEL_FLAG_USE_ACCESS_LIST</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x200</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PARCEL_FLAG_USE_BAN_LIST</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x400</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PARCEL_FLAG_USE_LAND_PASS_LIST</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x800</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PARCEL_MEDIA_COMMAND_AGENT</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>7</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PARCEL_MEDIA_COMMAND_AUTO_ALIGN</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>9</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PARCEL_MEDIA_COMMAND_DESC</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>12</integer>
+    <key>tooltip</key>
+    <string>Use this to get or set the parcel media description.</string>
+   </map>
+   <key>PARCEL_MEDIA_COMMAND_LOOP</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>3</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PARCEL_MEDIA_COMMAND_LOOP_SET</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>13</integer>
+    <key>tooltip</key>
+    <string>Used to get or set the parcel's media looping variable.</string>
+   </map>
+   <key>PARCEL_MEDIA_COMMAND_PAUSE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PARCEL_MEDIA_COMMAND_PLAY</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>2</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PARCEL_MEDIA_COMMAND_SIZE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>11</integer>
+    <key>tooltip</key>
+    <string>Use this to get or set the parcel media pixel resolution.</string>
+   </map>
+   <key>PARCEL_MEDIA_COMMAND_STOP</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PARCEL_MEDIA_COMMAND_TEXTURE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>4</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PARCEL_MEDIA_COMMAND_TIME</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>6</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PARCEL_MEDIA_COMMAND_TYPE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>10</integer>
+    <key>tooltip</key>
+    <string>Use this to get or set the parcel media MIME type (e.g. "text/html").</string>
+   </map>
+   <key>PARCEL_MEDIA_COMMAND_UNLOAD</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>8</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PARCEL_MEDIA_COMMAND_URL</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>5</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PASSIVE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x4</integer>
+    <key>tooltip</key>
+    <string>Static in-world objects.</string>
+   </map>
+   <key>PATROL_PAUSE_AT_WAYPOINTS</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PAY_DEFAULT</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>-2</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PAY_HIDE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>-1</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PAYMENT_INFO_ON_FILE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PAYMENT_INFO_USED</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>2</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PERM_ALL</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x7FFFFFFF</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PERM_COPY</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x8000</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PERM_MODIFY</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x4000</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PERM_MOVE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x80000</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PERM_TRANSFER</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x2000</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PERMISSION_ATTACH</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x20</integer>
+    <key>tooltip</key>
+    <string>If this permission is enabled, the object can successfully call llAttachToAvatar to attach to the given avatar.</string>
+   </map>
+   <key>PERMISSION_CHANGE_JOINTS</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x100</integer>
+    <key>tooltip</key>
+    <string>(not yet implemented)</string>
+   </map>
+   <key>PERMISSION_CHANGE_LINKS</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x80</integer>
+    <key>tooltip</key>
+    <string>If this permission is enabled, the object can successfully call llCreateLink, llBreakLink, and llBreakAllLinks to change links to other objects.</string>
+   </map>
+   <key>PERMISSION_CHANGE_PERMISSIONS</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x200</integer>
+    <key>tooltip</key>
+    <string>(not yet implemented)</string>
+   </map>
+   <key>PERMISSION_CONTROL_CAMERA</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x800</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PERMISSION_DEBIT</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x2</integer>
+    <key>tooltip</key>
+    <string>If this permission is enabled, the object can successfully call llGiveMoney or llTransferLindenDollars to debit the owners account.</string>
+   </map>
+   <key>PERMISSION_OVERRIDE_ANIMATIONS</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x8000</integer>
+    <key>tooltip</key>
+    <string>Permission to override default animations.</string>
+   </map>
+   <key>PERMISSION_RELEASE_OWNERSHIP</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x40</integer>
+    <key>tooltip</key>
+    <string>(not yet implemented)</string>
+   </map>
+   <key>PERMISSION_REMAP_CONTROLS</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x8</integer>
+    <key>tooltip</key>
+    <string>(not yet implemented)</string>
+   </map>
+   <key>PERMISSION_RETURN_OBJECTS</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>65536</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PERMISSION_SILENT_ESTATE_MANAGEMENT</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x4000</integer>
+    <key>tooltip</key>
+    <string>A script with this permission does not notify the object owner when it modifies estate access rules via llManageEstateAccess.</string>
+   </map>
+   <key>PERMISSION_TAKE_CONTROLS</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x4</integer>
+    <key>tooltip</key>
+    <string>If this permission enabled, the object can successfully call the llTakeControls libray call.</string>
+   </map>
+   <key>PERMISSION_TELEPORT</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x1000</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PERMISSION_TRACK_CAMERA</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x400</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PERMISSION_TRIGGER_ANIMATION</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x10</integer>
+    <key>tooltip</key>
+    <string>If this permission is enabled, the object can successfully call llStartAnimation for the avatar that owns this.</string>
+   </map>
+   <key>PI</key>
+   <map>
+    <key>type</key>
+    <string>float</string>
+    <key>value</key>
+    <real>3.14159265</real>
+    <key>tooltip</key>
+    <string>3.14159265 - The number of radians in a semi-circle.</string>
+   </map>
+   <key>PI_BY_TWO</key>
+   <map>
+    <key>type</key>
+    <string>float</string>
+    <key>value</key>
+    <real>1.57079633</real>
+    <key>tooltip</key>
+    <string>1.57079633 - The number of radians in a quarter circle.</string>
+   </map>
+   <key>PING_PONG</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x8</integer>
+    <key>tooltip</key>
+    <string>Play animation going forwards, then backwards.</string>
+   </map>
+   <key>PRIM_BUMP_BARK</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>4</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_BUMP_BLOBS</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>12</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_BUMP_BRICKS</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>5</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_BUMP_BRIGHT</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_BUMP_CHECKER</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>6</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_BUMP_CONCRETE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>7</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_BUMP_DARK</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>2</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_BUMP_DISKS</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>10</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_BUMP_GRAVEL</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>11</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_BUMP_LARGETILE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>14</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_BUMP_NONE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_BUMP_SHINY</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>19</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_BUMP_SIDING</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>13</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_BUMP_STONE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>9</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_BUMP_STUCCO</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>15</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_BUMP_SUCTION</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>16</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_BUMP_TILE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>8</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_BUMP_WEAVE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>17</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_BUMP_WOOD</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>3</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_CAST_SHADOWS</key>
+   <map>
+    <key>deprecated</key>
+    <boolean>true</boolean>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>24</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_COLOR</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>18</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_DESC</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>28</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_FLEXIBLE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>21</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_FULLBRIGHT</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>20</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_GLOW</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>25</integer>
+    <key>tooltip</key>
+    <string>PRIM_GLOW is used to get or set the glow status of the face.</string>
+   </map>
+   <key>PRIM_HOLE_CIRCLE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x10</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_HOLE_DEFAULT</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x00</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_HOLE_SQUARE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x20</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_HOLE_TRIANGLE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x30</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_LINK_TARGET</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>34</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_MATERIAL</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>2</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_MATERIAL_FLESH</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>4</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_MATERIAL_GLASS</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>2</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_MATERIAL_LIGHT</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>7</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_MATERIAL_METAL</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_MATERIAL_PLASTIC</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>5</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_MATERIAL_RUBBER</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>6</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_MATERIAL_STONE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_MATERIAL_WOOD</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>3</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_MEDIA_ALT_IMAGE_ENABLE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0</integer>
+    <key>tooltip</key>
+    <string>Boolean. Gets/Sets the default image state (the image that the user sees before a piece of media is active) for the chosen face. The default image is specified by Second Life's server for that media type.</string>
+   </map>
+   <key>PRIM_MEDIA_AUTO_LOOP</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>4</integer>
+    <key>tooltip</key>
+    <string>Boolean. Gets/Sets whether auto-looping is enabled.</string>
+   </map>
+   <key>PRIM_MEDIA_AUTO_PLAY</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>5</integer>
+    <key>tooltip</key>
+    <string>Boolean. Gets/Sets whether the media auto-plays when a Resident can view it.</string>
+   </map>
+   <key>PRIM_MEDIA_AUTO_SCALE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>6</integer>
+    <key>tooltip</key>
+    <string>Boolean. Gets/Sets whether auto-scaling is enabled. Auto-scaling forces the media to the full size of the texture.</string>
+   </map>
+   <key>PRIM_MEDIA_AUTO_ZOOM</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>7</integer>
+    <key>tooltip</key>
+    <string>Boolean. Gets/Sets whether clicking the media triggers auto-zoom and auto-focus on the media.</string>
+   </map>
+   <key>PRIM_MEDIA_CONTROLS</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1</integer>
+    <key>tooltip</key>
+    <string>Integer. Gets/Sets the style of controls. Can be either PRIM_MEDIA_CONTROLS_STANDARD or PRIM_MEDIA_CONTROLS_MINI.</string>
+   </map>
+   <key>PRIM_MEDIA_CONTROLS_MINI</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1</integer>
+    <key>tooltip</key>
+    <string>Mini web navigation controls; does not include an address bar.</string>
+   </map>
+   <key>PRIM_MEDIA_CONTROLS_STANDARD</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0</integer>
+    <key>tooltip</key>
+    <string>Standard web navigation controls.</string>
+   </map>
+   <key>PRIM_MEDIA_CURRENT_URL</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>2</integer>
+    <key>tooltip</key>
+    <string>String. Gets/Sets the current url displayed on the chosen face. Changing this URL causes navigation. 1024 characters Maximum.</string>
+   </map>
+   <key>PRIM_MEDIA_FIRST_CLICK_INTERACT</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>8</integer>
+    <key>tooltip</key>
+    <string>Boolean. Gets/Sets whether the first click interaction is enabled.</string>
+   </map>
+   <key>PRIM_MEDIA_HEIGHT_PIXELS</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>10</integer>
+    <key>tooltip</key>
+    <string>Integer. Gets/Sets the height of the media in pixels.</string>
+   </map>
+   <key>PRIM_MEDIA_HOME_URL</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>3</integer>
+    <key>tooltip</key>
+    <string>String. Gets/Sets the home URL for the chosen face. 1024 characters maximum.</string>
+   </map>
+   <key>PRIM_MEDIA_MAX_HEIGHT_PIXELS</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>2048</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_MEDIA_MAX_URL_LENGTH</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1024</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_MEDIA_MAX_WHITELIST_COUNT</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>64</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_MEDIA_MAX_WHITELIST_SIZE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1024</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_MEDIA_MAX_WIDTH_PIXELS</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>2048</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_MEDIA_PARAM_MAX</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>14</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_MEDIA_PERM_ANYONE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>4</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_MEDIA_PERM_GROUP</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>2</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_MEDIA_PERM_NONE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_MEDIA_PERM_OWNER</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_MEDIA_PERMS_CONTROL</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>14</integer>
+    <key>tooltip</key>
+    <string>Integer. Gets/Sets the permissions mask that control who can see the media control bar above the object:: PRIM_MEDIA_PERM_ANYONE, PRIM_MEDIA_PERM_GROUP, PRIM_MEDIA_PERM_NONE, PRIM_MEDIA_PERM_OWNER</string>
+   </map>
+   <key>PRIM_MEDIA_PERMS_INTERACT</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>13</integer>
+    <key>tooltip</key>
+    <string>Integer. Gets/Sets the permissions mask that control who can interact with the object: PRIM_MEDIA_PERM_ANYONE, PRIM_MEDIA_PERM_GROUP, PRIM_MEDIA_PERM_NONE, PRIM_MEDIA_PERM_OWNER</string>
+   </map>
+   <key>PRIM_MEDIA_WHITELIST</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>12</integer>
+    <key>tooltip</key>
+    <string>String. Gets/Sets the white-list as a string of escaped, comma-separated URLs. This string can hold up to 64 URLs or 1024 characters, whichever comes first.</string>
+   </map>
+   <key>PRIM_MEDIA_WHITELIST_ENABLE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>11</integer>
+    <key>tooltip</key>
+    <string>Boolean. Gets/Sets whether navigation is restricted to URLs in PRIM_MEDIA_WHITELIST.</string>
+   </map>
+   <key>PRIM_MEDIA_WIDTH_PIXELS</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>9</integer>
+    <key>tooltip</key>
+    <string>Integer. Gets/Sets the width of the media in pixels.</string>
+   </map>
+   <key>PRIM_NAME</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>27</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_OMEGA</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>32</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_PHANTOM</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>5</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_PHYSICS</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>3</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_PHYSICS_SHAPE_CONVEX</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>2</integer>
+    <key>tooltip</key>
+    <string>Use the convex hull of the prim shape for physics (this is the default for mesh objects).</string>
+   </map>
+   <key>PRIM_PHYSICS_SHAPE_NONE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1</integer>
+    <key>tooltip</key>
+    <string>Ignore this prim in the physics shape. NB: This cannot be applied to the root prim.</string>
+   </map>
+   <key>PRIM_PHYSICS_SHAPE_PRIM</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0</integer>
+    <key>tooltip</key>
+    <string>Use the normal prim shape for physics (this is the default for all non-mesh objects).</string>
+   </map>
+   <key>PRIM_PHYSICS_SHAPE_TYPE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>30</integer>
+    <key>tooltip</key>
+    <string>Allows you to set the physics shape type of a prim via lsl. Permitted values are:
 			PRIM_PHYSICS_SHAPE_NONE, PRIM_PHYSICS_SHAPE_PRIM, PRIM_PHYSICS_SHAPE_CONVEX</string>
-			</map>
-			<key>PRIM_POINT_LIGHT</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>23</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_POS_LOCAL</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>33</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_POSITION</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>6</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_ROT_LOCAL</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>29</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_ROTATION</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>8</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_SCULPT_FLAG_INVERT</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>64</integer>
-				<key>tooltip</key>
-				<string>Render inside out (inverts the normals).</string>
-			</map>
-			<key>PRIM_SCULPT_FLAG_MIRROR</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>128</integer>
-				<key>tooltip</key>
-				<string>Render an X axis mirror of the sculpty.</string>
-			</map>
-			<key>PRIM_SCULPT_TYPE_CYLINDER</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>4</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_SCULPT_TYPE_MASK</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>7</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_SCULPT_TYPE_PLANE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>3</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_SCULPT_TYPE_SPHERE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>1</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_SCULPT_TYPE_TORUS</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>2</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_SHINY_HIGH</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>3</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_SHINY_LOW</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>1</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_SHINY_MEDIUM</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>2</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_SHINY_NONE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_SIZE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>7</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_SLICE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>35</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_TEMP_ON_REZ</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>4</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_TEXGEN</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>22</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_TEXGEN_DEFAULT</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_TEXGEN_PLANAR</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>1</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_TEXT</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>26</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_TEXTURE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>17</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_TYPE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>9</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_TYPE_BOX</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_TYPE_CYLINDER</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>1</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_TYPE_PRISM</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>2</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_TYPE_RING</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>6</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_TYPE_SCULPT</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>7</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_TYPE_SPHERE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>3</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_TYPE_TORUS</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>4</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PRIM_TYPE_TUBE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>5</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PROFILE_NONE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0</integer>
-				<key>tooltip</key>
-				<string>Disables profiling</string>
-			</map>
-			<key>PROFILE_SCRIPT_MEMORY</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>1</integer>
-				<key>tooltip</key>
-				<string>Enables memory profiling</string>
-			</map>
-			<key>PSYS_PART_BOUNCE_MASK</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x4</integer>
-				<key>tooltip</key>
-				<string>Particles bounce off of a plane at the objects Z height.</string>
-			</map>
-			<key>PSYS_PART_EMISSIVE_MASK</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x100</integer>
-				<key>tooltip</key>
-				<string>The particle glows.</string>
-			</map>
-			<key>PSYS_PART_END_ALPHA</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>4</integer>
-				<key>tooltip</key>
-				<string>A float which determines the ending alpha of the object.</string>
-			</map>
-			<key>PSYS_PART_END_COLOR</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>3</integer>
-				<key>tooltip</key>
-				<string>A vector &lt;r, g, b&gt; which determines the ending colour of the object.</string>
-			</map>
-			<key>PSYS_PART_END_SCALE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>6</integer>
-				<key>tooltip</key>
-				<string>A vector &lt;sx, sy, z&gt;, which is the ending size of the particle billboard in meters (z is ignored).</string>
-			</map>
-			<key>PSYS_PART_FLAGS</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0</integer>
-				<key>tooltip</key>
-				<string>Each particle that is emitted by the particle system is simulated based on the following flags. To use multiple flags, bitwise or (|) them together.</string>
-			</map>
-			<key>PSYS_PART_FOLLOW_SRC_MASK</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x10</integer>
-				<key>tooltip</key>
-				<string>The particle position is relative to the source objects position.</string>
-			</map>
-			<key>PSYS_PART_FOLLOW_VELOCITY_MASK</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x20</integer>
-				<key>tooltip</key>
-				<string>The particle orientation is rotated so the vertical axis faces towards the particle velocity.</string>
-			</map>
-			<key>PSYS_PART_INTERP_COLOR_MASK</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x1</integer>
-				<key>tooltip</key>
-				<string>Interpolate both the colour and alpha from the start value to the end value.</string>
-			</map>
-			<key>PSYS_PART_INTERP_SCALE_MASK</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x2</integer>
-				<key>tooltip</key>
-				<string>Interpolate the particle scale from the start value to the end value.</string>
-			</map>
-			<key>PSYS_PART_MAX_AGE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>19</integer>
-				<key>tooltip</key>
-				<string>Age in seconds of a particle at which it dies.</string>
-			</map>
-			<key>PSYS_PART_START_ALPHA</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>2</integer>
-				<key>tooltip</key>
-				<string>A float which determines the starting alpha of the object.</string>
-			</map>
-			<key>PSYS_PART_START_COLOR</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>1</integer>
-				<key>tooltip</key>
-				<string>A vector &lt;r.r, g.g, b.b&gt; which determines the starting colour of the object.</string>
-			</map>
-			<key>PSYS_PART_START_SCALE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>5</integer>
-				<key>tooltip</key>
-				<string>A vector &lt;sx, sy, z&gt;, which is the starting size of the particle billboard in meters (z is ignored).</string>
-			</map>
-			<key>PSYS_PART_TARGET_LINEAR_MASK</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x80</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PSYS_PART_TARGET_POS_MASK</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x40</integer>
-				<key>tooltip</key>
-				<string>The particle heads towards the location of the target object as defined by PSYS_SRC_TARGET_KEY.</string>
-			</map>
-			<key>PSYS_PART_WIND_MASK</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x8</integer>
-				<key>tooltip</key>
-				<string>Particles have their velocity damped towards the wind velocity.</string>
-			</map>
-			<key>PSYS_SRC_ACCEL</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>8</integer>
-				<key>tooltip</key>
-				<string>A vector &lt;x, y, z&gt; which is the acceleration to apply on particles.</string>
-			</map>
-			<key>PSYS_SRC_ANGLE_BEGIN</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>22</integer>
-				<key>tooltip</key>
-				<string>Area in radians specifying where particles will NOT be created (for ANGLE patterns)</string>
-			</map>
-			<key>PSYS_SRC_ANGLE_END</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>23</integer>
-				<key>tooltip</key>
-				<string>Area in radians filled with particles (for ANGLE patterns) (if lower than PSYS_SRC_ANGLE_BEGIN, acts as PSYS_SRC_ANGLE_BEGIN itself, and PSYS_SRC_ANGLE_BEGIN acts as PSYS_SRC_ANGLE_END).</string>
-			</map>
-			<key>PSYS_SRC_BURST_PART_COUNT</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>15</integer>
-				<key>tooltip</key>
-				<string>How many particles to release in a burst.</string>
-			</map>
-			<key>PSYS_SRC_BURST_RADIUS</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>16</integer>
-				<key>tooltip</key>
-				<string>What distance from the center of the object to create the particles.</string>
-			</map>
-			<key>PSYS_SRC_BURST_RATE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>13</integer>
-				<key>tooltip</key>
-				<string>How often to release a particle burst (float seconds).</string>
-			</map>
-			<key>PSYS_SRC_BURST_SPEED_MAX</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>18</integer>
-				<key>tooltip</key>
-				<string>Maximum speed that a particle should be moving.</string>
-			</map>
-			<key>PSYS_SRC_BURST_SPEED_MIN</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>17</integer>
-				<key>tooltip</key>
-				<string>Minimum speed that a particle should be moving.</string>
-			</map>
-			<key>PSYS_SRC_INNERANGLE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>10</integer>
-				<key>tooltip</key>
-				<string>Specifies the inner angle of the arc created by the PSYS_SRC_PATTERN_ANGLE or PSYS_SRC_PATTERN_ANGLE_CONE source pattern.
+   </map>
+   <key>PRIM_POINT_LIGHT</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>23</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_POS_LOCAL</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>33</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_POSITION</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>6</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_ROT_LOCAL</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>29</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_ROTATION</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>8</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_SCULPT_FLAG_INVERT</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>64</integer>
+    <key>tooltip</key>
+    <string>Render inside out (inverts the normals).</string>
+   </map>
+   <key>PRIM_SCULPT_FLAG_MIRROR</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>128</integer>
+    <key>tooltip</key>
+    <string>Render an X axis mirror of the sculpty.</string>
+   </map>
+   <key>PRIM_SCULPT_TYPE_CYLINDER</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>4</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_SCULPT_TYPE_MASK</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>7</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_SCULPT_TYPE_PLANE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>3</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_SCULPT_TYPE_SPHERE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_SCULPT_TYPE_TORUS</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>2</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_SHINY_HIGH</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>3</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_SHINY_LOW</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_SHINY_MEDIUM</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>2</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_SHINY_NONE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_SIZE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>7</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_SLICE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>35</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_TEMP_ON_REZ</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>4</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_TEXGEN</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>22</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_TEXGEN_DEFAULT</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_TEXGEN_PLANAR</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_TEXT</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>26</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_TEXTURE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>17</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_TYPE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>9</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_TYPE_BOX</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_TYPE_CYLINDER</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_TYPE_PRISM</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>2</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_TYPE_RING</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>6</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_TYPE_SCULPT</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>7</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_TYPE_SPHERE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>3</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_TYPE_TORUS</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>4</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PRIM_TYPE_TUBE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>5</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PROFILE_NONE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0</integer>
+    <key>tooltip</key>
+    <string>Disables profiling</string>
+   </map>
+   <key>PROFILE_SCRIPT_MEMORY</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1</integer>
+    <key>tooltip</key>
+    <string>Enables memory profiling</string>
+   </map>
+   <key>PSYS_PART_BF_DEST_COLOR</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>2</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PSYS_PART_BF_ONE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PSYS_PART_BF_ONE_MINUS_DEST_COLOR</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>4</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PSYS_PART_BF_SOURCE_ALPHA</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>7</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PSYS_PART_BF_SOURCE_COLOR</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>3</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PSYS_PART_BF_ZERO</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PSYS_PART_BLEND_FUNC_DEST</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>25</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PSYS_PART_BLEND_FUNC_SOURCE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>24</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PSYS_PART_BOUNCE_MASK</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x4</integer>
+    <key>tooltip</key>
+    <string>Particles bounce off of a plane at the objects Z height.</string>
+   </map>
+   <key>PSYS_PART_EMISSIVE_MASK</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x100</integer>
+    <key>tooltip</key>
+    <string>The particle glows.</string>
+   </map>
+   <key>PSYS_PART_END_ALPHA</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>4</integer>
+    <key>tooltip</key>
+    <string>A float which determines the ending alpha of the object.</string>
+   </map>
+   <key>PSYS_PART_END_COLOR</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>3</integer>
+    <key>tooltip</key>
+    <string>A vector &lt;r, g, b&gt; which determines the ending colour of the object.</string>
+   </map>
+   <key>PSYS_PART_END_GLOW</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>27</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PSYS_PART_END_SCALE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>6</integer>
+    <key>tooltip</key>
+    <string>A vector &lt;sx, sy, z&gt;, which is the ending size of the particle billboard in meters (z is ignored).</string>
+   </map>
+   <key>PSYS_PART_FLAGS</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0</integer>
+    <key>tooltip</key>
+    <string>Each particle that is emitted by the particle system is simulated based on the following flags. To use multiple flags, bitwise or (|) them together.</string>
+   </map>
+   <key>PSYS_PART_FOLLOW_SRC_MASK</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x10</integer>
+    <key>tooltip</key>
+    <string>The particle position is relative to the source objects position.</string>
+   </map>
+   <key>PSYS_PART_FOLLOW_VELOCITY_MASK</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x20</integer>
+    <key>tooltip</key>
+    <string>The particle orientation is rotated so the vertical axis faces towards the particle velocity.</string>
+   </map>
+   <key>PSYS_PART_INTERP_COLOR_MASK</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x1</integer>
+    <key>tooltip</key>
+    <string>Interpolate both the colour and alpha from the start value to the end value.</string>
+   </map>
+   <key>PSYS_PART_INTERP_SCALE_MASK</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x2</integer>
+    <key>tooltip</key>
+    <string>Interpolate the particle scale from the start value to the end value.</string>
+   </map>
+   <key>PSYS_PART_MAX_AGE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>19</integer>
+    <key>tooltip</key>
+    <string>Age in seconds of a particle at which it dies.</string>
+   </map>
+   <key>PSYS_PART_RIBBON_MASK</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1024</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PSYS_PART_START_ALPHA</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>2</integer>
+    <key>tooltip</key>
+    <string>A float which determines the starting alpha of the object.</string>
+   </map>
+   <key>PSYS_PART_START_COLOR</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1</integer>
+    <key>tooltip</key>
+    <string>A vector &lt;r.r, g.g, b.b&gt; which determines the starting colour of the object.</string>
+   </map>
+   <key>PSYS_PART_START_GLOW</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>26</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PSYS_PART_START_SCALE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>5</integer>
+    <key>tooltip</key>
+    <string>A vector &lt;sx, sy, z&gt;, which is the starting size of the particle billboard in meters (z is ignored).</string>
+   </map>
+   <key>PSYS_PART_TARGET_LINEAR_MASK</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x80</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PSYS_PART_TARGET_POS_MASK</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x40</integer>
+    <key>tooltip</key>
+    <string>The particle heads towards the location of the target object as defined by PSYS_SRC_TARGET_KEY.</string>
+   </map>
+   <key>PSYS_PART_WIND_MASK</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x8</integer>
+    <key>tooltip</key>
+    <string>Particles have their velocity damped towards the wind velocity.</string>
+   </map>
+   <key>PSYS_SRC_ACCEL</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>8</integer>
+    <key>tooltip</key>
+    <string>A vector &lt;x, y, z&gt; which is the acceleration to apply on particles.</string>
+   </map>
+   <key>PSYS_SRC_ANGLE_BEGIN</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>22</integer>
+    <key>tooltip</key>
+    <string>Area in radians specifying where particles will NOT be created (for ANGLE patterns)</string>
+   </map>
+   <key>PSYS_SRC_ANGLE_END</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>23</integer>
+    <key>tooltip</key>
+    <string>Area in radians filled with particles (for ANGLE patterns) (if lower than PSYS_SRC_ANGLE_BEGIN, acts as PSYS_SRC_ANGLE_BEGIN itself, and PSYS_SRC_ANGLE_BEGIN acts as PSYS_SRC_ANGLE_END).</string>
+   </map>
+   <key>PSYS_SRC_BURST_PART_COUNT</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>15</integer>
+    <key>tooltip</key>
+    <string>How many particles to release in a burst.</string>
+   </map>
+   <key>PSYS_SRC_BURST_RADIUS</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>16</integer>
+    <key>tooltip</key>
+    <string>What distance from the center of the object to create the particles.</string>
+   </map>
+   <key>PSYS_SRC_BURST_RATE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>13</integer>
+    <key>tooltip</key>
+    <string>How often to release a particle burst (float seconds).</string>
+   </map>
+   <key>PSYS_SRC_BURST_SPEED_MAX</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>18</integer>
+    <key>tooltip</key>
+    <string>Maximum speed that a particle should be moving.</string>
+   </map>
+   <key>PSYS_SRC_BURST_SPEED_MIN</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>17</integer>
+    <key>tooltip</key>
+    <string>Minimum speed that a particle should be moving.</string>
+   </map>
+   <key>PSYS_SRC_INNERANGLE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>10</integer>
+    <key>tooltip</key>
+    <string>Specifies the inner angle of the arc created by the PSYS_SRC_PATTERN_ANGLE or PSYS_SRC_PATTERN_ANGLE_CONE source pattern.
 			The area specified will NOT have particles in it.</string>
-			</map>
-			<key>PSYS_SRC_MAX_AGE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>19</integer>
-				<key>tooltip</key>
-				<string>How long this particle system should last, 0.0 means forever.</string>
-			</map>
-			<key>PSYS_SRC_OMEGA</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>21</integer>
-				<key>tooltip</key>
-				<string>Sets the angular velocity to rotate the axis that SRC_PATTERN_ANGLE and SRC_PATTERN_ANGLE_CONE use.</string>
-			</map>
-			<key>PSYS_SRC_OUTERANGLE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>11</integer>
-				<key>tooltip</key>
-				<string>Specifies the outer angle of the arc created by the PSYS_SRC_PATTERN_ANGLE or PSYS_SRC_PATTERN_ANGLE_CONE source pattern.
+   </map>
+   <key>PSYS_SRC_MAX_AGE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>19</integer>
+    <key>tooltip</key>
+    <string>How long this particle system should last, 0.0 means forever.</string>
+   </map>
+   <key>PSYS_SRC_OMEGA</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>21</integer>
+    <key>tooltip</key>
+    <string>Sets the angular velocity to rotate the axis that SRC_PATTERN_ANGLE and SRC_PATTERN_ANGLE_CONE use.</string>
+   </map>
+   <key>PSYS_SRC_OUTERANGLE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>11</integer>
+    <key>tooltip</key>
+    <string>Specifies the outer angle of the arc created by the PSYS_SRC_PATTERN_ANGLE or PSYS_SRC_PATTERN_ANGLE_CONE source pattern.
 			The area between the outer and inner angle will be filled with particles.</string>
-			</map>
-			<key>PSYS_SRC_PATTERN</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>9</integer>
-				<key>tooltip</key>
-				<string>The pattern which is used to generate particles.
+   </map>
+   <key>PSYS_SRC_PATTERN</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>9</integer>
+    <key>tooltip</key>
+    <string>The pattern which is used to generate particles.
 			Use one of the following values: PSYS_SRC_PATTERN Values.</string>
-			</map>
-			<key>PSYS_SRC_PATTERN_ANGLE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x04</integer>
-				<key>tooltip</key>
-				<string>Shoot particles across a 2 dimensional area defined by the arc created from PSYS_SRC_OUTERANGLE. There will be an open area defined by PSYS_SRC_INNERANGLE within the larger arc.</string>
-			</map>
-			<key>PSYS_SRC_PATTERN_ANGLE_CONE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x08</integer>
-				<key>tooltip</key>
-				<string>Shoot particles out in a 3 dimensional cone with an outer arc of PSYS_SRC_OUTERANGLE and an inner open area defined by PSYS_SRC_INNERANGLE.</string>
-			</map>
-			<key>PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x10</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PSYS_SRC_PATTERN_DROP</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x01</integer>
-				<key>tooltip</key>
-				<string>Drop particles at the source position.</string>
-			</map>
-			<key>PSYS_SRC_PATTERN_EXPLODE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x02</integer>
-				<key>tooltip</key>
-				<string>Shoot particles out in all directions, using the burst parameters.</string>
-			</map>
-			<key>PSYS_SRC_TARGET_KEY</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>20</integer>
-				<key>tooltip</key>
-				<string>The key of a target object to move towards if PSYS_PART_TARGET_POS_MASK is enabled.</string>
-			</map>
-			<key>PSYS_SRC_TEXTURE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>12</integer>
-				<key>tooltip</key>
-				<string>An asset name for the texture to use for the particles.</string>
-			</map>
-			<key>PU_EVADE_HIDDEN</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x07</integer>
-				<key>tooltip</key>
-				<string>Triggered when an llEvade character thinks it has hidden from its pursuer.</string>
-			</map>
-			<key>PU_EVADE_SPOTTED</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x08</integer>
-				<key>tooltip</key>
-				<string>Triggered when an llEvade character switches from hiding to running</string>
-			</map>
-			<key>PU_FAILURE_DYNAMIC_PATHFINDING_DISABLED</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>10</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PU_FAILURE_INVALID_GOAL</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x03</integer>
-				<key>tooltip</key>
-				<string>Goal is not on the navigation-mesh and cannot be reached.</string>
-			</map>
-			<key>PU_FAILURE_INVALID_START</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x02</integer>
-				<key>tooltip</key>
-				<string>Character cannot navigate from the current location - e.g., the character is off the navmesh or too high above it.</string>
-			</map>
-			<key>PU_FAILURE_NO_NAVMESH</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x09</integer>
-				<key>tooltip</key>
-				<string>This is a fatal error reported to a character when there is no navmesh for the region. This usually indicates a server failure and users should file a bug report and include the time and region in which they received this message.</string>
-			</map>
-			<key>PU_FAILURE_NO_VALID_DESTINATION</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x06</integer>
-				<key>tooltip</key>
-				<string>There is no good place for the character to go - e.g., it is patrolling and all the patrol points are now unreachable.</string>
-			</map>
-			<key>PU_FAILURE_OTHER</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>1000000</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PU_FAILURE_PARCEL_UNREACHABLE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>11</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PU_FAILURE_TARGET_GONE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x05</integer>
-				<key>tooltip</key>
-				<string>Target (for llPursue or llEvade) can no longer be tracked - e.g., it left the region or is an avatar that is now more than about 30m outside the region.</string>
-			</map>
-			<key>PU_FAILURE_UNREACHABLE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x04</integer>
-				<key>tooltip</key>
-				<string>Goal is no longer reachable for some reason - e.g., an obstacle blocks the path.</string>
-			</map>
-			<key>PU_GOAL_REACHED</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x01</integer>
-				<key>tooltip</key>
-				<string>Character has reached the goal and will stop or choose a new goal (if wandering).</string>
-			</map>
-			<key>PU_SLOWDOWN_DISTANCE_REACHED</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x00</integer>
-				<key>tooltip</key>
-				<string>Character is near current goal.</string>
-			</map>
-			<key>PUBLIC_CHANNEL</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0</integer>
-				<key>tooltip</key>
-				<string>PUBLIC_CHANNEL is an integer constant that, when passed to llSay, llWhisper, or llShout as a channel parameter, will print text to the publicly heard chat channel.</string>
-			</map>
-			<key>PURSUIT_FUZZ_FACTOR</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>3</integer>
-				<key>tooltip</key>
-				<string>Selects a random destination near the offset.</string>
-			</map>
-			<key>PURSUIT_GOAL_TOLERANCE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>5</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>PURSUIT_INTERCEPT</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>4</integer>
-				<key>tooltip</key>
-				<string>Define whether the character attempts to predict the target's location.</string>
-			</map>
-			<key>PURSUIT_OFFSET</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>1</integer>
-				<key>tooltip</key>
-				<string>Go to a position offset from the target.</string>
-			</map>
-			<key>RAD_TO_DEG</key>
-			<map>
-				<key>type</key>
-				<string>float</string>
-				<key>value</key>
-				<real>57.2957795</real>
-				<key>tooltip</key>
-				<string>57.2957795 - Number of degrees per radian. You can use this number to convert radians to degrees by multiplying the radians by this number.</string>
-			</map>
-			<key>RC_DATA_FLAGS</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>2</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>RC_DETECT_PHANTOM</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>1</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>RC_GET_LINK_NUM</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>4</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>RC_GET_NORMAL</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>1</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>RC_GET_ROOT_KEY</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>2</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>RC_MAX_HITS</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>3</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>RC_REJECT_AGENTS</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>1</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>RC_REJECT_LAND</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>8</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>RC_REJECT_NONPHYSICAL</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>4</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>RC_REJECT_PHYSICAL</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>2</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>RC_REJECT_TYPES</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>2</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>RCERR_CAST_TIME_EXCEEDED</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>-3</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>RCERR_SIM_PERF_LOW</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>-2</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>RCERR_UNKNOWN</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>-1</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>REGION_FLAG_ALLOW_DAMAGE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x1</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>REGION_FLAG_ALLOW_DIRECT_TELEPORT</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x100000</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>REGION_FLAG_BLOCK_FLY</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x80000</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>REGION_FLAG_BLOCK_TERRAFORM</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x40</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>REGION_FLAG_DISABLE_COLLISIONS</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x1000</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>REGION_FLAG_DISABLE_PHYSICS</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x4000</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>REGION_FLAG_FIXED_SUN</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x10</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>REGION_FLAG_RESTRICT_PUSHOBJECT</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x400000</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>REGION_FLAG_SANDBOX</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x100</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>REMOTE_DATA_CHANNEL</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>1</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>REMOTE_DATA_REPLY</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>3</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>REMOTE_DATA_REQUEST</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>2</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>REQUIRE_LINE_OF_SIGHT</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>2</integer>
-				<key>tooltip</key>
-				<string>Define whether the character needs a line-of-sight to give chase.</string>
-			</map>
-			<key>RESTITUTION</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>4</integer>
-				<key>tooltip</key>
-				<string>Used with llSetPhysicsMaterial to enable the density value. Must be between 0.0 and 1.0</string>
-			</map>
-			<key>REVERSE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x4</integer>
-				<key>tooltip</key>
-				<string>Play animation in reverse direction.</string>
-			</map>
-			<key>ROTATE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x20</integer>
-				<key>tooltip</key>
-				<string>Animate texture rotation.</string>
-			</map>
-			<key>SCALE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x40</integer>
-				<key>tooltip</key>
-				<string>Animate the texture scale.</string>
-			</map>
-			<key>SCRIPTED</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x8</integer>
-				<key>tooltip</key>
-				<string>Scripted in-world objects.</string>
-			</map>
-			<key>SIM_STAT_PCT_CHARS_STEPPED</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0</integer>
-				<key>tooltip</key>
-				<string>Returns the % of pathfinding characters skipped each frame, averaged over the last minute.\nThe returned value corresponds to the "Characters Updated" stat in the viewer's Statistics Bar.</string>
-			</map>
-			<key>SMOOTH</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x10</integer>
-				<key>tooltip</key>
-				<string>Slide in the X direction, instead of playing separate frames.</string>
-			</map>
-			<key>SQRT2</key>
-			<map>
-				<key>type</key>
-				<string>float</string>
-				<key>value</key>
-				<real>1.41421356</real>
-				<key>tooltip</key>
-				<string>1.41421356 - The square root of 2.</string>
-			</map>
-			<key>STATUS_BLOCK_GRAB</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>64</integer>
-				<key>tooltip</key>
-				<string>Controls whether the object can be grabbed.\nA grab is the default action when in third person, and is available as the hand tool in build mode. This is useful for physical objects that you don't want other people to be able to trivially disturb. The default is FALSE</string>
-			</map>
-			<key>STATUS_BLOCK_GRAB_OBJECT</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>1024</integer>
-				<key>tooltip</key>
-				<string>Prevent click-and-drag movement on all prims in the object.</string>
-			</map>
-			<key>STATUS_BOUNDS_ERROR</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>1002</integer>
-				<key>tooltip</key>
-				<string>Argument(s) passed to function had a bounds error.</string>
-			</map>
-			<key>STATUS_CAST_SHADOWS</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x200</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>STATUS_DIE_AT_EDGE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x80</integer>
-				<key>tooltip</key>
-				<string>Controls whether the object is returned to the owners inventory if it wanders off the edge of the world.\nIt is useful to set this status TRUE for things like bullets or rockets. The default is TRUE</string>
-			</map>
-			<key>STATUS_INTERNAL_ERROR</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>1999</integer>
-				<key>tooltip</key>
-				<string>An internal error occurred.</string>
-			</map>
-			<key>STATUS_MALFORMED_PARAMS</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>1000</integer>
-				<key>tooltip</key>
-				<string>Function was called with malformed parameters.</string>
-			</map>
-			<key>STATUS_NOT_FOUND</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>1003</integer>
-				<key>tooltip</key>
-				<string>Object or other item was not found.</string>
-			</map>
-			<key>STATUS_NOT_SUPPORTED</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>1004</integer>
-				<key>tooltip</key>
-				<string>Feature not supported.</string>
-			</map>
-			<key>STATUS_OK</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0</integer>
-				<key>tooltip</key>
-				<string>Result of function call was a success.</string>
-			</map>
-			<key>STATUS_PHANTOM</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x10</integer>
-				<key>tooltip</key>
-				<string>Controls/indicates whether the object collides or not.\nSetting the value to TRUE makes the object non-colliding with all objects. It is a good idea to use this for most objects that move or rotate, but are non-physical. It is also useful for simulating volumetric lighting. The default is FALSE.</string>
-			</map>
-			<key>STATUS_PHYSICS</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x1</integer>
-				<key>tooltip</key>
-				<string>Controls/indicates whether the object moves physically.\nThis controls the same flag that the UI check-box for Physical controls. The default is FALSE.</string>
-			</map>
-			<key>STATUS_RETURN_AT_EDGE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x100</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>STATUS_ROTATE_X</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x2</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>STATUS_ROTATE_Y</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x4</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>STATUS_ROTATE_Z</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x8</integer>
-				<key>tooltip</key>
-				<string>Controls/indicates whether the object can physically rotate around
+   </map>
+   <key>PSYS_SRC_PATTERN_ANGLE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x04</integer>
+    <key>tooltip</key>
+    <string>Shoot particles across a 2 dimensional area defined by the arc created from PSYS_SRC_OUTERANGLE. There will be an open area defined by PSYS_SRC_INNERANGLE within the larger arc.</string>
+   </map>
+   <key>PSYS_SRC_PATTERN_ANGLE_CONE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x08</integer>
+    <key>tooltip</key>
+    <string>Shoot particles out in a 3 dimensional cone with an outer arc of PSYS_SRC_OUTERANGLE and an inner open area defined by PSYS_SRC_INNERANGLE.</string>
+   </map>
+   <key>PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x10</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PSYS_SRC_PATTERN_DROP</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x01</integer>
+    <key>tooltip</key>
+    <string>Drop particles at the source position.</string>
+   </map>
+   <key>PSYS_SRC_PATTERN_EXPLODE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x02</integer>
+    <key>tooltip</key>
+    <string>Shoot particles out in all directions, using the burst parameters.</string>
+   </map>
+   <key>PSYS_SRC_TARGET_KEY</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>20</integer>
+    <key>tooltip</key>
+    <string>The key of a target object to move towards if PSYS_PART_TARGET_POS_MASK is enabled.</string>
+   </map>
+   <key>PSYS_SRC_TEXTURE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>12</integer>
+    <key>tooltip</key>
+    <string>An asset name for the texture to use for the particles.</string>
+   </map>
+   <key>PU_EVADE_HIDDEN</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x07</integer>
+    <key>tooltip</key>
+    <string>Triggered when an llEvade character thinks it has hidden from its pursuer.</string>
+   </map>
+   <key>PU_EVADE_SPOTTED</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x08</integer>
+    <key>tooltip</key>
+    <string>Triggered when an llEvade character switches from hiding to running</string>
+   </map>
+   <key>PU_FAILURE_DYNAMIC_PATHFINDING_DISABLED</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>10</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PU_FAILURE_INVALID_GOAL</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x03</integer>
+    <key>tooltip</key>
+    <string>Goal is not on the navigation-mesh and cannot be reached.</string>
+   </map>
+   <key>PU_FAILURE_INVALID_START</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x02</integer>
+    <key>tooltip</key>
+    <string>Character cannot navigate from the current location - e.g., the character is off the navmesh or too high above it.</string>
+   </map>
+   <key>PU_FAILURE_NO_NAVMESH</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x09</integer>
+    <key>tooltip</key>
+    <string>This is a fatal error reported to a character when there is no navmesh for the region. This usually indicates a server failure and users should file a bug report and include the time and region in which they received this message.</string>
+   </map>
+   <key>PU_FAILURE_NO_VALID_DESTINATION</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x06</integer>
+    <key>tooltip</key>
+    <string>There is no good place for the character to go - e.g., it is patrolling and all the patrol points are now unreachable.</string>
+   </map>
+   <key>PU_FAILURE_OTHER</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1000000</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PU_FAILURE_PARCEL_UNREACHABLE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>11</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PU_FAILURE_TARGET_GONE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x05</integer>
+    <key>tooltip</key>
+    <string>Target (for llPursue or llEvade) can no longer be tracked - e.g., it left the region or is an avatar that is now more than about 30m outside the region.</string>
+   </map>
+   <key>PU_FAILURE_UNREACHABLE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x04</integer>
+    <key>tooltip</key>
+    <string>Goal is no longer reachable for some reason - e.g., an obstacle blocks the path.</string>
+   </map>
+   <key>PU_GOAL_REACHED</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x01</integer>
+    <key>tooltip</key>
+    <string>Character has reached the goal and will stop or choose a new goal (if wandering).</string>
+   </map>
+   <key>PU_SLOWDOWN_DISTANCE_REACHED</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x00</integer>
+    <key>tooltip</key>
+    <string>Character is near current goal.</string>
+   </map>
+   <key>PUBLIC_CHANNEL</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0</integer>
+    <key>tooltip</key>
+    <string>PUBLIC_CHANNEL is an integer constant that, when passed to llSay, llWhisper, or llShout as a channel parameter, will print text to the publicly heard chat channel.</string>
+   </map>
+   <key>PURSUIT_FUZZ_FACTOR</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>3</integer>
+    <key>tooltip</key>
+    <string>Selects a random destination near the offset.</string>
+   </map>
+   <key>PURSUIT_GOAL_TOLERANCE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>5</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>PURSUIT_INTERCEPT</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>4</integer>
+    <key>tooltip</key>
+    <string>Define whether the character attempts to predict the target's location.</string>
+   </map>
+   <key>PURSUIT_OFFSET</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1</integer>
+    <key>tooltip</key>
+    <string>Go to a position offset from the target.</string>
+   </map>
+   <key>RAD_TO_DEG</key>
+   <map>
+    <key>type</key>
+    <string>float</string>
+    <key>value</key>
+    <real>57.2957795</real>
+    <key>tooltip</key>
+    <string>57.2957795 - Number of degrees per radian. You can use this number to convert radians to degrees by multiplying the radians by this number.</string>
+   </map>
+   <key>RC_DATA_FLAGS</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>2</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>RC_DETECT_PHANTOM</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>RC_GET_LINK_NUM</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>4</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>RC_GET_NORMAL</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>RC_GET_ROOT_KEY</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>2</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>RC_MAX_HITS</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>3</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>RC_REJECT_AGENTS</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>RC_REJECT_LAND</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>8</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>RC_REJECT_NONPHYSICAL</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>4</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>RC_REJECT_PHYSICAL</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>2</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>RC_REJECT_TYPES</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>2</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>RCERR_CAST_TIME_EXCEEDED</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>-3</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>RCERR_SIM_PERF_LOW</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>-2</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>RCERR_UNKNOWN</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>-1</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>REGION_FLAG_ALLOW_DAMAGE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x1</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>REGION_FLAG_ALLOW_DIRECT_TELEPORT</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x100000</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>REGION_FLAG_BLOCK_FLY</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x80000</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>REGION_FLAG_BLOCK_TERRAFORM</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x40</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>REGION_FLAG_DISABLE_COLLISIONS</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x1000</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>REGION_FLAG_DISABLE_PHYSICS</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x4000</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>REGION_FLAG_FIXED_SUN</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x10</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>REGION_FLAG_RESTRICT_PUSHOBJECT</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x400000</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>REGION_FLAG_SANDBOX</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x100</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>REMOTE_DATA_CHANNEL</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>REMOTE_DATA_REPLY</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>3</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>REMOTE_DATA_REQUEST</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>2</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>REQUIRE_LINE_OF_SIGHT</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>2</integer>
+    <key>tooltip</key>
+    <string>Define whether the character needs a line-of-sight to give chase.</string>
+   </map>
+   <key>RESTITUTION</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>4</integer>
+    <key>tooltip</key>
+    <string>Used with llSetPhysicsMaterial to enable the density value. Must be between 0.0 and 1.0</string>
+   </map>
+   <key>REVERSE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x4</integer>
+    <key>tooltip</key>
+    <string>Play animation in reverse direction.</string>
+   </map>
+   <key>ROTATE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x20</integer>
+    <key>tooltip</key>
+    <string>Animate texture rotation.</string>
+   </map>
+   <key>SCALE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x40</integer>
+    <key>tooltip</key>
+    <string>Animate the texture scale.</string>
+   </map>
+   <key>SCRIPTED</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x8</integer>
+    <key>tooltip</key>
+    <string>Scripted in-world objects.</string>
+   </map>
+   <key>SIM_STAT_PCT_CHARS_STEPPED</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0</integer>
+    <key>tooltip</key>
+    <string>Returns the % of pathfinding characters skipped each frame, averaged over the last minute.\nThe returned value corresponds to the "Characters Updated" stat in the viewer's Statistics Bar.</string>
+   </map>
+   <key>SMOOTH</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x10</integer>
+    <key>tooltip</key>
+    <string>Slide in the X direction, instead of playing separate frames.</string>
+   </map>
+   <key>SQRT2</key>
+   <map>
+    <key>type</key>
+    <string>float</string>
+    <key>value</key>
+    <real>1.41421356</real>
+    <key>tooltip</key>
+    <string>1.41421356 - The square root of 2.</string>
+   </map>
+   <key>STATUS_BLOCK_GRAB</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>64</integer>
+    <key>tooltip</key>
+    <string>Controls whether the object can be grabbed.\nA grab is the default action when in third person, and is available as the hand tool in build mode. This is useful for physical objects that you don't want other people to be able to trivially disturb. The default is FALSE</string>
+   </map>
+   <key>STATUS_BLOCK_GRAB_OBJECT</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1024</integer>
+    <key>tooltip</key>
+    <string>Prevent click-and-drag movement on all prims in the object.</string>
+   </map>
+   <key>STATUS_BOUNDS_ERROR</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1002</integer>
+    <key>tooltip</key>
+    <string>Argument(s) passed to function had a bounds error.</string>
+   </map>
+   <key>STATUS_CAST_SHADOWS</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x200</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>STATUS_DIE_AT_EDGE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x80</integer>
+    <key>tooltip</key>
+    <string>Controls whether the object is returned to the owners inventory if it wanders off the edge of the world.\nIt is useful to set this status TRUE for things like bullets or rockets. The default is TRUE</string>
+   </map>
+   <key>STATUS_INTERNAL_ERROR</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1999</integer>
+    <key>tooltip</key>
+    <string>An internal error occurred.</string>
+   </map>
+   <key>STATUS_MALFORMED_PARAMS</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1000</integer>
+    <key>tooltip</key>
+    <string>Function was called with malformed parameters.</string>
+   </map>
+   <key>STATUS_NOT_FOUND</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1003</integer>
+    <key>tooltip</key>
+    <string>Object or other item was not found.</string>
+   </map>
+   <key>STATUS_NOT_SUPPORTED</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1004</integer>
+    <key>tooltip</key>
+    <string>Feature not supported.</string>
+   </map>
+   <key>STATUS_OK</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0</integer>
+    <key>tooltip</key>
+    <string>Result of function call was a success.</string>
+   </map>
+   <key>STATUS_PHANTOM</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x10</integer>
+    <key>tooltip</key>
+    <string>Controls/indicates whether the object collides or not.\nSetting the value to TRUE makes the object non-colliding with all objects. It is a good idea to use this for most objects that move or rotate, but are non-physical. It is also useful for simulating volumetric lighting. The default is FALSE.</string>
+   </map>
+   <key>STATUS_PHYSICS</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x1</integer>
+    <key>tooltip</key>
+    <string>Controls/indicates whether the object moves physically.\nThis controls the same flag that the UI check-box for Physical controls. The default is FALSE.</string>
+   </map>
+   <key>STATUS_RETURN_AT_EDGE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x100</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>STATUS_ROTATE_X</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x2</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>STATUS_ROTATE_Y</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x4</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>STATUS_ROTATE_Z</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x8</integer>
+    <key>tooltip</key>
+    <string>Controls/indicates whether the object can physically rotate around
 			the specific axis or not. This flag has no meaning
 			for non-physical objects. Set the value to FALSE
 			if you want to disable rotation around that axis. The
@@ -5148,597 +5255,597 @@
 			A useful example to think about when visualizing
 			the effect is a sit-and-spin device. They spin around the
 			Z axis (up) but not around the X or Y axis.</string>
-			</map>
-			<key>STATUS_SANDBOX</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x20</integer>
-				<key>tooltip</key>
-				<string>Controls/indicates whether the object can cross region boundaries
+   </map>
+   <key>STATUS_SANDBOX</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x20</integer>
+    <key>tooltip</key>
+    <string>Controls/indicates whether the object can cross region boundaries
 			and move more than 20 meters from its creation
 			point. The default if FALSE.</string>
-			</map>
-			<key>STATUS_TYPE_MISMATCH</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>1001</integer>
-				<key>tooltip</key>
-				<string>Argument(s) passed to function had a type mismatch.</string>
-			</map>
-			<key>STATUS_WHITELIST_FAILED</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>2001</integer>
-				<key>tooltip</key>
-				<string>Whitelist Failed.</string>
-			</map>
-			<key>STRING_TRIM</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x03</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>STRING_TRIM_HEAD</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x01</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>STRING_TRIM_TAIL</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x02</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>TEXTURE_BLANK</key>
-			<map>
-				<key>type</key>
-				<string>key</string>
-				<key>value</key>
-				<uuid>5748decc-f629-461c-9a36-a35a221fe21f</uuid>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>TEXTURE_DEFAULT</key>
-			<map>
-				<key>type</key>
-				<string>key</string>
-				<key>value</key>
-				<uuid>89556747-24cb-43ed-920b-47caed15465f</uuid>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>TEXTURE_MEDIA</key>
-			<map>
-				<key>type</key>
-				<string>key</string>
-				<key>value</key>
-				<uuid>8b5fec65-8d8d-9dc5-cda8-8fdf2716e361</uuid>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>TEXTURE_PLYWOOD</key>
-			<map>
-				<key>type</key>
-				<string>key</string>
-				<key>value</key>
-				<uuid>89556747-24cb-43ed-920b-47caed15465f</uuid>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>TEXTURE_TRANSPARENT</key>
-			<map>
-				<key>type</key>
-				<string>key</string>
-				<key>value</key>
-				<uuid>8dcd4a48-2d37-4909-9f78-f7a9eb4ef903</uuid>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>TOUCH_INVALID_FACE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0xFFFFFFFF</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>TOUCH_INVALID_TEXCOORD</key>
-			<map>
-				<key>type</key>
-				<string>vector</string>
-				<key>value</key>
-				<array>
-					<map>
-						<key>x</key>
-						<real>-1.0</real>
-					</map>
-					<map>
-						<key>y</key>
-						<real>-1.0</real>
-					</map>
-					<map>
-						<key>z</key>
-						<real>0.0</real>
-					</map>
-				</array>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>TOUCH_INVALID_VECTOR</key>
-			<map>
-				<key>type</key>
-				<string>vector</string>
-				<key>value</key>
-				<array>
-					<map>
-						<key>x</key>
-						<real>0.0</real>
-					</map>
-					<map>
-						<key>y</key>
-						<real>0.0</real>
-					</map>
-					<map>
-						<key>z</key>
-						<real>0.0</real>
-					</map>
-				</array>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>TRAVERSAL_TYPE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>7</integer>
-				<key>tooltip</key>
-				<string>One of TRAVERSAL_TYPE_FAST, TRAVERSAL_TYPE_SLOW, and TRAVERSAL_TYPE_NONE.</string>
-			</map>
-			<key>TRAVERSAL_TYPE_FAST</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>1</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>TRAVERSAL_TYPE_NONE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>2</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>TRAVERSAL_TYPE_SLOW</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>TRUE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>1</integer>
-				<key>tooltip</key>
-				<string>An integer constant for boolean comparisons. Has the value '1'.</string>
-			</map>
-			<key>TWO_PI</key>
-			<map>
-				<key>type</key>
-				<string>float</string>
-				<key>value</key>
-				<real>6.28318530</real>
-				<key>tooltip</key>
-				<string>6.28318530 - The radians of a circle.</string>
-			</map>
-			<key>TYPE_FLOAT</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>2</integer>
-				<key>tooltip</key>
-				<string>The list entry is a float.</string>
-			</map>
-			<key>TYPE_INTEGER</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>1</integer>
-				<key>tooltip</key>
-				<string>The list entry is an integer.</string>
-			</map>
-			<key>TYPE_INVALID</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0</integer>
-				<key>tooltip</key>
-				<string>The list entry is invalid.</string>
-			</map>
-			<key>TYPE_KEY</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>4</integer>
-				<key>tooltip</key>
-				<string>The list entry is a key.</string>
-			</map>
-			<key>TYPE_ROTATION</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>6</integer>
-				<key>tooltip</key>
-				<string>The list entry is a rotation.</string>
-			</map>
-			<key>TYPE_STRING</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>3</integer>
-				<key>tooltip</key>
-				<string>The list entry is a string.</string>
-			</map>
-			<key>TYPE_VECTOR</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>5</integer>
-				<key>tooltip</key>
-				<string>The list entry is a vector.</string>
-			</map>
-			<key>URL_REQUEST_DENIED</key>
-			<map>
-				<key>type</key>
-				<string>string</string>
-				<key>value</key>
-				<string>URL_REQUEST_DENIED</string>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>URL_REQUEST_GRANTED</key>
-			<map>
-				<key>type</key>
-				<string>string</string>
-				<key>value</key>
-				<string>URL_REQUEST_GRANTED</string>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>32</integer>
-				<key>tooltip</key>
-				<string>A slider between minimum (0.0) and maximum (1.0) deflection of angular orientation. That is, its a simple scalar for modulating the strength of angular deflection such that the vehicles preferred axis of motion points toward its real velocity.</string>
-			</map>
-			<key>VEHICLE_ANGULAR_DEFLECTION_TIMESCALE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>33</integer>
-				<key>tooltip</key>
-				<string>The time-scale for exponential success of linear deflection deflection. Its another way to specify the strength of the vehicles tendency to reorient itself so that its preferred axis of motion agrees with its true velocity.</string>
-			</map>
-			<key>VEHICLE_ANGULAR_FRICTION_TIMESCALE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>17</integer>
-				<key>tooltip</key>
-				<string>A vector of timescales for exponential decay of the vehicles angular velocity about its preferred axes of motion (at, left, up).
+   </map>
+   <key>STATUS_TYPE_MISMATCH</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1001</integer>
+    <key>tooltip</key>
+    <string>Argument(s) passed to function had a type mismatch.</string>
+   </map>
+   <key>STATUS_WHITELIST_FAILED</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>2001</integer>
+    <key>tooltip</key>
+    <string>Whitelist Failed.</string>
+   </map>
+   <key>STRING_TRIM</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x03</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>STRING_TRIM_HEAD</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x01</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>STRING_TRIM_TAIL</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x02</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>TEXTURE_BLANK</key>
+   <map>
+    <key>type</key>
+    <string>key</string>
+    <key>value</key>
+    <uuid>5748decc-f629-461c-9a36-a35a221fe21f</uuid>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>TEXTURE_DEFAULT</key>
+   <map>
+    <key>type</key>
+    <string>key</string>
+    <key>value</key>
+    <uuid>89556747-24cb-43ed-920b-47caed15465f</uuid>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>TEXTURE_MEDIA</key>
+   <map>
+    <key>type</key>
+    <string>key</string>
+    <key>value</key>
+    <uuid>8b5fec65-8d8d-9dc5-cda8-8fdf2716e361</uuid>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>TEXTURE_PLYWOOD</key>
+   <map>
+    <key>type</key>
+    <string>key</string>
+    <key>value</key>
+    <uuid>89556747-24cb-43ed-920b-47caed15465f</uuid>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>TEXTURE_TRANSPARENT</key>
+   <map>
+    <key>type</key>
+    <string>key</string>
+    <key>value</key>
+    <uuid>8dcd4a48-2d37-4909-9f78-f7a9eb4ef903</uuid>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>TOUCH_INVALID_FACE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0xFFFFFFFF</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>TOUCH_INVALID_TEXCOORD</key>
+   <map>
+    <key>type</key>
+    <string>vector</string>
+    <key>value</key>
+    <array>
+     <map>
+      <key>x</key>
+      <real>-1.0</real>
+     </map>
+     <map>
+      <key>y</key>
+      <real>-1.0</real>
+     </map>
+     <map>
+      <key>z</key>
+      <real>0.0</real>
+     </map>
+    </array>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>TOUCH_INVALID_VECTOR</key>
+   <map>
+    <key>type</key>
+    <string>vector</string>
+    <key>value</key>
+    <array>
+     <map>
+      <key>x</key>
+      <real>0.0</real>
+     </map>
+     <map>
+      <key>y</key>
+      <real>0.0</real>
+     </map>
+     <map>
+      <key>z</key>
+      <real>0.0</real>
+     </map>
+    </array>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>TRAVERSAL_TYPE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>7</integer>
+    <key>tooltip</key>
+    <string>One of TRAVERSAL_TYPE_FAST, TRAVERSAL_TYPE_SLOW, and TRAVERSAL_TYPE_NONE.</string>
+   </map>
+   <key>TRAVERSAL_TYPE_FAST</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>TRAVERSAL_TYPE_NONE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>2</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>TRAVERSAL_TYPE_SLOW</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>TRUE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1</integer>
+    <key>tooltip</key>
+    <string>An integer constant for boolean comparisons. Has the value '1'.</string>
+   </map>
+   <key>TWO_PI</key>
+   <map>
+    <key>type</key>
+    <string>float</string>
+    <key>value</key>
+    <real>6.28318530</real>
+    <key>tooltip</key>
+    <string>6.28318530 - The radians of a circle.</string>
+   </map>
+   <key>TYPE_FLOAT</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>2</integer>
+    <key>tooltip</key>
+    <string>The list entry is a float.</string>
+   </map>
+   <key>TYPE_INTEGER</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1</integer>
+    <key>tooltip</key>
+    <string>The list entry is an integer.</string>
+   </map>
+   <key>TYPE_INVALID</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0</integer>
+    <key>tooltip</key>
+    <string>The list entry is invalid.</string>
+   </map>
+   <key>TYPE_KEY</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>4</integer>
+    <key>tooltip</key>
+    <string>The list entry is a key.</string>
+   </map>
+   <key>TYPE_ROTATION</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>6</integer>
+    <key>tooltip</key>
+    <string>The list entry is a rotation.</string>
+   </map>
+   <key>TYPE_STRING</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>3</integer>
+    <key>tooltip</key>
+    <string>The list entry is a string.</string>
+   </map>
+   <key>TYPE_VECTOR</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>5</integer>
+    <key>tooltip</key>
+    <string>The list entry is a vector.</string>
+   </map>
+   <key>URL_REQUEST_DENIED</key>
+   <map>
+    <key>type</key>
+    <string>string</string>
+    <key>value</key>
+    <string>URL_REQUEST_DENIED</string>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>URL_REQUEST_GRANTED</key>
+   <map>
+    <key>type</key>
+    <string>string</string>
+    <key>value</key>
+    <string>URL_REQUEST_GRANTED</string>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>32</integer>
+    <key>tooltip</key>
+    <string>A slider between minimum (0.0) and maximum (1.0) deflection of angular orientation. That is, its a simple scalar for modulating the strength of angular deflection such that the vehicles preferred axis of motion points toward its real velocity.</string>
+   </map>
+   <key>VEHICLE_ANGULAR_DEFLECTION_TIMESCALE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>33</integer>
+    <key>tooltip</key>
+    <string>The time-scale for exponential success of linear deflection deflection. Its another way to specify the strength of the vehicles tendency to reorient itself so that its preferred axis of motion agrees with its true velocity.</string>
+   </map>
+   <key>VEHICLE_ANGULAR_FRICTION_TIMESCALE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>17</integer>
+    <key>tooltip</key>
+    <string>A vector of timescales for exponential decay of the vehicles angular velocity about its preferred axes of motion (at, left, up).
 			Range = [0.07, inf) seconds for each element of the vector.</string>
-			</map>
-			<key>VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>35</integer>
-				<key>tooltip</key>
-				<string>The timescale for exponential decay of the angular motors magnitude.</string>
-			</map>
-			<key>VEHICLE_ANGULAR_MOTOR_DIRECTION</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>19</integer>
-				<key>tooltip</key>
-				<string>The direction and magnitude (in preferred frame) of the vehicles angular motor.The vehicle will accelerate (or decelerate if necessary) to match its velocity to its motor.</string>
-			</map>
-			<key>VEHICLE_ANGULAR_MOTOR_TIMESCALE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>34</integer>
-				<key>tooltip</key>
-				<string>The timescale for exponential approach to full angular motor velocity.</string>
-			</map>
-			<key>VEHICLE_BANKING_EFFICIENCY</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>38</integer>
-				<key>tooltip</key>
-				<string>A slider between anti (-1.0), none (0.0), and maxmum (1.0) banking strength.</string>
-			</map>
-			<key>VEHICLE_BANKING_MIX</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>39</integer>
-				<key>tooltip</key>
-				<string>A slider between static (0.0) and dynamic (1.0) banking. "Static" means the banking scales only with the angle of roll, whereas "dynamic" is a term that also scales with the vehicles linear speed.</string>
-			</map>
-			<key>VEHICLE_BANKING_TIMESCALE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>40</integer>
-				<key>tooltip</key>
-				<string>The timescale for banking to exponentially approach its maximum effect. This is another way to scale the strength of the banking effect, however it affects the term that is proportional to the difference between what the banking behavior is trying to do, and what the vehicle is actually doing.</string>
-			</map>
-			<key>VEHICLE_BUOYANCY</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>27</integer>
-				<key>tooltip</key>
-				<string>A slider between minimum (0.0) and maximum anti-gravity (1.0).</string>
-			</map>
-			<key>VEHICLE_FLAG_CAMERA_DECOUPLED</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x200</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x10</integer>
-				<key>tooltip</key>
-				<string>Hover at global height.</string>
-			</map>
-			<key>VEHICLE_FLAG_HOVER_TERRAIN_ONLY</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x8</integer>
-				<key>tooltip</key>
-				<string>Ignore water height when hovering.</string>
-			</map>
-			<key>VEHICLE_FLAG_HOVER_UP_ONLY</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x20</integer>
-				<key>tooltip</key>
-				<string>Hover does not push down. Use this flag for hovering vehicles that should be able to jump above their hover height.</string>
-			</map>
-			<key>VEHICLE_FLAG_HOVER_WATER_ONLY</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x4</integer>
-				<key>tooltip</key>
-				<string>Ignore terrain height when hovering.</string>
-			</map>
-			<key>VEHICLE_FLAG_LIMIT_MOTOR_UP</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x40</integer>
-				<key>tooltip</key>
-				<string>Prevents ground vehicles from motoring into the sky.</string>
-			</map>
-			<key>VEHICLE_FLAG_LIMIT_ROLL_ONLY</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x2</integer>
-				<key>tooltip</key>
-				<string>For vehicles with vertical attractor that want to be able to climb/dive, for instance, aeroplanes that want to use the banking feature.</string>
-			</map>
-			<key>VEHICLE_FLAG_MOUSELOOK_BANK</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x100</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>VEHICLE_FLAG_MOUSELOOK_STEER</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x80</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>VEHICLE_FLAG_NO_DEFLECTION_UP</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x1</integer>
-				<key>tooltip</key>
-				<string>This flag prevents linear deflection parallel to world z-axis. This is useful for preventing ground vehicles with large linear deflection, like bumper cars, from climbing their linear deflection into the sky.</string>
-			</map>
-			<key>VEHICLE_FLAG_NO_FLY_UP</key>
-			<map>
-				<key>deprecated</key>
-				<boolean>true</boolean>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0x1</integer>
-				<key>tooltip</key>
-				<string>Old, changed to VEHICLE_FLAG_NO_DEFLECTION_UP</string>
-			</map>
-			<key>VEHICLE_HOVER_EFFICIENCY</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>25</integer>
-				<key>tooltip</key>
-				<string>A slider between minimum (0.0 = bouncy) and maximum (1.0 = fast as possible) damped motion of the hover behavior. </string>
-			</map>
-			<key>VEHICLE_HOVER_HEIGHT</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>24</integer>
-				<key>tooltip</key>
-				<string>The height (above the terrain or water, or global) at which the vehicle will try to hover.</string>
-			</map>
-			<key>VEHICLE_HOVER_TIMESCALE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>26</integer>
-				<key>tooltip</key>
-				<string>Period of time (in seconds) for the vehicle to achieve its hover height.</string>
-			</map>
-			<key>VEHICLE_LINEAR_DEFLECTION_EFFICIENCY</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>28</integer>
-				<key>tooltip</key>
-				<string>A slider between minimum (0.0) and maximum (1.0) deflection of linear velocity. That is, its a simple scalar for modulating the strength of linear deflection.</string>
-			</map>
-			<key>VEHICLE_LINEAR_DEFLECTION_TIMESCALE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>29</integer>
-				<key>tooltip</key>
-				<string>The timescale for exponential success of linear deflection deflection. It is another way to specify how much time it takes for the vehicles linear velocity to be redirected to its preferred axis of motion.</string>
-			</map>
-			<key>VEHICLE_LINEAR_FRICTION_TIMESCALE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>16</integer>
-				<key>tooltip</key>
-				<string>A vector of timescales for exponential decay of the vehicles linear velocity along its preferred axes of motion (at, left, up).
+   </map>
+   <key>VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>35</integer>
+    <key>tooltip</key>
+    <string>The timescale for exponential decay of the angular motors magnitude.</string>
+   </map>
+   <key>VEHICLE_ANGULAR_MOTOR_DIRECTION</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>19</integer>
+    <key>tooltip</key>
+    <string>The direction and magnitude (in preferred frame) of the vehicles angular motor.The vehicle will accelerate (or decelerate if necessary) to match its velocity to its motor.</string>
+   </map>
+   <key>VEHICLE_ANGULAR_MOTOR_TIMESCALE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>34</integer>
+    <key>tooltip</key>
+    <string>The timescale for exponential approach to full angular motor velocity.</string>
+   </map>
+   <key>VEHICLE_BANKING_EFFICIENCY</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>38</integer>
+    <key>tooltip</key>
+    <string>A slider between anti (-1.0), none (0.0), and maxmum (1.0) banking strength.</string>
+   </map>
+   <key>VEHICLE_BANKING_MIX</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>39</integer>
+    <key>tooltip</key>
+    <string>A slider between static (0.0) and dynamic (1.0) banking. "Static" means the banking scales only with the angle of roll, whereas "dynamic" is a term that also scales with the vehicles linear speed.</string>
+   </map>
+   <key>VEHICLE_BANKING_TIMESCALE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>40</integer>
+    <key>tooltip</key>
+    <string>The timescale for banking to exponentially approach its maximum effect. This is another way to scale the strength of the banking effect, however it affects the term that is proportional to the difference between what the banking behavior is trying to do, and what the vehicle is actually doing.</string>
+   </map>
+   <key>VEHICLE_BUOYANCY</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>27</integer>
+    <key>tooltip</key>
+    <string>A slider between minimum (0.0) and maximum anti-gravity (1.0).</string>
+   </map>
+   <key>VEHICLE_FLAG_CAMERA_DECOUPLED</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x200</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x10</integer>
+    <key>tooltip</key>
+    <string>Hover at global height.</string>
+   </map>
+   <key>VEHICLE_FLAG_HOVER_TERRAIN_ONLY</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x8</integer>
+    <key>tooltip</key>
+    <string>Ignore water height when hovering.</string>
+   </map>
+   <key>VEHICLE_FLAG_HOVER_UP_ONLY</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x20</integer>
+    <key>tooltip</key>
+    <string>Hover does not push down. Use this flag for hovering vehicles that should be able to jump above their hover height.</string>
+   </map>
+   <key>VEHICLE_FLAG_HOVER_WATER_ONLY</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x4</integer>
+    <key>tooltip</key>
+    <string>Ignore terrain height when hovering.</string>
+   </map>
+   <key>VEHICLE_FLAG_LIMIT_MOTOR_UP</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x40</integer>
+    <key>tooltip</key>
+    <string>Prevents ground vehicles from motoring into the sky.</string>
+   </map>
+   <key>VEHICLE_FLAG_LIMIT_ROLL_ONLY</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x2</integer>
+    <key>tooltip</key>
+    <string>For vehicles with vertical attractor that want to be able to climb/dive, for instance, aeroplanes that want to use the banking feature.</string>
+   </map>
+   <key>VEHICLE_FLAG_MOUSELOOK_BANK</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x100</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>VEHICLE_FLAG_MOUSELOOK_STEER</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x80</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>VEHICLE_FLAG_NO_DEFLECTION_UP</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x1</integer>
+    <key>tooltip</key>
+    <string>This flag prevents linear deflection parallel to world z-axis. This is useful for preventing ground vehicles with large linear deflection, like bumper cars, from climbing their linear deflection into the sky.</string>
+   </map>
+   <key>VEHICLE_FLAG_NO_FLY_UP</key>
+   <map>
+    <key>deprecated</key>
+    <boolean>true</boolean>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0x1</integer>
+    <key>tooltip</key>
+    <string>Old, changed to VEHICLE_FLAG_NO_DEFLECTION_UP</string>
+   </map>
+   <key>VEHICLE_HOVER_EFFICIENCY</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>25</integer>
+    <key>tooltip</key>
+    <string>A slider between minimum (0.0 = bouncy) and maximum (1.0 = fast as possible) damped motion of the hover behavior. </string>
+   </map>
+   <key>VEHICLE_HOVER_HEIGHT</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>24</integer>
+    <key>tooltip</key>
+    <string>The height (above the terrain or water, or global) at which the vehicle will try to hover.</string>
+   </map>
+   <key>VEHICLE_HOVER_TIMESCALE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>26</integer>
+    <key>tooltip</key>
+    <string>Period of time (in seconds) for the vehicle to achieve its hover height.</string>
+   </map>
+   <key>VEHICLE_LINEAR_DEFLECTION_EFFICIENCY</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>28</integer>
+    <key>tooltip</key>
+    <string>A slider between minimum (0.0) and maximum (1.0) deflection of linear velocity. That is, its a simple scalar for modulating the strength of linear deflection.</string>
+   </map>
+   <key>VEHICLE_LINEAR_DEFLECTION_TIMESCALE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>29</integer>
+    <key>tooltip</key>
+    <string>The timescale for exponential success of linear deflection deflection. It is another way to specify how much time it takes for the vehicles linear velocity to be redirected to its preferred axis of motion.</string>
+   </map>
+   <key>VEHICLE_LINEAR_FRICTION_TIMESCALE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>16</integer>
+    <key>tooltip</key>
+    <string>A vector of timescales for exponential decay of the vehicles linear velocity along its preferred axes of motion (at, left, up).
 			Range = [0.07, inf) seconds for each element of the vector.</string>
-			</map>
-			<key>VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>35</integer>
-				<key>tooltip</key>
-				<string>The timescale for exponential decay of the linear motors magnitude.</string>
-			</map>
-			<key>VEHICLE_LINEAR_MOTOR_DIRECTION</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>18</integer>
-				<key>tooltip</key>
-				<string>The direction and magnitude (in preferred frame) of the vehicles linear motor. The vehicle will accelerate (or decelerate if necessary) to match its velocity to its motor.
+   </map>
+   <key>VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>35</integer>
+    <key>tooltip</key>
+    <string>The timescale for exponential decay of the linear motors magnitude.</string>
+   </map>
+   <key>VEHICLE_LINEAR_MOTOR_DIRECTION</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>18</integer>
+    <key>tooltip</key>
+    <string>The direction and magnitude (in preferred frame) of the vehicles linear motor. The vehicle will accelerate (or decelerate if necessary) to match its velocity to its motor.
 			Range of magnitude = [0, 30] meters/second.</string>
-			</map>
-			<key>VEHICLE_LINEAR_MOTOR_OFFSET</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>20</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>VEHICLE_LINEAR_MOTOR_TIMESCALE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>30</integer>
-				<key>tooltip</key>
-				<string>The timescale for exponential approach to full linear motor velocity.</string>
-			</map>
-			<key>VEHICLE_REFERENCE_FRAME</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>44</integer>
-				<key>tooltip</key>
-				<string>A rotation of the vehicles preferred axes of motion and orientation (at, left, up) with respect to the vehicles local frame (x, y, z).</string>
-			</map>
-			<key>VEHICLE_TYPE_AIRPLANE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>4</integer>
-				<key>tooltip</key>
-				<string>Uses linear deflection for lift, no hover, and banking to turn.
+   </map>
+   <key>VEHICLE_LINEAR_MOTOR_OFFSET</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>20</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>VEHICLE_LINEAR_MOTOR_TIMESCALE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>30</integer>
+    <key>tooltip</key>
+    <string>The timescale for exponential approach to full linear motor velocity.</string>
+   </map>
+   <key>VEHICLE_REFERENCE_FRAME</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>44</integer>
+    <key>tooltip</key>
+    <string>A rotation of the vehicles preferred axes of motion and orientation (at, left, up) with respect to the vehicles local frame (x, y, z).</string>
+   </map>
+   <key>VEHICLE_TYPE_AIRPLANE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>4</integer>
+    <key>tooltip</key>
+    <string>Uses linear deflection for lift, no hover, and banking to turn.
 			// very little friction along forward-back axis
 			llSetVehicleVectorParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, &lt;200, 10, 5&gt; );
 			// uniform angular friction
@@ -5780,15 +5887,15 @@
 			| VEHICLE_FLAG_LIMIT_MOTOR_UP );
 			// set these flags
 			llSetVehicleFlags( VEHICLE_FLAG_LIMIT_ROLL_ONLY );</string>
-			</map>
-			<key>VEHICLE_TYPE_BALLOON</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>5</integer>
-				<key>tooltip</key>
-				<string>Hover, and friction, but no deflection.
+   </map>
+   <key>VEHICLE_TYPE_BALLOON</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>5</integer>
+    <key>tooltip</key>
+    <string>Hover, and friction, but no deflection.
 			// uniform linear friction
 			llSetVehicleFloatParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, 5 );
 			// uniform angular friction
@@ -5829,15 +5936,15 @@
 			| VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT
 			| VEHICLE_FLAG_HOVER_UP_ONLY
 			| VEHICLE_FLAG_LIMIT_MOTOR_UP );</string>
-			</map>
-			<key>VEHICLE_TYPE_BOAT</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>3</integer>
-				<key>tooltip</key>
-				<string>Hovers over water with lots of friction and some anglar deflection.
+   </map>
+   <key>VEHICLE_TYPE_BOAT</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>3</integer>
+    <key>tooltip</key>
+    <string>Hovers over water with lots of friction and some anglar deflection.
 			// least for forward-back, most friction for up-down
 			llSetVehicleVectorParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, &lt;10, 3, 2&gt; );
 			// uniform angular friction (setting it as a scalar rather than a vector)
@@ -5879,15 +5986,15 @@
 			| VEHICLE_FLAG_HOVER_WATER_ONLY
 			| VEHICLE_FLAG_HOVER_UP_ONLY
 			| VEHICLE_FLAG_LIMIT_MOTOR_UP );</string>
-			</map>
-			<key>VEHICLE_TYPE_CAR</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>2</integer>
-				<key>tooltip</key>
-				<string>Another vehicle that bounces along the ground but needs
+   </map>
+   <key>VEHICLE_TYPE_CAR</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>2</integer>
+    <key>tooltip</key>
+    <string>Another vehicle that bounces along the ground but needs
 			the motors to be driven from external controls or
 			timer events.
 			// most friction for left-right, least for up-down
@@ -5931,24 +6038,24 @@
 			| VEHICLE_FLAG_LIMIT_ROLL_ONLY
 			| VEHICLE_FLAG_HOVER_UP_ONLY
 			| VEHICLE_FLAG_LIMIT_MOTOR_UP );</string>
-			</map>
-			<key>VEHICLE_TYPE_NONE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>VEHICLE_TYPE_SLED</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>1</integer>
-				<key>tooltip</key>
-				<string>Simple vehicle that bumps along the ground,
+   </map>
+   <key>VEHICLE_TYPE_NONE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>VEHICLE_TYPE_SLED</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>1</integer>
+    <key>tooltip</key>
+    <string>Simple vehicle that bumps along the ground,
 			and likes to move along its local x-axis.
 			// most friction for left-right, least for up-down
 			llSetVehicleVectorParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, &lt;30, 1, 1000&gt; );
@@ -5992,2365 +6099,2413 @@
 			llSetVehicleFlags( VEHICLE_FLAG_NO_DEFLECTION_UP
 			| VEHICLE_FLAG_LIMIT_ROLL_ONLY
 			| VEHICLE_FLAG_LIMIT_MOTOR_UP );</string>
-			</map>
-			<key>VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>36</integer>
-				<key>tooltip</key>
-				<string>A slider between minimum (0.0 = wobbly) and maximum (1.0 = firm as possible) stability of the vehicle to keep itself upright.</string>
-			</map>
-			<key>VEHICLE_VERTICAL_ATTRACTION_TIMESCALE</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>37</integer>
-				<key>tooltip</key>
-				<string>The period of wobble, or timescale for exponential approach, of the vehicle to rotate such that its preferred "up" axis is oriented along the worlds "up" axis.</string>
-			</map>
-			<key>VERTICAL</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>WANDER_PAUSE_AT_WAYPOINTS</key>
-			<map>
-				<key>type</key>
-				<string>integer</string>
-				<key>value</key>
-				<integer>0</integer>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>ZERO_ROTATION</key>
-			<map>
-				<key>type</key>
-				<string>rotation</string>
-				<key>value</key>
-				<array>
-					<map>
-						<key>x</key>
-						<real>0.0</real>
-					</map>
-					<map>
-						<key>y</key>
-						<real>0.0</real>
-					</map>
-					<map>
-						<key>z</key>
-						<real>0.0</real>
-					</map>
-					<map>
-						<key>w</key>
-						<real>1.0</real>
-					</map>
-				</array>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>ZERO_VECTOR</key>
-			<map>
-				<key>type</key>
-				<string>vector</string>
-				<key>value</key>
-				<array>
-					<map>
-						<key>x</key>
-						<real>0.0</real>
-					</map>
-					<map>
-						<key>y</key>
-						<real>0.0</real>
-					</map>
-					<map>
-						<key>z</key>
-						<real>0.0</real>
-					</map>
-				</array>
-				<key>tooltip</key>
-				<string/>
-			</map>
-		</map>
-		<key>events</key>
-		<map>
-			<key>at_rot_target</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>TargetNumber</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>TargetRotation</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>rotation</string>
-						</map>
-					</map>
-					<map>
-						<key>CurrentRotation</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>rotation</string>
-						</map>
-					</map>
-				</array>
-				<key>tooltip</key>
-				<string>This event is triggered when a script comes within a defined angle of a target rotation. The range and rotation, are set by a call to llRotTarget.</string>
-			</map>
-			<key>at_target</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>TargetNumber</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>TargetPosition</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-					<map>
-						<key>CurrentPosition</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-				</array>
-				<key>tooltip</key>
-				<string>This event is triggered when the scripted object comes within a defined range of the target position, defined by the llTarget function call.</string>
-			</map>
-			<key>attach</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>AvatarID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-				</array>
-				<key>tooltip</key>
-				<string>This event is triggered whenever an object is attached or detached from an avatar. If it is attached, the key of the avatar it is attached to is passed in, otherwise NULL_KEY is.</string>
-			</map>
-			<key>changed</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Changed</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>tooltip</key>
-				<string>Triggered when various events change the object. The change argument will be a bit-field of CHANGED_* constants.</string>
-			</map>
-			<key>collision</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>NumberOfCollisions</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>tooltip</key>
-				<string>This event is raised while another object, or avatar, is colliding with the object the script is attached to.
+   </map>
+   <key>VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>36</integer>
+    <key>tooltip</key>
+    <string>A slider between minimum (0.0 = wobbly) and maximum (1.0 = firm as possible) stability of the vehicle to keep itself upright.</string>
+   </map>
+   <key>VEHICLE_VERTICAL_ATTRACTION_TIMESCALE</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>37</integer>
+    <key>tooltip</key>
+    <string>The period of wobble, or timescale for exponential approach, of the vehicle to rotate such that its preferred "up" axis is oriented along the worlds "up" axis.</string>
+   </map>
+   <key>VERTICAL</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>WANDER_PAUSE_AT_WAYPOINTS</key>
+   <map>
+    <key>type</key>
+    <string>integer</string>
+    <key>value</key>
+    <integer>0</integer>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>ZERO_ROTATION</key>
+   <map>
+    <key>type</key>
+    <string>rotation</string>
+    <key>value</key>
+    <array>
+     <map>
+      <key>x</key>
+      <real>0.0</real>
+     </map>
+     <map>
+      <key>y</key>
+      <real>0.0</real>
+     </map>
+     <map>
+      <key>z</key>
+      <real>0.0</real>
+     </map>
+     <map>
+      <key>w</key>
+      <real>1.0</real>
+     </map>
+    </array>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>ZERO_VECTOR</key>
+   <map>
+    <key>type</key>
+    <string>vector</string>
+    <key>value</key>
+    <array>
+     <map>
+      <key>x</key>
+      <real>0.0</real>
+     </map>
+     <map>
+      <key>y</key>
+      <real>0.0</real>
+     </map>
+     <map>
+      <key>z</key>
+      <real>0.0</real>
+     </map>
+    </array>
+    <key>tooltip</key>
+    <string/>
+   </map>
+  </map>
+  <key>controls</key>
+  <map>
+   <key>default</key>
+   <map>
+    <key>tooltip</key>
+    <string>All scripts must have a default state, which is the first state entered when the script starts.\nIf another state is defined before the default state, the compiler will report a syntax error.</string>
+   </map>
+   <key>do</key>
+   <map>
+    <key>tooltip</key>
+    <string>do / while loop\ndo {\n...\n} while (&lt;condition&gt;);</string>
+   </map>
+   <key>else</key>
+   <map>
+    <key>tooltip</key>
+    <string>if / else block\nif (&lt;condition&gt;) {\n...\n[} else [if (&lt;condition&gt;) {\n...]]\n}</string>
+   </map>
+   <key>for</key>
+   <map>
+    <key>tooltip</key>
+    <string>for loop\nfor (&lt;initialiser&gt;; &lt;condition&gt;; &lt;post-iteration-statement&gt;)\n{ ...\n}</string>
+   </map>
+   <key>if</key>
+   <map>
+    <key>tooltip</key>
+    <string>if / else block\nif (&lt;condition&gt;) {\n...\n[} else [if (&lt;condition&gt;) {\n...]]\n}</string>
+   </map>
+   <key>jump</key>
+   <map>
+    <key>tooltip</key>
+    <string>jump statement\njump &lt;label&gt;</string>
+   </map>
+   <key>return</key>
+   <map>
+    <key>tooltip</key>
+    <string>Leave current event or function.\nreturn [&lt;variable&gt;];\nOptionally pass back a variable's value, from a function.</string>
+   </map>
+   <key>state</key>
+   <map>
+    <key>tooltip</key>
+    <string>state &lt;target&gt;\nIf the target state is not the same as the current one, change to the target state.</string>
+   </map>
+   <key>while</key>
+   <map>
+    <key>tooltip</key>
+    <string>while loop\nwhile (&lt;condition&gt;) {\n,,,\n}</string>
+   </map>
+  </map>
+  <key>events</key>
+  <map>
+   <key>at_rot_target</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>TargetNumber</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>TargetRotation</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>rotation</string>
+      </map>
+     </map>
+     <map>
+      <key>CurrentRotation</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>rotation</string>
+      </map>
+     </map>
+    </array>
+    <key>tooltip</key>
+    <string>This event is triggered when a script comes within a defined angle of a target rotation. The range and rotation, are set by a call to llRotTarget.</string>
+   </map>
+   <key>at_target</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>TargetNumber</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>TargetPosition</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+     <map>
+      <key>CurrentPosition</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+    </array>
+    <key>tooltip</key>
+    <string>This event is triggered when the scripted object comes within a defined range of the target position, defined by the llTarget function call.</string>
+   </map>
+   <key>attach</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>AvatarID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+    </array>
+    <key>tooltip</key>
+    <string>This event is triggered whenever an object is attached or detached from an avatar. If it is attached, the key of the avatar it is attached to is passed in, otherwise NULL_KEY is.</string>
+   </map>
+   <key>changed</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Changed</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>tooltip</key>
+    <string>Triggered when various events change the object. The change argument will be a bit-field of CHANGED_* constants.</string>
+   </map>
+   <key>collision</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>NumberOfCollisions</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>tooltip</key>
+    <string>This event is raised while another object, or avatar, is colliding with the object the script is attached to.
 			The number of detected objects is passed to the script. Information on those objects may be gathered via the llDetected* functions.</string>
-			</map>
-			<key>collision_end</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>NumberOfCollisions</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>tooltip</key>
-				<string>This event is raised when another object, or avatar, stops colliding with the object the script is attached to.
+   </map>
+   <key>collision_end</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>NumberOfCollisions</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>tooltip</key>
+    <string>This event is raised when another object, or avatar, stops colliding with the object the script is attached to.
 			The number of detected objects is passed to the script. Information on those objects may be gathered via the llDetected* library functions.</string>
-			</map>
-			<key>collision_start</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>NumberOfCollisions</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>tooltip</key>
-				<string>This event is raised when another object, or avatar, starts colliding with the object the script is attached to.
+   </map>
+   <key>collision_start</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>NumberOfCollisions</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>tooltip</key>
+    <string>This event is raised when another object, or avatar, starts colliding with the object the script is attached to.
 			The number of detected objects is passed to the script. Information on those objects may be gathered via the llDetected* library functions.</string>
-			</map>
-			<key>control</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>AvatarID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-					<map>
-						<key>Levels</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>Edges</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>tooltip</key>
-				<string>Once a script has the ability to grab control inputs from the avatar, this event will be used to pass the commands into the script.
+   </map>
+   <key>control</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>AvatarID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+     <map>
+      <key>Levels</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>Edges</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>tooltip</key>
+    <string>Once a script has the ability to grab control inputs from the avatar, this event will be used to pass the commands into the script.
 			The levels and edges are bit-fields of control constants.</string>
-			</map>
-			<key>dataserver</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>RequestID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-					<map>
-						<key>Data</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-				</array>
-				<key>tooltip</key>
-				<string>This event is triggered when the requested data is returned to the script.
+   </map>
+   <key>dataserver</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>RequestID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+     <map>
+      <key>Data</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+    </array>
+    <key>tooltip</key>
+    <string>This event is triggered when the requested data is returned to the script.
 			Data may be requested by the llRequestAgentData, llRequestInventoryData, and llGetNotecardLine function calls, for example.</string>
-			</map>
-			<key>email</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Time</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>Address</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>Subject</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>Body</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>NumberRemaining</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>tooltip</key>
-				<string>This event is triggered when an email sent to this script arrives.
+   </map>
+   <key>email</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Time</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>Address</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>Subject</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>Body</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>NumberRemaining</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>tooltip</key>
+    <string>This event is triggered when an email sent to this script arrives.
 			The number remaining tells how many more emails are known to be still pending.</string>
-			</map>
-			<key>http_request</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>HTTPRequestID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-					<map>
-						<key>HTTPMethod</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>Body</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-				</array>
-				<key>tooltip</key>
-				<string>Triggered when task receives an HTTP request.</string>
-			</map>
-			<key>http_response</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>HTTPRequestID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-					<map>
-						<key>Status</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>Metadata</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-					<map>
-						<key>Body</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-				</array>
-				<key>tooltip</key>
-				<string>This event handler is invoked when an HTTP response is received for a pending llHTTPRequest request or if a pending request fails or times out.</string>
-			</map>
-			<key>land_collision</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Position</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-				</array>
-				<key>tooltip</key>
-				<string>This event is raised when the object the script is attached to is colliding with the ground.</string>
-			</map>
-			<key>land_collision_end</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Position</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-				</array>
-				<key>tooltip</key>
-				<string>This event is raised when the object the script is attached to stops colliding with the ground.</string>
-			</map>
-			<key>land_collision_start</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Position</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-				</array>
-				<key>tooltip</key>
-				<string>This event is raised when the object the script is attached to begins to collide with the ground.</string>
-			</map>
-			<key>link_message</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>SendersLink</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>Value</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>Text</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>ID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-				</array>
-				<key>tooltip</key>
-				<string>Triggered when object receives a link message via llMessageLinked function call.</string>
-			</map>
-			<key>listen</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Channel</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>Name</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>ID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-					<map>
-						<key>Text</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-				</array>
-				<key>tooltip</key>
-				<string>This event is raised whenever a chat message matching the constraints set in the llListen command is received. The name and ID of the speaker, as well as the message, are passed in as parameters.
+   </map>
+   <key>http_request</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>HTTPRequestID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+     <map>
+      <key>HTTPMethod</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>Body</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+    </array>
+    <key>tooltip</key>
+    <string>Triggered when task receives an HTTP request.</string>
+   </map>
+   <key>http_response</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>HTTPRequestID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+     <map>
+      <key>Status</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>Metadata</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+     <map>
+      <key>Body</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+    </array>
+    <key>tooltip</key>
+    <string>This event handler is invoked when an HTTP response is received for a pending llHTTPRequest request or if a pending request fails or times out.</string>
+   </map>
+   <key>land_collision</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Position</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+    </array>
+    <key>tooltip</key>
+    <string>This event is raised when the object the script is attached to is colliding with the ground.</string>
+   </map>
+   <key>land_collision_end</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Position</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+    </array>
+    <key>tooltip</key>
+    <string>This event is raised when the object the script is attached to stops colliding with the ground.</string>
+   </map>
+   <key>land_collision_start</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Position</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+    </array>
+    <key>tooltip</key>
+    <string>This event is raised when the object the script is attached to begins to collide with the ground.</string>
+   </map>
+   <key>link_message</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>SendersLink</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>Value</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>Text</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>ID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+    </array>
+    <key>tooltip</key>
+    <string>Triggered when object receives a link message via llMessageLinked function call.</string>
+   </map>
+   <key>listen</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Channel</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>Name</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>ID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+     <map>
+      <key>Text</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+    </array>
+    <key>tooltip</key>
+    <string>This event is raised whenever a chat message matching the constraints set in the llListen command is received. The name and ID of the speaker, as well as the message, are passed in as parameters.
 			Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 through 2,147,483,648 are private channels that are not sent to avatars but other scripts can listen on those channels.</string>
-			</map>
-			<key>money</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Payer</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-					<map>
-						<key>Amount</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>tooltip</key>
-				<string>This event is triggered when a resident has given an amount of Linden dollars to the object.</string>
-			</map>
-			<key>moving_end</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>tooltip</key>
-				<string>Triggered whenever an object with this script stops moving.</string>
-			</map>
-			<key>moving_start</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>tooltip</key>
-				<string>Triggered whenever an object with this script starts moving.</string>
-			</map>
-			<key>no_sensor</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>tooltip</key>
-				<string>This event is raised when sensors are active, via the llSensor function call, but are not sensing anything.</string>
-			</map>
-			<key>not_at_rot_target</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>tooltip</key>
-				<string>When a target is set via the llRotTarget function call, but the script is outside the specified angle this event is raised.</string>
-			</map>
-			<key>not_at_target</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>tooltip</key>
-				<string>When a target is set via the llTarget library call, but the script is outside the specified range this event is raised.</string>
-			</map>
-			<key>object_rez</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>RezzedObjectsID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-				</array>
-				<key>tooltip</key>
-				<string>Triggered when an object rezzes another object from its inventory via the llRezObject, or similar, functions. The id is the globally unique key for the object rezzed.</string>
-			</map>
-			<key>on_rez</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>StartParameter</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>tooltip</key>
-				<string>Triggered whenever an object is rezzed from inventory or by another object. The start parameter is passed in from the llRezObject call, or zero if from inventory.</string>
-			</map>
-			<key>path_update</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Type</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>Reserved</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-				</array>
-				<key>tooltip</key>
-				<string>This event is called to inform the script of changes within the object's path-finding status.</string>
-			</map>
-			<key>remote_data</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>EventType</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>ChannelID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-					<map>
-						<key>MessageID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-					<map>
-						<key>Sender</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>Data</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>Data</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-				</array>
-				<key>tooltip</key>
-				<string>Triggered by various XML-RPC calls with event_type specifying the type of data.</string>
-			</map>
-			<key>run_time_permissions</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>PermissionFlags</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>tooltip</key>
-				<string>Scripts need permission from either the owner or the avatar they wish to act on before they may perform certain functions, such as debiting money from their owners account, triggering an animation on an avatar, or capturing control inputs. The llRequestPermissions library function is used to request these permissions and the various permissions integer constants can be supplied.
+   </map>
+   <key>money</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Payer</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+     <map>
+      <key>Amount</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>tooltip</key>
+    <string>This event is triggered when a resident has given an amount of Linden dollars to the object.</string>
+   </map>
+   <key>moving_end</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>tooltip</key>
+    <string>Triggered whenever an object with this script stops moving.</string>
+   </map>
+   <key>moving_start</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>tooltip</key>
+    <string>Triggered whenever an object with this script starts moving.</string>
+   </map>
+   <key>no_sensor</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>tooltip</key>
+    <string>This event is raised when sensors are active, via the llSensor function call, but are not sensing anything.</string>
+   </map>
+   <key>not_at_rot_target</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>tooltip</key>
+    <string>When a target is set via the llRotTarget function call, but the script is outside the specified angle this event is raised.</string>
+   </map>
+   <key>not_at_target</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>tooltip</key>
+    <string>When a target is set via the llTarget library call, but the script is outside the specified range this event is raised.</string>
+   </map>
+   <key>object_rez</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>RezzedObjectsID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+    </array>
+    <key>tooltip</key>
+    <string>Triggered when an object rezzes another object from its inventory via the llRezObject, or similar, functions. The id is the globally unique key for the object rezzed.</string>
+   </map>
+   <key>on_rez</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>StartParameter</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>tooltip</key>
+    <string>Triggered whenever an object is rezzed from inventory or by another object. The start parameter is passed in from the llRezObject call, or zero if from inventory.</string>
+   </map>
+   <key>path_update</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Type</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>Reserved</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+    </array>
+    <key>tooltip</key>
+    <string>This event is called to inform the script of changes within the object's path-finding status.</string>
+   </map>
+   <key>remote_data</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>EventType</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>ChannelID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+     <map>
+      <key>MessageID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+     <map>
+      <key>Sender</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>Data</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>Data</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+    </array>
+    <key>tooltip</key>
+    <string>Triggered by various XML-RPC calls with event_type specifying the type of data.</string>
+   </map>
+   <key>run_time_permissions</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>PermissionFlags</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>tooltip</key>
+    <string>Scripts need permission from either the owner or the avatar they wish to act on before they may perform certain functions, such as debiting money from their owners account, triggering an animation on an avatar, or capturing control inputs. The llRequestPermissions library function is used to request these permissions and the various permissions integer constants can be supplied.
 			The integer returned to this event handler contains the current set of permissions flags, so if permissions equal 0 then no permissions are set.</string>
-			</map>
-			<key>sensor</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>NumberDetected</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>tooltip</key>
-				<string>This event is raised whenever objects matching the constraints of the llSensor command are detected.
+   </map>
+   <key>sensor</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>NumberDetected</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>tooltip</key>
+    <string>This event is raised whenever objects matching the constraints of the llSensor command are detected.
 			The number of detected objects is passed to the script in the parameter. Information on those objects may be gathered via the llDetected* functions.</string>
-			</map>
-			<key>state_entry</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>tooltip</key>
-				<string>The state_entry event occurs whenever a new state is entered, including at program start, and is always the first event handled.</string>
-			</map>
-			<key>state_exit</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>tooltip</key>
-				<string>The state_exit event occurs whenever the state command is used to transition to another state. It is handled before the new states state_entry event.</string>
-			</map>
-			<key>timer</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>tooltip</key>
-				<string>This event is raised at regular intervals set by the llSetTimerEvent library function.</string>
-			</map>
-			<key>touch</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>NumberOfTouches</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>tooltip</key>
-				<string>This event is raised while a user is touching the object the script is attached to.
+   </map>
+   <key>state_entry</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>tooltip</key>
+    <string>The state_entry event occurs whenever a new state is entered, including at program start, and is always the first event handled.</string>
+   </map>
+   <key>state_exit</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>tooltip</key>
+    <string>The state_exit event occurs whenever the state command is used to transition to another state. It is handled before the new states state_entry event.</string>
+   </map>
+   <key>timer</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>tooltip</key>
+    <string>This event is raised at regular intervals set by the llSetTimerEvent library function.</string>
+   </map>
+   <key>touch</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>NumberOfTouches</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>tooltip</key>
+    <string>This event is raised while a user is touching the object the script is attached to.
 			The number of touching objects is passed to the script in the parameter.
 			Information on those objects may be gathered via the llDetected* library functions.</string>
-			</map>
-			<key>touch_end</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>NumberOfTouches</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>tooltip</key>
-				<string>This event is raised when a user stops touching the object the script is attached to. The number of touches is passed to the script in the parameter.
+   </map>
+   <key>touch_end</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>NumberOfTouches</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>tooltip</key>
+    <string>This event is raised when a user stops touching the object the script is attached to. The number of touches is passed to the script in the parameter.
 			Information on those objects may be gathered via the llDetected* library functions.</string>
-			</map>
-			<key>touch_start</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>NumberOfTouches</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>tooltip</key>
-				<string>This event is raised when a user first touches the object the script is attached to. The number of touches is passed to the script in the parameter.
+   </map>
+   <key>touch_start</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>NumberOfTouches</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>tooltip</key>
+    <string>This event is raised when a user first touches the object the script is attached to. The number of touches is passed to the script in the parameter.
 			Information on those objects may be gathered via the llDetected() library functions.</string>
-			</map>
-			<key>transaction_result</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>RequestID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-					<map>
-						<key>Success</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>Message</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-				</array>
-				<key>tooltip</key>
-				<string>Triggered by llTransferMoney() function.</string>
-			</map>
-		</map>
-		<key>functions</key>
-		<map>
-			<key>llAbs</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Value</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>integer</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the absolute (positive) version of Value.</string>
-			</map>
-			<key>llAcos</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Value</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>float</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the arc-cosine of Value, in radians.</string>
-			</map>
-			<key>llAddToLandBanList</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>ID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-					<map>
-						<key>Hours</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Add avatar ID to the parcel ban list for the specified number of Hours.\nA value of 0 for Hours will add the agent indefinitely.\nThe smallest value that Hours will accept is 0.01; anything smaller will be seen as 0.\nWhen values that small are used, it seems the function bans in approximately 30 second increments (Probably 36 second increments, as 0.01 of an hour is 36 seconds).\nResidents teleporting to a parcel where they are banned will be redirected to a neighbouring parcel.</string>
-			</map>
-			<key>llAddToLandPassList</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>ID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-					<map>
-						<key>Hours</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.1</real>
-				<key>tooltip</key>
-				<string>Add avatar ID to the land pass list, for a duration of Hours.</string>
-			</map>
-			<key>llAdjustSoundVolume</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Volume</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.1</real>
-				<key>tooltip</key>
-				<string>Adjusts the volume (0.0 - 1.0) of the currently playing attached sound started with llPlaySound or llLoopSound.\nAdjusts the volume of the currently playing attached sound started with llPlaySound or llLoopSound.\nThis function has no effect on sounds started with llTriggerSound.</string>
-			</map>
-			<key>llAllowInventoryDrop</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Flag</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>If Flag == TRUE, users without object modify permissions can still drop inventory items into the object.</string>
-			</map>
-			<key>llAngleBetween</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Rot1</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>rotation</string>
-						</map>
-					</map>
-					<map>
-						<key>Rot2</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>rotation</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>float</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the angle, in radians, between rotations Rot1 and Rot2.</string>
-			</map>
-			<key>llApplyImpulse</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Force</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-					<map>
-						<key>Local</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Applies impulse to the object.\nApplies the Force in local coordinates if Local == TRUE. Otherwise the Force is applied in global coordinates.\nThis function only works on physical objects.</string>
-			</map>
-			<key>llApplyRotationalImpulse</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Force</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-					<map>
-						<key>Local</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Applies rotational impulse to the object,\nThe force is in local coordinates, if Local == TRUE, otherwise the impulse is applied in global coordinates.\nThis function only works on physical objects.</string>
-			</map>
-			<key>llAsin</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Value</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>float</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the arc-sine, in radians, of Value.</string>
-			</map>
-			<key>llAtan2</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>y</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-					<map>
-						<key>x</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>float</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the arc-tangent2 of y, x.</string>
-			</map>
-			<key>llAttachToAvatar</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>AttachmentPoint</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Attach to avatar at point AttachmentPoint, if task has permissions to do so.\nAttach to avatar at point iAttachmentPoint.\nRequires the PERMISSION_ATTACH runtime permission.</string>
-			</map>
-			<key>llAttachToAvatarTemp</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>AttachPoint</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0</real>
-				<key>tooltip</key>
-				<string>Follows the same convention as llAttachToAvatar, with the exception that the object will not create new inventory for the user, and will disappear on detach or disconnect.</string>
-			</map>
-			<key>llAvatarOnLinkSitTarget</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>LinkNumber</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>key</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>If an avatar is sitting on the link's sit target, return the avatar's key, NULL_KEY otherwise.\nReturns a key that is the UUID of the user seated on the specified link's prim.</string>
-			</map>
-			<key>llAvatarOnSitTarget</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>key</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>If an avatar is seated on the sit target, returns the avatar's key, otherwise NULL_KEY.\nThis only will detect avatars sitting on sit targets defined with llSitTarget.</string>
-			</map>
-			<key>llAxes2Rot</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Forward</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-					<map>
-						<key>Left</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-					<map>
-						<key>Up</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>rotation</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the rotation represented by coordinate axes Forward, Left, and Up.</string>
-			</map>
-			<key>llAxisAngle2Rot</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Axis</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-					<map>
-						<key>Angle</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>rotation</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the rotation that is a generated Angle about Axis.</string>
-			</map>
-			<key>llBase64ToInteger</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Text</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>integer</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns an integer that is the Text, Base64 decoded as a big endian integer.\nReturns zero if Text is longer then 8 characters. If Text contains fewer then 6 characters, the return value is unpredictable.</string>
-			</map>
-			<key>llBase64ToString</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Text</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>string</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Converts a Base64 string to a conventional string.\nIf the conversion creates any unprintable characters, they are converted to question marks.</string>
-			</map>
-			<key>llBreakAllLinks</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>De-links all prims in the link set (requires permission PERMISSION_CHANGE_LINKS be set).</string>
-			</map>
-			<key>llBreakLink</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>LinkNumber</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>De-links the prim with the given link number (requires permission PERMISSION_CHANGE_LINKS be set).</string>
-			</map>
-			<key>llCastRay</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Start</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-					<map>
-						<key>End</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-					<map>
-						<key>Options</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real/>
-				<key>return</key>
-				<string>list</string>
-				<key>sleep</key>
-				<real/>
-				<key>tooltip</key>
-				<string>Casts a ray into the physics world from 'start' to 'end' and returns data according to details in Options.\nReports collision data for intersections with objects.\nReturn value: [UUID_1, {link_number_1}, hit_position_1, {hit_normal_1}, UUID_2, {link_number_2}, hit_position_2, {hit_normal_2}, ... , status_code] where {} indicates optional data.</string>
-			</map>
-			<key>llCeil</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Value</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>integer</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns smallest integer value &gt;= Value.</string>
-			</map>
-			<key>llClearCameraParams</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Resets all camera parameters to default values and turns off scripted camera control.</string>
-			</map>
-			<key>llClearLinkMedia</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Link</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>Face</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>0.0</real>
-				<key>return</key>
-				<string>integer</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Clears (deletes) the media and all parameters from the given Face on the linked prim.\nReturns an integer that is a STATUS_* flag, which details the success/failure of the operation.</string>
-			</map>
-			<key>llClearPrimMedia</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Face</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>integer</string>
-				<key>sleep</key>
-				<real>0.1</real>
-				<key>tooltip</key>
-				<string>Clears (deletes) the media and all parameters from the given Face.\nReturns an integer that is a STATUS_* flag which details the success/failure of the operation.</string>
-			</map>
-			<key>llCloseRemoteDataChannel</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>ChannelID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>1.0</real>
-				<key>tooltip</key>
-				<string>Closes the specified XML-RPC channel.</string>
-			</map>
-			<key>llCloud</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Offset</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>float</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the cloud density at the object's position + Offset.</string>
-			</map>
-			<key>llCollisionFilter</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>ObjectName</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>ObjectID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-					<map>
-						<key>Accept</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>If Accept == TRUE, only accept collisions with objects Name and ID, otherwise with objects not Name or ID.\nSpecify an empty string or NULL_KEY to not filter on the corresponding parameter.</string>
-			</map>
-			<key>llCollisionSound</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>ImpactSound</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>ImpactVolume</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Suppress default collision sounds, replace default impact sounds with ImpactSound.\nThe ImpactSound must be in the object inventory.\nSupply an empty string to suppress collision sounds.</string>
-			</map>
-			<key>llCollisionSprite</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>ImpactSprite</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Suppress default collision sprites, replace default impact sprite with ImpactSprite; found in the object inventory (empty string to just suppress).</string>
-			</map>
-			<key>llCos</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Theta</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>float</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the cosine of Theta (Theta in radians).</string>
-			</map>
-			<key>llCreateCharacter</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Options</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real/>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real/>
-				<key>tooltip</key>
-				<string>Convert link-set to AI/Physics character.\nCreates a path-finding entity, known as a "character", from the object containing the script. Required to activate use of path-finding functions.\nOptions is a list of key/value pairs.</string>
-			</map>
-			<key>llCreateLink</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>TargetPrim</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-					<map>
-						<key>Parent</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>1.0</real>
-				<key>tooltip</key>
-				<string>Attempt to link the object the script is in, to target (requires permission PERMISSION_CHANGE_LINKS be set).\nIf parent == TRUE, the object the script is attached to is the root.\nRequires permission PERMISSION_CHANGE_LINKS be set.</string>
-			</map>
-			<key>llCSV2List</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Text</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>list</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Create a list from a string of comma separated values specified in Text.</string>
-			</map>
-			<key>llDeleteCharacter</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real/>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real/>
-				<key>tooltip</key>
-				<string>Convert link-set from AI/Physics character to Physics object.\nConvert the current link-set back to a standard object, removing all path-finding properties.</string>
-			</map>
-			<key>llDeleteSubList</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Source</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-					<map>
-						<key>Start</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>End</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>list</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Removes the slice from start to end and returns the remainder of the list.\nRemove a slice from the list and return the remainder, start and end are inclusive.\nUsing negative numbers for start and/or end causes the index to count backwards from the length of the list, so 0, -1 would delete the entire list.\nIf Start is larger than End the list deleted is the exclusion of the entries; so 6, 4 would delete the entire list except for the 5th. list entry.</string>
-			</map>
-			<key>llDeleteSubString</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Source</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>Start</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>End</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>string</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Removes the indicated sub-string and returns the result.\nStart and End are inclusive.\nUsing negative numbers for Start and/or End causes the index to count backwards from the length of the string, so 0, -1 would delete the entire string.\nIf Start is larger than End, the sub-string is the exclusion of the entries; so 6, 4 would delete the entire string except for the 5th. character.</string>
-			</map>
-			<key>llDetachFromAvatar</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Remove the object containing the script from the avatar.</string>
-			</map>
-			<key>llDetectedGrab</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Number</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>vector</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the grab offset of a user touching the object.\nReturns &lt;0.0, 0.0, 0.0&gt; if Number is not a valid object.</string>
-			</map>
-			<key>llDetectedGroup</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Number</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>integer</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns TRUE if detected object or agent Number has the same user group active as this object.\nIt will return FALSE if the object or agent is in the group, but the group is not active.</string>
-			</map>
-			<key>llDetectedKey</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Number</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>key</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the key of detected object or avatar number.\nReturns NULL_KEY if Number is not a valid index.</string>
-			</map>
-			<key>llDetectedLinkNumber</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Number</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>integer</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the link position of the triggered event for touches and collisions only.\n0 for a non-linked object, 1 for the root of a linked object, 2 for the first child, etc.</string>
-			</map>
-			<key>llDetectedName</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Number</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>string</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the name of detected object or avatar number.\nReturns the name of detected object number.\nReturns empty string if Number is not a valid index.</string>
-			</map>
-			<key>llDetectedOwner</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Number</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>key</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the key of detected object's owner.\nReturns invalid key if Number is not a valid index.</string>
-			</map>
-			<key>llDetectedPos</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Number</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>vector</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the position of detected object or avatar number.\nReturns &lt;0.0, 0.0, 0.0&gt; if Number is not a valid index.</string>
-			</map>
-			<key>llDetectedRot</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Number</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>rotation</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the rotation of detected object or avatar number.\nReturns &lt;0.0, 0.0, 0.0, 1.0&gt; if Number is not a valid offset.</string>
-			</map>
-			<key>llDetectedTouchBinormal</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Index</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>vector</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the surface bi-normal for a triggered touch event.\nReturns a vector that is the surface bi-normal (tangent to the surface) where the touch event was triggered.</string>
-			</map>
-			<key>llDetectedTouchFace</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Index</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>integer</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the index of the face where the avatar clicked in a triggered touch event.</string>
-			</map>
-			<key>llDetectedTouchNormal</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Index</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>vector</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the surface normal for a triggered touch event.\nReturns a vector that is the surface normal (perpendicular to the surface) where the touch event was triggered.</string>
-			</map>
-			<key>llDetectedTouchPos</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Index</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>vector</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the position, in region coordinates, where the object was touched in a triggered touch event.\nUnless it is a HUD, in which case it returns the position relative to the attach point.</string>
-			</map>
-			<key>llDetectedTouchST</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Index</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>vector</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns a vector that is the surface coordinates where the prim was touched.\nThe X and Y vector positions contain the horizontal (S) and vertical (T) face coordinates respectively.\nEach component is in the interval [0.0, 1.0].\nTOUCH_INVALID_TEXCOORD is returned if the surface coordinates cannot be determined (e.g. when the viewer does not support this function).</string>
-			</map>
-			<key>llDetectedTouchUV</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Index</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>vector</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns a vector that is the texture coordinates for where the prim was touched.\nThe X and Y vector positions contain the U and V face coordinates respectively.\nTOUCH_INVALID_TEXCOORD is returned if the touch UV coordinates cannot be determined (e.g. when the viewer does not support this function).</string>
-			</map>
-			<key>llDetectedType</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Number</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>integer</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the type (AGENT, ACTIVE, PASSIVE, SCRIPTED) of detected object.\nReturns 0 if number is not a valid index.\nNote that number is a bit-field, so comparisons need to be a bitwise checked. e.g.:\ninteger iType = llDetectedType(0);\n{\n	// ...do stuff with the agent\n}</string>
-			</map>
-			<key>llDetectedVel</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Number</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>vector</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the velocity of the detected object Number.\nReturns&lt;0.0, 0.0, 0.0&gt; if Number is not a valid offset.</string>
-			</map>
-			<key>llDialog</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>AvatarID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-					<map>
-						<key>Text</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>Buttons</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-					<map>
-						<key>Channel</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.1</real>
-				<key>tooltip</key>
-				<string>Shows a dialog box on the avatar's screen with the message.\n
+   </map>
+   <key>transaction_result</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>RequestID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+     <map>
+      <key>Success</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>Message</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+    </array>
+    <key>tooltip</key>
+    <string>Triggered by llTransferMoney() function.</string>
+   </map>
+  </map>
+  <key>functions</key>
+  <map>
+   <key>llAbs</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Value</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>integer</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the absolute (positive) version of Value.</string>
+   </map>
+   <key>llAcos</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Value</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>float</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the arc-cosine of Value, in radians.</string>
+   </map>
+   <key>llAddToLandBanList</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>ID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+     <map>
+      <key>Hours</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Add avatar ID to the parcel ban list for the specified number of Hours.\nA value of 0 for Hours will add the agent indefinitely.\nThe smallest value that Hours will accept is 0.01; anything smaller will be seen as 0.\nWhen values that small are used, it seems the function bans in approximately 30 second increments (Probably 36 second increments, as 0.01 of an hour is 36 seconds).\nResidents teleporting to a parcel where they are banned will be redirected to a neighbouring parcel.</string>
+   </map>
+   <key>llAddToLandPassList</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>ID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+     <map>
+      <key>Hours</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.1</real>
+    <key>tooltip</key>
+    <string>Add avatar ID to the land pass list, for a duration of Hours.</string>
+   </map>
+   <key>llAdjustSoundVolume</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Volume</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.1</real>
+    <key>tooltip</key>
+    <string>Adjusts the volume (0.0 - 1.0) of the currently playing attached sound started with llPlaySound or llLoopSound.\nAdjusts the volume of the currently playing attached sound started with llPlaySound or llLoopSound.\nThis function has no effect on sounds started with llTriggerSound.</string>
+   </map>
+   <key>llAllowInventoryDrop</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Flag</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>If Flag == TRUE, users without object modify permissions can still drop inventory items into the object.</string>
+   </map>
+   <key>llAngleBetween</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Rot1</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>rotation</string>
+      </map>
+     </map>
+     <map>
+      <key>Rot2</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>rotation</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>float</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the angle, in radians, between rotations Rot1 and Rot2.</string>
+   </map>
+   <key>llApplyImpulse</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Force</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+     <map>
+      <key>Local</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Applies impulse to the object.\nApplies the Force in local coordinates if Local == TRUE. Otherwise the Force is applied in global coordinates.\nThis function only works on physical objects.</string>
+   </map>
+   <key>llApplyRotationalImpulse</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Force</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+     <map>
+      <key>Local</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Applies rotational impulse to the object,\nThe force is in local coordinates, if Local == TRUE, otherwise the impulse is applied in global coordinates.\nThis function only works on physical objects.</string>
+   </map>
+   <key>llAsin</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Value</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>float</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the arc-sine, in radians, of Value.</string>
+   </map>
+   <key>llAtan2</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>y</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+     <map>
+      <key>x</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>float</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the arc-tangent2 of y, x.</string>
+   </map>
+   <key>llAttachToAvatar</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>AttachmentPoint</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Attach to avatar at point AttachmentPoint, if task has permissions to do so.\nAttach to avatar at point iAttachmentPoint.\nRequires the PERMISSION_ATTACH runtime permission.</string>
+   </map>
+   <key>llAttachToAvatarTemp</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>AttachPoint</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0</real>
+    <key>tooltip</key>
+    <string>Follows the same convention as llAttachToAvatar, with the exception that the object will not create new inventory for the user, and will disappear on detach or disconnect.</string>
+   </map>
+   <key>llAvatarOnLinkSitTarget</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>LinkNumber</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>key</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>If an avatar is sitting on the link's sit target, return the avatar's key, NULL_KEY otherwise.\nReturns a key that is the UUID of the user seated on the specified link's prim.</string>
+   </map>
+   <key>llAvatarOnSitTarget</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>key</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>If an avatar is seated on the sit target, returns the avatar's key, otherwise NULL_KEY.\nThis only will detect avatars sitting on sit targets defined with llSitTarget.</string>
+   </map>
+   <key>llAxes2Rot</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Forward</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+     <map>
+      <key>Left</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+     <map>
+      <key>Up</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>rotation</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the rotation represented by coordinate axes Forward, Left, and Up.</string>
+   </map>
+   <key>llAxisAngle2Rot</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Axis</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+     <map>
+      <key>Angle</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>rotation</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the rotation that is a generated Angle about Axis.</string>
+   </map>
+   <key>llBase64ToInteger</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Text</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>integer</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns an integer that is the Text, Base64 decoded as a big endian integer.\nReturns zero if Text is longer then 8 characters. If Text contains fewer then 6 characters, the return value is unpredictable.</string>
+   </map>
+   <key>llBase64ToString</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Text</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>string</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Converts a Base64 string to a conventional string.\nIf the conversion creates any unprintable characters, they are converted to question marks.</string>
+   </map>
+   <key>llBreakAllLinks</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>De-links all prims in the link set (requires permission PERMISSION_CHANGE_LINKS be set).</string>
+   </map>
+   <key>llBreakLink</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>LinkNumber</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>De-links the prim with the given link number (requires permission PERMISSION_CHANGE_LINKS be set).</string>
+   </map>
+   <key>llCastRay</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Start</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+     <map>
+      <key>End</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+     <map>
+      <key>Options</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real/>
+    <key>return</key>
+    <string>list</string>
+    <key>sleep</key>
+    <real/>
+    <key>tooltip</key>
+    <string>Casts a ray into the physics world from 'start' to 'end' and returns data according to details in Options.\nReports collision data for intersections with objects.\nReturn value: [UUID_1, {link_number_1}, hit_position_1, {hit_normal_1}, UUID_2, {link_number_2}, hit_position_2, {hit_normal_2}, ... , status_code] where {} indicates optional data.</string>
+   </map>
+   <key>llCeil</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Value</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>integer</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns smallest integer value &gt;= Value.</string>
+   </map>
+   <key>llClearCameraParams</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Resets all camera parameters to default values and turns off scripted camera control.</string>
+   </map>
+   <key>llClearLinkMedia</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Link</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>Face</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>0.0</real>
+    <key>return</key>
+    <string>integer</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Clears (deletes) the media and all parameters from the given Face on the linked prim.\nReturns an integer that is a STATUS_* flag, which details the success/failure of the operation.</string>
+   </map>
+   <key>llClearPrimMedia</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Face</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>integer</string>
+    <key>sleep</key>
+    <real>0.1</real>
+    <key>tooltip</key>
+    <string>Clears (deletes) the media and all parameters from the given Face.\nReturns an integer that is a STATUS_* flag which details the success/failure of the operation.</string>
+   </map>
+   <key>llCloseRemoteDataChannel</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>ChannelID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>1.0</real>
+    <key>tooltip</key>
+    <string>Closes the specified XML-RPC channel.</string>
+   </map>
+   <key>llCloud</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Offset</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>float</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the cloud density at the object's position + Offset.</string>
+   </map>
+   <key>llCollisionFilter</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>ObjectName</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>ObjectID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+     <map>
+      <key>Accept</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>If Accept == TRUE, only accept collisions with objects Name and ID, otherwise with objects not Name or ID.\nSpecify an empty string or NULL_KEY to not filter on the corresponding parameter.</string>
+   </map>
+   <key>llCollisionSound</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>ImpactSound</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>ImpactVolume</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Suppress default collision sounds, replace default impact sounds with ImpactSound.\nThe ImpactSound must be in the object inventory.\nSupply an empty string to suppress collision sounds.</string>
+   </map>
+   <key>llCollisionSprite</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>ImpactSprite</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Suppress default collision sprites, replace default impact sprite with ImpactSprite; found in the object inventory (empty string to just suppress).</string>
+   </map>
+   <key>llCos</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Theta</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>float</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the cosine of Theta (Theta in radians).</string>
+   </map>
+   <key>llCreateCharacter</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Options</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real/>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real/>
+    <key>tooltip</key>
+    <string>Convert link-set to AI/Physics character.\nCreates a path-finding entity, known as a "character", from the object containing the script. Required to activate use of path-finding functions.\nOptions is a list of key/value pairs.</string>
+   </map>
+   <key>llCreateLink</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>TargetPrim</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+     <map>
+      <key>Parent</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>1.0</real>
+    <key>tooltip</key>
+    <string>Attempt to link the object the script is in, to target (requires permission PERMISSION_CHANGE_LINKS be set).\nIf parent == TRUE, the object the script is attached to is the root.\nRequires permission PERMISSION_CHANGE_LINKS be set.</string>
+   </map>
+   <key>llCSV2List</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Text</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>list</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Create a list from a string of comma separated values specified in Text.</string>
+   </map>
+   <key>llDeleteCharacter</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real/>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real/>
+    <key>tooltip</key>
+    <string>Convert link-set from AI/Physics character to Physics object.\nConvert the current link-set back to a standard object, removing all path-finding properties.</string>
+   </map>
+   <key>llDeleteSubList</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Source</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+     <map>
+      <key>Start</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>End</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>list</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Removes the slice from start to end and returns the remainder of the list.\nRemove a slice from the list and return the remainder, start and end are inclusive.\nUsing negative numbers for start and/or end causes the index to count backwards from the length of the list, so 0, -1 would delete the entire list.\nIf Start is larger than End the list deleted is the exclusion of the entries; so 6, 4 would delete the entire list except for the 5th. list entry.</string>
+   </map>
+   <key>llDeleteSubString</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Source</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>Start</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>End</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>string</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Removes the indicated sub-string and returns the result.\nStart and End are inclusive.\nUsing negative numbers for Start and/or End causes the index to count backwards from the length of the string, so 0, -1 would delete the entire string.\nIf Start is larger than End, the sub-string is the exclusion of the entries; so 6, 4 would delete the entire string except for the 5th. character.</string>
+   </map>
+   <key>llDetachFromAvatar</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Remove the object containing the script from the avatar.</string>
+   </map>
+   <key>llDetectedGrab</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Number</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>vector</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the grab offset of a user touching the object.\nReturns &lt;0.0, 0.0, 0.0&gt; if Number is not a valid object.</string>
+   </map>
+   <key>llDetectedGroup</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Number</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>integer</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns TRUE if detected object or agent Number has the same user group active as this object.\nIt will return FALSE if the object or agent is in the group, but the group is not active.</string>
+   </map>
+   <key>llDetectedKey</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Number</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>key</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the key of detected object or avatar number.\nReturns NULL_KEY if Number is not a valid index.</string>
+   </map>
+   <key>llDetectedLinkNumber</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Number</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>integer</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the link position of the triggered event for touches and collisions only.\n0 for a non-linked object, 1 for the root of a linked object, 2 for the first child, etc.</string>
+   </map>
+   <key>llDetectedName</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Number</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>string</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the name of detected object or avatar number.\nReturns the name of detected object number.\nReturns empty string if Number is not a valid index.</string>
+   </map>
+   <key>llDetectedOwner</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Number</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>key</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the key of detected object's owner.\nReturns invalid key if Number is not a valid index.</string>
+   </map>
+   <key>llDetectedPos</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Number</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>vector</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the position of detected object or avatar number.\nReturns &lt;0.0, 0.0, 0.0&gt; if Number is not a valid index.</string>
+   </map>
+   <key>llDetectedRot</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Number</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>rotation</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the rotation of detected object or avatar number.\nReturns &lt;0.0, 0.0, 0.0, 1.0&gt; if Number is not a valid offset.</string>
+   </map>
+   <key>llDetectedTouchBinormal</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Index</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>vector</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the surface bi-normal for a triggered touch event.\nReturns a vector that is the surface bi-normal (tangent to the surface) where the touch event was triggered.</string>
+   </map>
+   <key>llDetectedTouchFace</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Index</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>integer</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the index of the face where the avatar clicked in a triggered touch event.</string>
+   </map>
+   <key>llDetectedTouchNormal</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Index</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>vector</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the surface normal for a triggered touch event.\nReturns a vector that is the surface normal (perpendicular to the surface) where the touch event was triggered.</string>
+   </map>
+   <key>llDetectedTouchPos</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Index</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>vector</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the position, in region coordinates, where the object was touched in a triggered touch event.\nUnless it is a HUD, in which case it returns the position relative to the attach point.</string>
+   </map>
+   <key>llDetectedTouchST</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Index</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>vector</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns a vector that is the surface coordinates where the prim was touched.\nThe X and Y vector positions contain the horizontal (S) and vertical (T) face coordinates respectively.\nEach component is in the interval [0.0, 1.0].\nTOUCH_INVALID_TEXCOORD is returned if the surface coordinates cannot be determined (e.g. when the viewer does not support this function).</string>
+   </map>
+   <key>llDetectedTouchUV</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Index</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>vector</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns a vector that is the texture coordinates for where the prim was touched.\nThe X and Y vector positions contain the U and V face coordinates respectively.\nTOUCH_INVALID_TEXCOORD is returned if the touch UV coordinates cannot be determined (e.g. when the viewer does not support this function).</string>
+   </map>
+   <key>llDetectedType</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Number</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>integer</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the type (AGENT, ACTIVE, PASSIVE, SCRIPTED) of detected object.\nReturns 0 if number is not a valid index.\nNote that number is a bit-field, so comparisons need to be a bitwise checked. e.g.:\ninteger iType = llDetectedType(0);\n{\n	// ...do stuff with the agent\n}</string>
+   </map>
+   <key>llDetectedVel</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Number</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>vector</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the velocity of the detected object Number.\nReturns&lt;0.0, 0.0, 0.0&gt; if Number is not a valid offset.</string>
+   </map>
+   <key>llDialog</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>AvatarID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+     <map>
+      <key>Text</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>Buttons</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+     <map>
+      <key>Channel</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.1</real>
+    <key>tooltip</key>
+    <string>Shows a dialog box on the avatar's screen with the message.\n
 				Up to 12 strings in the list form buttons.\n
 				If a button is clicked, the name is chatted on Channel.\nOpens a "notify box" in the given avatars screen displaying the message.\n
 			Up to twelve buttons can be specified in a list of strings. When the user clicks a button, the name of the button is said on the specified channel.\n
@@ -8360,10061 +8515,10155 @@
 			llDialog(who, "Are you a boy or a girl?", [ "Boy", "Girl" ], -4913);\n
 			llDialog(who, "This shows only an OK button.", [], -192);\n
 			llDialog(who, "This chats so you can 'hear' it.", ["Hooray"], 0);</string>
-			</map>
-			<key>llDie</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>0.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Deletes the object.\nDelete the object which holds the script.</string>
-			</map>
-			<key>llDumpList2String</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Source</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-					<map>
-						<key>Separator</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>string</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the list as a single string, using Separator between the entries.\nWrite the list out as a single string, using Separator between values.</string>
-			</map>
-			<key>llEdgeOfWorld</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Position</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-					<map>
-						<key>Direction</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>integer</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Checks to see whether the border hit by Direction from Position is the edge of the world (has no neighboring region).\nReturns TRUE if the line along Direction from Position hits the edge of the world in the current simulator, returns FALSE if that edge crosses into another simulator.</string>
-			</map>
-			<key>llEjectFromLand</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>AvatarID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Ejects AvatarID from land that you own.\nEjects AvatarID from land that the object owner (group or resident) owns.</string>
-			</map>
-			<key>llEmail</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Address</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>Subject</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>Text</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>20.0</real>
-				<key>tooltip</key>
-				<string>Sends email to Address with Subject and Message.\nSends an email to Address with Subject and Message.</string>
-			</map>
-			<key>llEscapeURL</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>URL</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>string</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns an escaped/encoded version of url, replacing spaces with %20 etc.\nReturns the string that is the URL-escaped version of URL (replacing spaces with %20, etc.).\n
+   </map>
+   <key>llDie</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>0.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Deletes the object.\nDelete the object which holds the script.</string>
+   </map>
+   <key>llDumpList2String</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Source</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+     <map>
+      <key>Separator</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>string</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the list as a single string, using Separator between the entries.\nWrite the list out as a single string, using Separator between values.</string>
+   </map>
+   <key>llEdgeOfWorld</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Position</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+     <map>
+      <key>Direction</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>integer</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Checks to see whether the border hit by Direction from Position is the edge of the world (has no neighboring region).\nReturns TRUE if the line along Direction from Position hits the edge of the world in the current simulator, returns FALSE if that edge crosses into another simulator.</string>
+   </map>
+   <key>llEjectFromLand</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>AvatarID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Ejects AvatarID from land that you own.\nEjects AvatarID from land that the object owner (group or resident) owns.</string>
+   </map>
+   <key>llEmail</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Address</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>Subject</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>Text</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>20.0</real>
+    <key>tooltip</key>
+    <string>Sends email to Address with Subject and Message.\nSends an email to Address with Subject and Message.</string>
+   </map>
+   <key>llEscapeURL</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>URL</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>string</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns an escaped/encoded version of url, replacing spaces with %20 etc.\nReturns the string that is the URL-escaped version of URL (replacing spaces with %20, etc.).\n
 			This function returns the UTF-8 encoded escape codes for selected characters.</string>
-			</map>
-			<key>llEuler2Rot</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Vector</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>rotation</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the rotation representation of the Euler angles.\nReturns the rotation represented by the Euler Angle.</string>
-			</map>
-			<key>llEvade</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>TargetID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-					<map>
-						<key>Options</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real/>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real/>
-				<key>tooltip</key>
-				<string>Evade a specified target.\nCharacters will (roughly) try to hide from their pursuers if there is a good hiding spot along their fleeing path. Hiding means no direct line of sight from the head of the character (centre of the top of its physics bounding box) to the head of its pursuer and no direct path between the two on the navigation-mesh.</string>
-			</map>
-			<key>llExecCharacterCmd</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Command</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>Options</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real/>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real/>
-				<key>tooltip</key>
-				<string>Execute a character command.\nSend a command to the path system.\n
+   </map>
+   <key>llEuler2Rot</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Vector</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>rotation</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the rotation representation of the Euler angles.\nReturns the rotation represented by the Euler Angle.</string>
+   </map>
+   <key>llEvade</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>TargetID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+     <map>
+      <key>Options</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real/>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real/>
+    <key>tooltip</key>
+    <string>Evade a specified target.\nCharacters will (roughly) try to hide from their pursuers if there is a good hiding spot along their fleeing path. Hiding means no direct line of sight from the head of the character (centre of the top of its physics bounding box) to the head of its pursuer and no direct path between the two on the navigation-mesh.</string>
+   </map>
+   <key>llExecCharacterCmd</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Command</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>Options</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real/>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real/>
+    <key>tooltip</key>
+    <string>Execute a character command.\nSend a command to the path system.\n
 			Currently only supports stopping the current path-finding operation or causing the character to jump.</string>
-			</map>
-			<key>llFabs</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Value</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>float</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the positive version of Value.\nReturns the absolute value of Value.</string>
-			</map>
-			<key>llFleeFrom</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Source</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-					<map>
-						<key>Distance</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-					<map>
-						<key>Options</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real/>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real/>
-				<key>tooltip</key>
-				<string>Flee from a point.\nDirects a character (llCreateCharacter) to keep away from a defined position in the region or adjacent regions.</string>
-			</map>
-			<key>llFloor</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Value</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>integer</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns largest integer value &lt;= Value.</string>
-			</map>
-			<key>llForceMouselook</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Enable</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>If Enable is TRUE any avatar that sits on this object is forced into mouse-look mode.\nAfter calling this function with Enable set to TRUE, any agent sitting down on the prim will be forced into mouse-look.\n
+   </map>
+   <key>llFabs</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Value</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>float</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the positive version of Value.\nReturns the absolute value of Value.</string>
+   </map>
+   <key>llFleeFrom</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Source</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+     <map>
+      <key>Distance</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+     <map>
+      <key>Options</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real/>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real/>
+    <key>tooltip</key>
+    <string>Flee from a point.\nDirects a character (llCreateCharacter) to keep away from a defined position in the region or adjacent regions.</string>
+   </map>
+   <key>llFloor</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Value</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>integer</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns largest integer value &lt;= Value.</string>
+   </map>
+   <key>llForceMouselook</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Enable</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>If Enable is TRUE any avatar that sits on this object is forced into mouse-look mode.\nAfter calling this function with Enable set to TRUE, any agent sitting down on the prim will be forced into mouse-look.\n
 			Just like llSitTarget, this changes a permanent property of the prim (not the object) and needs to be reset by calling this function with Enable set to FALSE in order to disable it.</string>
-			</map>
-			<key>llFrand</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Magnitude</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>float</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns a pseudo random number in the range [0, Magnitude] or [Magnitude, 0].\nReturns a pseudo-random number between [0, Magnitude].</string>
-			</map>
-			<key>llGenerateKey</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>0</real>
-				<key>return</key>
-				<string>key</string>
-				<key>sleep</key>
-				<real>0</real>
-				<key>tooltip</key>
-				<string>Generates a key (SHA-1 hash) using UUID generation to create a unique key.\nAs the UUID produced is versioned, it should never return a value of NULL_KEY.\nThe specific UUID version is an implementation detail that has changed in the past and may change again in the future. Do not depend upon the UUID that is returned to be version 5 SHA-1 hash.</string>
-			</map>
-			<key>llGetAccel</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>vector</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the acceleration of the object relative to the region's axes.\nGets the acceleration of the object.</string>
-			</map>
-			<key>llGetAgentInfo</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>AvatarID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>integer</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns an integer bit-field containing the agent information about id.\n
+   </map>
+   <key>llFrand</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Magnitude</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>float</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns a pseudo random number in the range [0, Magnitude] or [Magnitude, 0].\nReturns a pseudo-random number between [0, Magnitude].</string>
+   </map>
+   <key>llGenerateKey</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>0</real>
+    <key>return</key>
+    <string>key</string>
+    <key>sleep</key>
+    <real>0</real>
+    <key>tooltip</key>
+    <string>Generates a key (SHA-1 hash) using UUID generation to create a unique key.\nAs the UUID produced is versioned, it should never return a value of NULL_KEY.\nThe specific UUID version is an implementation detail that has changed in the past and may change again in the future. Do not depend upon the UUID that is returned to be version 5 SHA-1 hash.</string>
+   </map>
+   <key>llGetAccel</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>vector</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the acceleration of the object relative to the region's axes.\nGets the acceleration of the object.</string>
+   </map>
+   <key>llGetAgentInfo</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>AvatarID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>integer</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns an integer bit-field containing the agent information about id.\n
 				Returns AGENT_FLYING, AGENT_ATTACHMENTS, AGENT_SCRIPTED, AGENT_SITTING, AGENT_ON_OBJECT, AGENT_MOUSELOOK, AGENT_AWAY, AGENT_BUSY, AGENT_TYPING, AGENT_CROUCHING, AGENT_ALWAYS_RUN, AGENT_WALKING and/or AGENT_IN_AIR.\nReturns information about the given agent ID as a bit-field of agent info constants.</string>
-			</map>
-			<key>llGetAgentLanguage</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>AvatarID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>string</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the language code of the preferred interface language of the avatar.\nReturns a string that is the language code of the preferred interface language of the resident.</string>
-			</map>
-			<key>llGetAgentList</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Scope</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>Options</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>list</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Requests a list of agents currently in the region, limited by the scope parameter.\nReturns a list [key UUID-0, key UUID-1, ..., key UUID-n] or [string error_msg] - returns avatar keys for all agents in the region limited to the area(s) specified by scope</string>
-			</map>
-			<key>llGetAgentSize</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>AvatarID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>vector</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>If the avatar is in the same region, returns the size of the bounding box of the requested avatar by id, otherwise returns ZERO_VECTOR.\nIf the agent is in the same region as the object, returns the size of the avatar.</string>
-			</map>
-			<key>llGetAlpha</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Face</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>float</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the alpha value of Face.\nReturns the 'alpha' of the given face. If face is ALL_SIDES the value returned is the mean average of all faces.</string>
-			</map>
-			<key>llGetAndResetTime</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>float</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the script time in seconds and then resets the script timer to zero.\nGets the time in seconds since starting and resets the time to zero.</string>
-			</map>
-			<key>llGetAnimation</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>AvatarID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>string</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the name of the currently playing locomotion animation for the avatar id.\nReturns the currently playing animation for the specified avatar ID.</string>
-			</map>
-			<key>llGetAnimationList</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>AvatarID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>list</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns a list of keys of playing animations for an avatar.\nReturns a list of keys of all playing animations for the specified avatar ID.</string>
-			</map>
-			<key>llGetAnimationOverride</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>AnimationState</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>0</real>
-				<key>return</key>
-				<string>string</string>
-				<key>sleep</key>
-				<real>0</real>
-				<key>tooltip</key>
-				<string>Returns a string that is the name of the animation that is used for the specified animation state\nTo use this function the script must obtain either the PERMISSION_OVERRIDE_ANIMATIONS or PERMISSION_TRIGGER_ANIMATION permission (automatically granted to attached objects).</string>
-			</map>
-			<key>llGetAttached</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>integer</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the object's attachment point, or 0 if not attached.\nReturns the object attachment point, or 0 if not attached.</string>
-			</map>
-			<key>llGetBoundingBox</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>ID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>list</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the bounding box around the object (including any linked prims) relative to its root prim, as a list in the format [ (vector) min_corner, (vector) max_corner ].\nReturns the bounding box around the object or avatar with the specified key (including any linked prims) relative to the\n
+   </map>
+   <key>llGetAgentLanguage</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>AvatarID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>string</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the language code of the preferred interface language of the avatar.\nReturns a string that is the language code of the preferred interface language of the resident.</string>
+   </map>
+   <key>llGetAgentList</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Scope</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>Options</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>list</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Requests a list of agents currently in the region, limited by the scope parameter.\nReturns a list [key UUID-0, key UUID-1, ..., key UUID-n] or [string error_msg] - returns avatar keys for all agents in the region limited to the area(s) specified by scope</string>
+   </map>
+   <key>llGetAgentSize</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>AvatarID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>vector</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>If the avatar is in the same region, returns the size of the bounding box of the requested avatar by id, otherwise returns ZERO_VECTOR.\nIf the agent is in the same region as the object, returns the size of the avatar.</string>
+   </map>
+   <key>llGetAlpha</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Face</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>float</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the alpha value of Face.\nReturns the 'alpha' of the given face. If face is ALL_SIDES the value returned is the mean average of all faces.</string>
+   </map>
+   <key>llGetAndResetTime</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>float</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the script time in seconds and then resets the script timer to zero.\nGets the time in seconds since starting and resets the time to zero.</string>
+   </map>
+   <key>llGetAnimation</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>AvatarID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>string</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the name of the currently playing locomotion animation for the avatar id.\nReturns the currently playing animation for the specified avatar ID.</string>
+   </map>
+   <key>llGetAnimationList</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>AvatarID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>list</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns a list of keys of playing animations for an avatar.\nReturns a list of keys of all playing animations for the specified avatar ID.</string>
+   </map>
+   <key>llGetAnimationOverride</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>AnimationState</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>0</real>
+    <key>return</key>
+    <string>string</string>
+    <key>sleep</key>
+    <real>0</real>
+    <key>tooltip</key>
+    <string>Returns a string that is the name of the animation that is used for the specified animation state\nTo use this function the script must obtain either the PERMISSION_OVERRIDE_ANIMATIONS or PERMISSION_TRIGGER_ANIMATION permission (automatically granted to attached objects).</string>
+   </map>
+   <key>llGetAttached</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>integer</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the object's attachment point, or 0 if not attached.\nReturns the object attachment point, or 0 if not attached.</string>
+   </map>
+   <key>llGetBoundingBox</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>ID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>list</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the bounding box around the object (including any linked prims) relative to its root prim, as a list in the format [ (vector) min_corner, (vector) max_corner ].\nReturns the bounding box around the object or avatar with the specified key (including any linked prims) relative to the\n
 			root prim, as a list: [ (vector) min_corner, (vector) max_corner ]</string>
-			</map>
-			<key>llGetCameraPos</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>vector</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the current camera position for the agent the task has permissions for.\nReturns the position of the camera, of the user that granted the script PERMISSION_TRACK_CAMERA. If no user has granted the permission, it returns ZERO_VECTOR.</string>
-			</map>
-			<key>llGetCameraRot</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>rotation</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the current camera orientation for the agent the task has permissions for.\nReturns the rotation of the camera, of the user who has granted this script PERMISSION_TRACK_CAMERA. If no user has granted the permission, it returns ZERO_ROTATION.\n
+   </map>
+   <key>llGetCameraPos</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>vector</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the current camera position for the agent the task has permissions for.\nReturns the position of the camera, of the user that granted the script PERMISSION_TRACK_CAMERA. If no user has granted the permission, it returns ZERO_VECTOR.</string>
+   </map>
+   <key>llGetCameraRot</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>rotation</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the current camera orientation for the agent the task has permissions for.\nReturns the rotation of the camera, of the user who has granted this script PERMISSION_TRACK_CAMERA. If no user has granted the permission, it returns ZERO_ROTATION.\n
 			The key of the user whose camera is being tracked, can be obtained using llGetPermissionsKey.</string>
-			</map>
-			<key>llGetCenterOfMass</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>vector</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the prim's centre of mass (unless called from the root prim, where it returns the object's centre of mass).</string>
-			</map>
-			<key>llGetClosestNavPoint</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Point</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-					<map>
-						<key>Options</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real/>
-				<key>return</key>
-				<string>list</string>
-				<key>sleep</key>
-				<real/>
-				<key>tooltip</key>
-				<string>Get the closest navigable point to the point provided.\nThe function accepts a point in region-local space (like all the other path-finding methods) and returns either an empty list or a list containing a single vector which is the closest point on the navigation-mesh to the point provided.</string>
-			</map>
-			<key>llGetColor</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Face</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>vector</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the color on Face.\nReturns the colour of Face as a vector of red, green, and blue values between 0 and 1. If face is ALL_SIDES the colour returned is the mean average of each channel.</string>
-			</map>
-			<key>llGetCreator</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>key</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns a key for the creator of the prim.\nReturns the key of the object's original creator. Similar to llGetOwner.</string>
-			</map>
-			<key>llGetDate</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>string</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the current date in the UTC time zone in the format YYYY-MM-DD.\nReturns the current UTC date as YYYY-MM-DD.</string>
-			</map>
-			<key>llGetDisplayName</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>AvatarID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>string</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the name of an avatar, if the avatar is in the current region, and the name has been cached, otherwise the same as llGetUsername.	Use llRequestDisplayName if you absolutely must have the display name.\nReturns a string that is the non-unique display name of the avatar specified by AvatarID.\n
+   </map>
+   <key>llGetCenterOfMass</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>vector</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the prim's centre of mass (unless called from the root prim, where it returns the object's centre of mass).</string>
+   </map>
+   <key>llGetClosestNavPoint</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Point</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+     <map>
+      <key>Options</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real/>
+    <key>return</key>
+    <string>list</string>
+    <key>sleep</key>
+    <real/>
+    <key>tooltip</key>
+    <string>Get the closest navigable point to the point provided.\nThe function accepts a point in region-local space (like all the other path-finding methods) and returns either an empty list or a list containing a single vector which is the closest point on the navigation-mesh to the point provided.</string>
+   </map>
+   <key>llGetColor</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Face</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>vector</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the color on Face.\nReturns the colour of Face as a vector of red, green, and blue values between 0 and 1. If face is ALL_SIDES the colour returned is the mean average of each channel.</string>
+   </map>
+   <key>llGetCreator</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>key</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns a key for the creator of the prim.\nReturns the key of the object's original creator. Similar to llGetOwner.</string>
+   </map>
+   <key>llGetDate</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>string</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the current date in the UTC time zone in the format YYYY-MM-DD.\nReturns the current UTC date as YYYY-MM-DD.</string>
+   </map>
+   <key>llGetDisplayName</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>AvatarID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>string</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the name of an avatar, if the avatar is in the current region, and the name has been cached, otherwise the same as llGetUsername.	Use llRequestDisplayName if you absolutely must have the display name.\nReturns a string that is the non-unique display name of the avatar specified by AvatarID.\n
 			AvatarID must specify a valid avatar key, present in or otherwise known to the region in which the script is running, otherwise an empty string is returned.\n
 			This function will still return a valid display name if the avatar is a child agent of the region (i.e., in an adjacent region, but presently able to see into the one the script is in), or for a short period after the avatar leaves the region (specifically, when the client completely disconnects from the region, either as a main or child agent).</string>
-			</map>
-			<key>llGetEnergy</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>float</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns how much energy is in the object as a percentage of maximum.</string>
-			</map>
-			<key>llGetEnv</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>DataRequest</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>string</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns a string with the requested data about the region.</string>
-			</map>
-			<key>llGetForce</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>vector</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the force (if the script is physical).\nReturns the current force if the script is physical.</string>
-			</map>
-			<key>llGetFreeMemory</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>integer</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the number of free bytes of memory the script can use.\nReturns the available free space for the current script. This is inaccurate with LSO.</string>
-			</map>
-			<key>llGetFreeURLs</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>integer</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the number of available URLs for the current script.\nReturns an integer that is the number of available URLs.</string>
-			</map>
-			<key>llGetGeometricCenter</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>vector</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the geometric center of the linked set the script is attached to.\nReturns the geometric centre of the linked set the script is in relative to the object's position (the position of the root prim of a linked set).\n
+   </map>
+   <key>llGetEnergy</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>float</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns how much energy is in the object as a percentage of maximum.</string>
+   </map>
+   <key>llGetEnv</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>DataRequest</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>string</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns a string with the requested data about the region.</string>
+   </map>
+   <key>llGetForce</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>vector</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the force (if the script is physical).\nReturns the current force if the script is physical.</string>
+   </map>
+   <key>llGetFreeMemory</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>integer</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the number of free bytes of memory the script can use.\nReturns the available free space for the current script. This is inaccurate with LSO.</string>
+   </map>
+   <key>llGetFreeURLs</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>integer</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the number of available URLs for the current script.\nReturns an integer that is the number of available URLs.</string>
+   </map>
+   <key>llGetGeometricCenter</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>vector</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the geometric center of the linked set the script is attached to.\nReturns the geometric centre of the linked set the script is in relative to the object's position (the position of the root prim of a linked set).\n
 			To get the object's position, use llGetPos.</string>
-			</map>
-			<key>llGetGMTclock</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>float</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the time in seconds since midnight GMT.\nGets the time in seconds since midnight in GMT/UTC.</string>
-			</map>
-			<key>llGetHTTPHeader</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>HTTPRequestID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-					<map>
-						<key>Header</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>string</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the value for header for request_id.\nReturns a string that is the value of the Header for HTTPRequestID.</string>
-			</map>
-			<key>llGetInventoryCreator</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>InventoryItem</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>key</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns a key for the creator of the inventory item.\nThis function returns the UUID of the creator of item. If item is not found in inventory, the object says "No item named 'name' ".</string>
-			</map>
-			<key>llGetInventoryKey</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>InventoryItem</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>key</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the key that is the UUID of the inventory named.\nReturns the key of the inventory named.</string>
-			</map>
-			<key>llGetInventoryName</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>InventoryType</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>Index</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>string</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the name of the inventory item number of a given type.\nGet the name of the inventory Index number of InventoryType.\n
+   </map>
+   <key>llGetGMTclock</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>float</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the time in seconds since midnight GMT.\nGets the time in seconds since midnight in GMT/UTC.</string>
+   </map>
+   <key>llGetHTTPHeader</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>HTTPRequestID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+     <map>
+      <key>Header</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>string</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the value for header for request_id.\nReturns a string that is the value of the Header for HTTPRequestID.</string>
+   </map>
+   <key>llGetInventoryCreator</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>InventoryItem</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>key</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns a key for the creator of the inventory item.\nThis function returns the UUID of the creator of item. If item is not found in inventory, the object says "No item named 'name'".</string>
+   </map>
+   <key>llGetInventoryKey</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>InventoryItem</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>key</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the key that is the UUID of the inventory named.\nReturns the key of the inventory named.</string>
+   </map>
+   <key>llGetInventoryName</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>InventoryType</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>Index</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>string</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the name of the inventory item number of a given type.\nGet the name of the inventory Index number of InventoryType.\n
 			Use the inventory constants INVENTORY_* to specify the type.</string>
-			</map>
-			<key>llGetInventoryNumber</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>InventoryType</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>integer</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the number of items of a given type (INVENTORY_* flag) in the prim's inventory.\nGet the number of items of InventoryType in the object inventory.\n
+   </map>
+   <key>llGetInventoryNumber</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>InventoryType</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>integer</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the number of items of a given type (INVENTORY_* flag) in the prim's inventory.\nGet the number of items of InventoryType in the object inventory.\n
 			Use the inventory constants INVENTORY_* to specify the type.</string>
-			</map>
-			<key>llGetInventoryPermMask</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>InventoryItem</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>BitMask</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>integer</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the requested permission mask for the inventory item.\nReturns the requested permission mask for the inventory item defined by InventoryItem. If item is not in the object's inventory, llGetInventoryPermMask returns FALSE and causes the object to say "No item named '&lt;item&gt;'", where "&lt;item&gt;" is item.\n
+   </map>
+   <key>llGetInventoryPermMask</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>InventoryItem</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>BitMask</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>integer</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the requested permission mask for the inventory item.\nReturns the requested permission mask for the inventory item defined by InventoryItem. If item is not in the object's inventory, llGetInventoryPermMask returns FALSE and causes the object to say "No item named '&lt;item&gt;'", where "&lt;item&gt;" is item.\n
 			If this is used to determine whether or not an inventory item exists within the object, it will have the side effect of spamming chat. So please don't ;-)</string>
-			</map>
-			<key>llGetInventoryType</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>InventoryItem</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>integer</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the type of the inventory item named.\nReturns the type of the inventory item named.\n
+   </map>
+   <key>llGetInventoryType</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>InventoryItem</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>integer</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the type of the inventory item named.\nReturns the type of the inventory item named.\n
 			Remember, like all inventory functions, llGetInventoryType is case-sensitive.</string>
-			</map>
-			<key>llGetKey</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>key</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the key of the prim the script is attached to.\nGet the key for the object which has this script.</string>
-			</map>
-			<key>llGetLandOwnerAt</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Position</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>key</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the key of the land owner, returns NULL_KEY if public.\nReturns the key of the land owner at Position, or NULL_KEY if public.</string>
-			</map>
-			<key>llGetLinkKey</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>LinkNumber</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>key</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the key of the linked prim LinkNumber.\nReturns the key of LinkNumber in the link set.</string>
-			</map>
-			<key>llGetLinkMedia</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>LinkNumber</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>Face</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>Parameters</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>0.0</real>
-				<key>return</key>
-				<string>list</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Get the media parameters for a particular face on linked prim, given the desired list of parameter names. Returns a list of values in the order requested.	Returns an empty list if no media exists on the face.\nGet the desired list of named media parameters, for a particular face, of a linked prim.\n
+   </map>
+   <key>llGetKey</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>key</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the key of the prim the script is attached to.\nGet the key for the object which has this script.</string>
+   </map>
+   <key>llGetLandOwnerAt</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Position</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>key</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the key of the land owner, returns NULL_KEY if public.\nReturns the key of the land owner at Position, or NULL_KEY if public.</string>
+   </map>
+   <key>llGetLinkKey</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>LinkNumber</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>key</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the key of the linked prim LinkNumber.\nReturns the key of LinkNumber in the link set.</string>
+   </map>
+   <key>llGetLinkMedia</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>LinkNumber</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>Face</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>Parameters</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>0.0</real>
+    <key>return</key>
+    <string>list</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Get the media parameters for a particular face on linked prim, given the desired list of parameter names. Returns a list of values in the order requested.	Returns an empty list if no media exists on the face.\nGet the desired list of named media parameters, for a particular face, of a linked prim.\n
 				Returns a list of values in the order requested.</string>
-			</map>
-			<key>llGetLinkName</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>LinkNumber</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>string</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the name of LinkNumber in a link set.\nReturns the name of LinkNumber the link set.</string>
-			</map>
-			<key>llGetLinkNumber</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>integer</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the link number of the prim containing the script (0 means not linked, 1 the prim is the root, 2 the prim is the first child, etc.).\nReturns the link number of the prim containing the script. 0 means no link, 1 the root, 2 for first child, etc.</string>
-			</map>
-			<key>llGetLinkNumberOfSides</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>LinkNumber</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>integer</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the number of sides of the specified linked prim.\nReturns an integer that is the number of faces (or sides) of the prim link.</string>
-			</map>
-			<key>llGetLinkPrimitiveParams</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>LinkNumber</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>Parameters</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>list</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Get primitive parameters for LinkNumber based on rules.\nIdentical to llGetPrimitiveParams except that it acts on the prim specified by the link number given.\n
+   </map>
+   <key>llGetLinkName</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>LinkNumber</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>string</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the name of LinkNumber in a link set.\nReturns the name of LinkNumber the link set.</string>
+   </map>
+   <key>llGetLinkNumber</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>integer</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the link number of the prim containing the script (0 means not linked, 1 the prim is the root, 2 the prim is the first child, etc.).\nReturns the link number of the prim containing the script. 0 means no link, 1 the root, 2 for first child, etc.</string>
+   </map>
+   <key>llGetLinkNumberOfSides</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>LinkNumber</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>integer</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the number of sides of the specified linked prim.\nReturns an integer that is the number of faces (or sides) of the prim link.</string>
+   </map>
+   <key>llGetLinkPrimitiveParams</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>LinkNumber</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>Parameters</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>list</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Get primitive parameters for LinkNumber based on rules.\nIdentical to llGetPrimitiveParams except that it acts on the prim specified by the link number given.\n
 			Returns the list of primitive attributes requested in the Parameters list for link.\n
 			PRIM_* flags can be broken into three categories, face flags, prim flags, and object flags.\n
 			* Supplying a prim or object flag will return that flags attributes.\n
 			* Face flags require the user to also supply a side parameter.</string>
-			</map>
-			<key>llGetListEntryType</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>ListVariable</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-					<map>
-						<key>Index</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>integer</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the type of the index entry in the list (TYPE_INTEGER, TYPE_FLOAT, TYPE_STRING, TYPE_KEY, TYPE_VECTOR, TYPE_ROTATION, or TYPE_INVALID if index is off list).\nReturns the type of the variable at Index in ListVariable.</string>
-			</map>
-			<key>llGetListLength</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>ListVariable</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>integer</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the number of elements in the list.\nReturns the number of elements in ListVariable.</string>
-			</map>
-			<key>llGetLocalPos</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>vector</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the position relative to the root.\nReturns the local position of a child object relative to the root.</string>
-			</map>
-			<key>llGetLocalRot</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>rotation</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the rotation local to the root.\nReturns the local rotation of a child object relative to the root.</string>
-			</map>
-			<key>llGetMass</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>float</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the mass of object that the script is attached to.\nReturns the scripted object's mass. When called from a script in a link-set, the parent will return the sum of the link-set weights, while a child will return just its own mass. When called from a script inside an attachment, this function will return the mass of the avatar it's attached to, not its own.</string>
-			</map>
-			<key>llGetMassMKS</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real/>
-				<key>return</key>
-				<string>float</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Acts as llGetMass(), except that the units of the value returned are Kg.</string>
-			</map>
-			<key>llGetMemoryLimit</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real/>
-				<key>return</key>
-				<string>integer</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Get the maximum memory a script can use, in bytes.\nGet the maximum memory a script can use.\n
+   </map>
+   <key>llGetListEntryType</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>ListVariable</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+     <map>
+      <key>Index</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>integer</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the type of the index entry in the list (TYPE_INTEGER, TYPE_FLOAT, TYPE_STRING, TYPE_KEY, TYPE_VECTOR, TYPE_ROTATION, or TYPE_INVALID if index is off list).\nReturns the type of the variable at Index in ListVariable.</string>
+   </map>
+   <key>llGetListLength</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>ListVariable</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>integer</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the number of elements in the list.\nReturns the number of elements in ListVariable.</string>
+   </map>
+   <key>llGetLocalPos</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>vector</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the position relative to the root.\nReturns the local position of a child object relative to the root.</string>
+   </map>
+   <key>llGetLocalRot</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>rotation</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the rotation local to the root.\nReturns the local rotation of a child object relative to the root.</string>
+   </map>
+   <key>llGetMass</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>float</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the mass of object that the script is attached to.\nReturns the scripted object's mass. When called from a script in a link-set, the parent will return the sum of the link-set weights, while a child will return just its own mass. When called from a script inside an attachment, this function will return the mass of the avatar it's attached to, not its own.</string>
+   </map>
+   <key>llGetMassMKS</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real/>
+    <key>return</key>
+    <string>float</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Acts as llGetMass(), except that the units of the value returned are Kg.</string>
+   </map>
+   <key>llGetMaxScaleFactor</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>float</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns a float that is the largest scaling factor that can be used with llScaleByFactor to resize the object. This maximum is determined by the Linkability Rules and prim scale limits.</string>
+   </map>
+   <key>llGetMemoryLimit</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real/>
+    <key>return</key>
+    <string>integer</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Get the maximum memory a script can use, in bytes.\nGet the maximum memory a script can use.\n
 			Returns the integer amount of memory the script can use in bytes.</string>
-			</map>
-			<key>llGetNextEmail</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Address</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>Subject</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Get the next waiting email with appropriate address and/or subject (if blank they are ignored).\nGet the next waiting email with appropriate address and/or subject.\n
+   </map>
+   <key>llGetMinScaleFactor</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>float</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns a float that is the smallest scaling factor that can be used with llScaleByFactor to resize the object. This minimum is determined by the prim scale limits.</string>
+   </map>
+   <key>llGetNextEmail</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Address</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>Subject</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Get the next waiting email with appropriate address and/or subject (if blank they are ignored).\nGet the next waiting email with appropriate address and/or subject.\n
 				If the parameters are blank, they are not used for filtering.</string>
-			</map>
-			<key>llGetNotecardLine</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>NotecardName</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>LineNumber</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>key</string>
-				<key>sleep</key>
-				<real>0.1</real>
-				<key>tooltip</key>
-				<string>Returns line from NotecardName via the dataserver event.\nThis function fetches LineNumber from NotecardName and returns the data through the dataserver event. The line count starts at zero.\n
+   </map>
+   <key>llGetNotecardLine</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>NotecardName</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>LineNumber</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>key</string>
+    <key>sleep</key>
+    <real>0.1</real>
+    <key>tooltip</key>
+    <string>Returns line from NotecardName via the dataserver event.\nThis function fetches LineNumber from NotecardName and returns the data through the dataserver event. The line count starts at zero.\n
 				If the requested line is passed the end of the note-card the dataserver event will return the constant EOF string.\n
 				The key returned by this function is a unique identifier which will be supplied to the dataserver event in the requested parameter.</string>
-			</map>
-			<key>llGetNumberOfNotecardLines</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>NotecardName</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>key</string>
-				<key>sleep</key>
-				<real>0.1</real>
-				<key>tooltip</key>
-				<string>Returns number of lines in NotecardName via the dataserver event (cast return value to integer).\nReturns the number of lines in the note-card sNotecardName via the dataserver event. (Cast the value returned by the dataserver to an integer.)\n
+   </map>
+   <key>llGetNumberOfNotecardLines</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>NotecardName</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>key</string>
+    <key>sleep</key>
+    <real>0.1</real>
+    <key>tooltip</key>
+    <string>Returns number of lines in NotecardName via the dataserver event (cast return value to integer).\nReturns the number of lines in the note-card sNotecardName via the dataserver event. (Cast the value returned by the dataserver to an integer.)\n
 			The key returned is a query ID for identifying the dataserver reply.</string>
-			</map>
-			<key>llGetNumberOfPrims</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>integer</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the number of prims in a link set the script is attached to.\nReturns the number of prims in (and avatars seated on) the object the script is in.</string>
-			</map>
-			<key>llGetNumberOfSides</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>integer</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the number of faces (or sides) of the prim.\nReturns the number of sides of the prim which has the script.</string>
-			</map>
-			<key>llGetObjectDesc</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>string</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the description of the prim the script is attached to.\nReturns the description of the scripted object/prim. You can set the description using llSetObjectDesc.</string>
-			</map>
-			<key>llGetObjectDetails</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>ID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-					<map>
-						<key>Parameters</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>list</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the object details specified in Parameters for the object with key ID.\n
+   </map>
+   <key>llGetNumberOfPrims</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>integer</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the number of prims in a link set the script is attached to.\nReturns the number of prims in (and avatars seated on) the object the script is in.</string>
+   </map>
+   <key>llGetNumberOfSides</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>integer</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the number of faces (or sides) of the prim.\nReturns the number of sides of the prim which has the script.</string>
+   </map>
+   <key>llGetObjectDesc</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>string</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the description of the prim the script is attached to.\nReturns the description of the scripted object/prim. You can set the description using llSetObjectDesc.</string>
+   </map>
+   <key>llGetObjectDetails</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>ID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+     <map>
+      <key>Parameters</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>list</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the object details specified in Parameters for the object with key ID.\n
 				Parameters are OBJECT_NAME, _DESC, _POS, _ROT, _VELOCITY, _OWNER, _GROUP, _CREATOR.\nReturns a list of the details specified in Parameters for the object with key ID.</string>
-			</map>
-			<key>llGetObjectMass</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>ID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>float</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the mass of the avatar or object in the region.\nGets the mass of the object or avatar corresponding to ID.</string>
-			</map>
-			<key>llGetObjectName</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>string</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the name of the prim which the script is attached to.\nReturns the name of the prim (not object) which contains the script.</string>
-			</map>
-			<key>llGetObjectPermMask</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>PermissionMask</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>integer</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the requested permission mask for the root object the task is attached to.</string>
-			</map>
-			<key>llGetObjectPrimCount</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>ObjectID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>integer</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the total number of prims for an object in the region.\nReturns the prim count for any object id in the same region.</string>
-			</map>
-			<key>llGetOmega</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>vector</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the rotation velocity in radians per second.\nReturns a vector that is the rotation velocity of the object in radians per second.</string>
-			</map>
-			<key>llGetOwner</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>key</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the object owner's UUID.\nReturns the key for the owner of the object.</string>
-			</map>
-			<key>llGetOwnerKey</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>ObjectID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>key</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the owner of ObjectID.\nReturns the key for the owner of object ObjectID.</string>
-			</map>
-			<key>llGetParcelDetails</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Position</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-					<map>
-						<key>ParcelDetails</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>list</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the parcel details specified in ParcelDetails for the parcel at Position.\n
+   </map>
+   <key>llGetObjectMass</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>ID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>float</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the mass of the avatar or object in the region.\nGets the mass of the object or avatar corresponding to ID.</string>
+   </map>
+   <key>llGetObjectName</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>string</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the name of the prim which the script is attached to.\nReturns the name of the prim (not object) which contains the script.</string>
+   </map>
+   <key>llGetObjectPermMask</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>PermissionMask</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>integer</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the requested permission mask for the root object the task is attached to.</string>
+   </map>
+   <key>llGetObjectPrimCount</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>ObjectID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>integer</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the total number of prims for an object in the region.\nReturns the prim count for any object id in the same region.</string>
+   </map>
+   <key>llGetOmega</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>vector</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the rotation velocity in radians per second.\nReturns a vector that is the rotation velocity of the object in radians per second.</string>
+   </map>
+   <key>llGetOwner</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>key</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the object owner's UUID.\nReturns the key for the owner of the object.</string>
+   </map>
+   <key>llGetOwnerKey</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>ObjectID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>key</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the owner of ObjectID.\nReturns the key for the owner of object ObjectID.</string>
+   </map>
+   <key>llGetParcelDetails</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Position</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+     <map>
+      <key>ParcelDetails</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>list</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the parcel details specified in ParcelDetails for the parcel at Position.\n
  				Parameters is one or more of: PARCEL_DETAILS_NAME, _DESC, _OWNER, _GROUP, _AREA, _ID, _SEE_AVATARS.\nReturns a list that is the parcel details specified in ParcelDetails (in the same order) for the parcel at Position.</string>
-			</map>
-			<key>llGetParcelFlags</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Position</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>integer</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns a mask of the parcel flags (PARCEL_FLAG_*) for the parcel that includes the point Position.\nReturns a bit-field specifying the parcel flags (PARCEL_FLAG_*) for the parcel at Position.</string>
-			</map>
-			<key>llGetParcelMaxPrims</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Position</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-					<map>
-						<key>SimWide</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>integer</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the maximum number of prims allowed on the parcel at Position.\nReturns an integer that is the maximum number of prims allowed on the parcel at Position.</string>
-			</map>
-			<key>llGetParcelMusicURL</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real/>
-				<key>return</key>
-				<string>string</string>
-				<key>sleep</key>
-				<real/>
-				<key>tooltip</key>
-				<string>Gets the streaming audio URL for the parcel object is on.\nReturns a string containing the parcel streaming audio URL.\n
+   </map>
+   <key>llGetParcelFlags</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Position</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>integer</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns a mask of the parcel flags (PARCEL_FLAG_*) for the parcel that includes the point Position.\nReturns a bit-field specifying the parcel flags (PARCEL_FLAG_*) for the parcel at Position.</string>
+   </map>
+   <key>llGetParcelMaxPrims</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Position</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+     <map>
+      <key>SimWide</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>integer</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the maximum number of prims allowed on the parcel at Position.\nReturns an integer that is the maximum number of prims allowed on the parcel at Position.</string>
+   </map>
+   <key>llGetParcelMusicURL</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real/>
+    <key>return</key>
+    <string>string</string>
+    <key>sleep</key>
+    <real/>
+    <key>tooltip</key>
+    <string>Gets the streaming audio URL for the parcel object is on.\nReturns a string containing the parcel streaming audio URL.\n
 				The object owner, avatar or group, must also be the land owner.</string>
-			</map>
-			<key>llGetParcelPrimCount</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Position</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-					<map>
-						<key>Category</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>SimWide</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>integer</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the number of prims on the parcel at Position of the given category.
+   </map>
+   <key>llGetParcelPrimCount</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Position</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+     <map>
+      <key>Category</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>SimWide</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>integer</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the number of prims on the parcel at Position of the given category.
 				Categories: PARCEL_COUNT_TOTAL, _OWNER, _GROUP, _OTHER, _SELECTED, _TEMP.\nReturns the number of prims used on the parcel at Position which are in Category.\n
 				If SimWide is TRUE, it returns the number of objects for the entire region in the category specified.\n
 				If SimWide is FALSE, it returns the number of objects on this specific parcel in the category specified</string>
-			</map>
-			<key>llGetParcelPrimOwners</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Position</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>list</string>
-				<key>sleep</key>
-				<real>2.0</real>
-				<key>tooltip</key>
-				<string>Returns a list of all residents who own objects on the parcel at Position, with individual prim counts.
+   </map>
+   <key>llGetParcelPrimOwners</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Position</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>list</string>
+    <key>sleep</key>
+    <real>2.0</real>
+    <key>tooltip</key>
+    <string>Returns a list of all residents who own objects on the parcel at Position, with individual prim counts.
 				Requires owner-like permissions for the parcel.\nReturns a strided list of keys and integers of up to 100 agents who own objects in the parcel at Position.\n
 				The list is formatted as [ key agentKey1, integer agentCount1, key agentKey2, integer agentCount2, ... ], sorted by agent key.\n
 				The integers are counts of the number of prims (not objects) owned by the corresponding agents.\n
 				Only works when the object owner is in the region (likely the reason it doesn't work when deeded to group).</string>
-			</map>
-			<key>llGetPermissions</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>integer</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns an integer bit-field with the permissions that have been granted.\nReturns an integer bit-field with the script permissions granted. e.g.:\n
+   </map>
+   <key>llGetPermissions</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>integer</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns an integer bit-field with the permissions that have been granted.\nReturns an integer bit-field with the script permissions granted. e.g.:\n
 				integer iPerms = llGetPermissions();\n
 				if (iPerms &amp; PERMISSION_DEBIT) {\n
 					llOwnerSay("Yay, I can steal your money!!");\n
 				} else {\n
 					llOwnerSay("Damn, your money is safe from me!");\n
 				}</string>
-			</map>
-			<key>llGetPermissionsKey</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>key</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the key of the avatar that last granted permissions to the script.\nReturns the key of the avatar that last granted or declined permissions to the script.\n
+   </map>
+   <key>llGetPermissionsKey</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>key</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the key of the avatar that last granted permissions to the script.\nReturns the key of the avatar that last granted or declined permissions to the script.\n
 				Returns NULL_KEY if permissions were never granted or declined.</string>
-			</map>
-			<key>llGetPhysicsMaterial</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real/>
-				<key>return</key>
-				<string>list</string>
-				<key>sleep</key>
-				<real/>
-				<key>tooltip</key>
-				<string>Returns a list of the form [float gravity_multiplier, float restitution, float friction, float density].</string>
-			</map>
-			<key>llGetPos</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>vector</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the position of the task in region coordinates.\nReturns the vector position of the task in region coordinates.</string>
-			</map>
-			<key>llGetPrimitiveParams</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Parameters</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>list</string>
-				<key>sleep</key>
-				<real>0.2</real>
-				<key>tooltip</key>
-				<string>Returns the primitive parameters specified in the parameters list.\nReturns primitive parameters specified in the Parameters list.</string>
-			</map>
-			<key>llGetPrimMediaParams</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Face</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>Parameters</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>list</string>
-				<key>sleep</key>
-				<real>0.1</real>
-				<key>tooltip</key>
-				<string>Returns the media parameters for a particular face on an object, given the desired list of parameter names, in the order requested. Returns an empty list if no media exists on the face.\nGet the media parameters for a particular face on an object, given the desired list of Parameters.\n
+   </map>
+   <key>llGetPhysicsMaterial</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real/>
+    <key>return</key>
+    <string>list</string>
+    <key>sleep</key>
+    <real/>
+    <key>tooltip</key>
+    <string>Returns a list of the form [float gravity_multiplier, float restitution, float friction, float density].</string>
+   </map>
+   <key>llGetPos</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>vector</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the position of the task in region coordinates.\nReturns the vector position of the task in region coordinates.</string>
+   </map>
+   <key>llGetPrimitiveParams</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Parameters</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>list</string>
+    <key>sleep</key>
+    <real>0.2</real>
+    <key>tooltip</key>
+    <string>Returns the primitive parameters specified in the parameters list.\nReturns primitive parameters specified in the Parameters list.</string>
+   </map>
+   <key>llGetPrimMediaParams</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Face</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>Parameters</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>list</string>
+    <key>sleep</key>
+    <real>0.1</real>
+    <key>tooltip</key>
+    <string>Returns the media parameters for a particular face on an object, given the desired list of parameter names, in the order requested. Returns an empty list if no media exists on the face.\nGet the media parameters for a particular face on an object, given the desired list of Parameters.\n
 				Returns a list of values in the order requested.\n
 				Returns an empty list if no media exists on the face.</string>
-			</map>
-			<key>llGetRegionAgentCount</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>integer</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the number of avatars in the region.\nReturns an integer that is the number of avatars in the region.</string>
-			</map>
-			<key>llGetRegionCorner</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>vector</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns a vector, in meters, that is the global location of the south-west corner of the region which the object is in.\nReturns the Region-Corner of the simulator containing the task. The region-corner is a vector (values in meters) representing distance from the first region.</string>
-			</map>
-			<key>llGetRegionFlags</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>integer</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the region flags (REGION_FLAG_*) for the region the object is in.\nReturns a bit-field specifying the region flags (REGION_FLAG_*) for the region the object is in.</string>
-			</map>
-			<key>llGetRegionFPS</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the mean region frames per second.</string>
-			</map>
-			<key>llGetRegionName</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>string</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the current region name.</string>
-			</map>
-			<key>llGetRegionTimeDilation</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>float</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the current time dilation as a float between 0.0 (full dilation) and 1.0 (no dilation).\nReturns the current time dilation as a float between 0.0 and 1.0.</string>
-			</map>
-			<key>llGetRootPosition</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>vector</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the position (in region coordinates) of the root prim of the object which the script is attached to.\nGets the position (in region coordinates) of the root/parent prim of the object containing the script.\n
+   </map>
+   <key>llGetRegionAgentCount</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>integer</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the number of avatars in the region.\nReturns an integer that is the number of avatars in the region.</string>
+   </map>
+   <key>llGetRegionCorner</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>vector</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns a vector, in meters, that is the global location of the south-west corner of the region which the object is in.\nReturns the Region-Corner of the simulator containing the task. The region-corner is a vector (values in meters) representing distance from the first region.</string>
+   </map>
+   <key>llGetRegionFlags</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>integer</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the region flags (REGION_FLAG_*) for the region the object is in.\nReturns a bit-field specifying the region flags (REGION_FLAG_*) for the region the object is in.</string>
+   </map>
+   <key>llGetRegionFPS</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the mean region frames per second.</string>
+   </map>
+   <key>llGetRegionName</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>string</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the current region name.</string>
+   </map>
+   <key>llGetRegionTimeDilation</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>float</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the current time dilation as a float between 0.0 (full dilation) and 1.0 (no dilation).\nReturns the current time dilation as a float between 0.0 and 1.0.</string>
+   </map>
+   <key>llGetRootPosition</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>vector</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the position (in region coordinates) of the root prim of the object which the script is attached to.\nGets the position (in region coordinates) of the root/parent prim of the object containing the script.\n
 			This is used to allow a child prim to determine where the root is.</string>
-			</map>
-			<key>llGetRootRotation</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>rotation</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the rotation (relative to the region) of the root prim of the object which the script is attached to.\nGets the global rotation of the root object of the object script is attached to.</string>
-			</map>
-			<key>llGetRot</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>rotation</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the rotation relative to the region's axes.\nReturns the rotation.</string>
-			</map>
-			<key>llGetScale</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>vector</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the scale of the prim.\nReturns a vector that is the scale (dimensions) of the prim.</string>
-			</map>
-			<key>llGetScriptName</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>string</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the name of the script that this function is used in.\nReturns the name of this script.</string>
-			</map>
-			<key>llGetScriptState</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>ScriptName</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>integer</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns TRUE if the script named is running.\nReturns TRUE if ScriptName is running.</string>
-			</map>
-			<key>llGetSimStats</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>StatType</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>0</real>
-				<key>return</key>
-				<string>float</string>
-				<key>sleep</key>
-				<real>0</real>
-				<key>tooltip</key>
-				<string>Returns a float that is the requested statistic.</string>
-			</map>
-			<key>llGetSimulatorHostname</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>string</string>
-				<key>sleep</key>
-				<real>10.0</real>
-				<key>tooltip</key>
-				<string>Returns the host-name of the machine which the script is running on (same as string in viewer Help dialog).\nReturns the host name (server) of the region in which the scripted object is located.\n
+   </map>
+   <key>llGetRootRotation</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>rotation</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the rotation (relative to the region) of the root prim of the object which the script is attached to.\nGets the global rotation of the root object of the object script is attached to.</string>
+   </map>
+   <key>llGetRot</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>rotation</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the rotation relative to the region's axes.\nReturns the rotation.</string>
+   </map>
+   <key>llGetScale</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>vector</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the scale of the prim.\nReturns a vector that is the scale (dimensions) of the prim.</string>
+   </map>
+   <key>llGetScriptName</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>string</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the name of the script that this function is used in.\nReturns the name of this script.</string>
+   </map>
+   <key>llGetScriptState</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>ScriptName</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>integer</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns TRUE if the script named is running.\nReturns TRUE if ScriptName is running.</string>
+   </map>
+   <key>llGetSimStats</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>StatType</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>0</real>
+    <key>return</key>
+    <string>float</string>
+    <key>sleep</key>
+    <real>0</real>
+    <key>tooltip</key>
+    <string>Returns a float that is the requested statistic.</string>
+   </map>
+   <key>llGetSimulatorHostname</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>string</string>
+    <key>sleep</key>
+    <real>10.0</real>
+    <key>tooltip</key>
+    <string>Returns the host-name of the machine which the script is running on (same as string in viewer Help dialog).\nReturns the host name (server) of the region in which the scripted object is located.\n
 			For example, "sim225.agni.lindenlab.com".</string>
-			</map>
-			<key>llGetSPMaxMemory</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real/>
-				<key>return</key>
-				<string>integer</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the maximum used memory for the current script. Only valid after using PROFILE_SCRIPT_MEMORY. Non-mono scripts always use 16k.\nReturns the integer of the most bytes used while llScriptProfiler was last active.</string>
-			</map>
-			<key>llGetStartParameter</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>integer</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns an integer that is the script start parameter.\nReturns the start parameter passed to llRezObject.\n
+   </map>
+   <key>llGetSPMaxMemory</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real/>
+    <key>return</key>
+    <string>integer</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the maximum used memory for the current script. Only valid after using PROFILE_SCRIPT_MEMORY. Non-mono scripts always use 16k.\nReturns the integer of the most bytes used while llScriptProfiler was last active.</string>
+   </map>
+   <key>llGetStartParameter</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>integer</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns an integer that is the script start parameter.\nReturns the start parameter passed to llRezObject.\n
 			If the object was created from agent inventory, this function returns 0.</string>
-			</map>
-			<key>llGetStaticPath</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Start</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-					<map>
-						<key>End</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-					<map>
-						<key>Radius</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-					<map>
-						<key>Parameters</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>list</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string/>
-			</map>
-			<key>llGetStatus</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>StatusFlag</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>integer</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns value of status (STATUS_PHYSICS, STATUS_PHANTOM, STATUS_BLOCK_GRAB, STATUS_ROTATE_X, STATUS_ROTATE_Y, and/or STATUS_ROTATE_Z).\nReturns the value of specified status.</string>
-			</map>
-			<key>llGetSubString</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>String</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>Start</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>End</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>string</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the indicated substring.\nReturns the indicated sub-string from String. The Start and End are inclusive.\n
+   </map>
+   <key>llGetStaticPath</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Start</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+     <map>
+      <key>End</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+     <map>
+      <key>Radius</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+     <map>
+      <key>Parameters</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>list</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string/>
+   </map>
+   <key>llGetStatus</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>StatusFlag</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>integer</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns value of status (STATUS_PHYSICS, STATUS_PHANTOM, STATUS_BLOCK_GRAB, STATUS_ROTATE_X, STATUS_ROTATE_Y, and/or STATUS_ROTATE_Z).\nReturns the value of specified status.</string>
+   </map>
+   <key>llGetSubString</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>String</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>Start</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>End</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>string</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the indicated substring.\nReturns the indicated sub-string from String. The Start and End are inclusive.\n
 				Using negative numbers for Start and/or End causes the index to count backwards from the length of the string, so 0, -1 would capture the entire string.\n
 				If start is larger than end, the sub string is the exclusion of the entries, so 6, 4 would give the entire string except for the 5th. character.</string>
-			</map>
-			<key>llGetSunDirection</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>vector</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns a normalized vector of the direction of the sun in the region.\nReturns the sun's direction on the simulator.</string>
-			</map>
-			<key>llGetTexture</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Face</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>string</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns a string that is the texture on face (the inventory name if it is a texture in the prim's inventory, otherwise the key).\nReturns the texture of a face, if it is found in object inventory, its key otherwise.</string>
-			</map>
-			<key>llGetTextureOffset</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Face</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>vector</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the texture offset of face in the x and y components of a vector.</string>
-			</map>
-			<key>llGetTextureRot</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Face</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>float</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the texture rotation of side.</string>
-			</map>
-			<key>llGetTextureScale</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Face</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>vector</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the texture scale of side in the x and y components of a vector.\nReturns the texture scale of a side in the x and y components of a vector.</string>
-			</map>
-			<key>llGetTime</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>float</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the time in seconds since the last region reset, script reset, or call to either llResetTime or llGetAndResetTime.</string>
-			</map>
-			<key>llGetTimeOfDay</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>float</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the time in seconds since [SECOND_LIFE] server midnight or since region up-time, whichever is smaller.\nGets the time in seconds since midnight in Second Life.</string>
-			</map>
-			<key>llGetTimestamp</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>string</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns a time-stamp (UTC time zone) in the format: YYYY-MM-DDThh:mm:ss.ff..fZ.\nReturns the current time-and-date (a time-stamp) in the format YYYY-MM-DDThh:mm:ss.ff..fZ, for example: 2004-08-27T00:56:21.785886Z\n
+   </map>
+   <key>llGetSunDirection</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>vector</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns a normalized vector of the direction of the sun in the region.\nReturns the sun's direction on the simulator.</string>
+   </map>
+   <key>llGetTexture</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Face</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>string</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns a string that is the texture on face (the inventory name if it is a texture in the prim's inventory, otherwise the key).\nReturns the texture of a face, if it is found in object inventory, its key otherwise.</string>
+   </map>
+   <key>llGetTextureOffset</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Face</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>vector</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the texture offset of face in the x and y components of a vector.</string>
+   </map>
+   <key>llGetTextureRot</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Face</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>float</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the texture rotation of side.</string>
+   </map>
+   <key>llGetTextureScale</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Face</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>vector</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the texture scale of side in the x and y components of a vector.\nReturns the texture scale of a side in the x and y components of a vector.</string>
+   </map>
+   <key>llGetTime</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>float</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the time in seconds since the last region reset, script reset, or call to either llResetTime or llGetAndResetTime.</string>
+   </map>
+   <key>llGetTimeOfDay</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>float</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the time in seconds since [SECOND_LIFE] server midnight or since region up-time, whichever is smaller.\nGets the time in seconds since midnight in Second Life.</string>
+   </map>
+   <key>llGetTimestamp</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>string</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns a time-stamp (UTC time zone) in the format: YYYY-MM-DDThh:mm:ss.ff..fZ.\nReturns the current time-and-date (a time-stamp) in the format YYYY-MM-DDThh:mm:ss.ff..fZ, for example: 2004-08-27T00:56:21.785886Z\n
 				The letter Z is the zone designator for the zero UTC offset, and is why UTC is sometimes referred to as Zulu time (Zulu being the name of Z in the phonetic alphabet. T is just a separator between date and time.</string>
-			</map>
-			<key>llGetTorque</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>vector</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the torque (if the script is physical).\nReturns a vector that is the torque (if the script is physical).</string>
-			</map>
-			<key>llGetUnixTime</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>integer</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the number of seconds elapsed since 00:00 hours, Jan 1, 1970 UTC from the system clock.\nReturns the number of seconds elapsed since 00:00 hours, Jan 1, 1970 UTC from the system clock.\n
+   </map>
+   <key>llGetTorque</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>vector</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the torque (if the script is physical).\nReturns a vector that is the torque (if the script is physical).</string>
+   </map>
+   <key>llGetUnixTime</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>integer</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the number of seconds elapsed since 00:00 hours, Jan 1, 1970 UTC from the system clock.\nReturns the number of seconds elapsed since 00:00 hours, Jan 1, 1970 UTC from the system clock.\n
 				In UNIX terms, time_t. This is great for a monotonic source of time that ticks once a second.</string>
-			</map>
-			<key>llGetUsedMemory</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>integer</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the current used memory for the current script. Non-mono scripts always use 16K.\nReturns the integer of the number of bytes of memory currently in use by the script. Non-mono scripts always use 16K.</string>
-			</map>
-			<key>llGetUsername</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>AvatarID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>string</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the single-word user-name of an avatar, if the avatar is in the current region, otherwise the empty string.\nReturns a string that is the unique user-name of the avatar specified.\n
+   </map>
+   <key>llGetUsedMemory</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>integer</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the current used memory for the current script. Non-mono scripts always use 16K.\nReturns the integer of the number of bytes of memory currently in use by the script. Non-mono scripts always use 16K.</string>
+   </map>
+   <key>llGetUsername</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>AvatarID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>string</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the single-word user-name of an avatar, if the avatar is in the current region, otherwise the empty string.\nReturns a string that is the unique user-name of the avatar specified.\n
 				AvatarID must specify a valid avatar key present in, or otherwise known to, the region in which the script is running, otherwise an empty string is returned. This function will still return a valid user-name if the avatar is a child agent of the region (i.e., in an adjacent region, but presently able to see into the one the script is in), or for a short period after the avatar leaves the region (specifically, when the client completely disconnects from the region, either as a main or child agent).</string>
-			</map>
-			<key>llGetVel</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>vector</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the velocity of the object.\nReturns a vector that is the velocity of the object.</string>
-			</map>
-			<key>llGetWallclock</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>float</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the time in seconds since midnight California Pacific time (PST/PDT).\nReturns the time in seconds since simulator's time-zone midnight (Pacific Time).</string>
-			</map>
-			<key>llGiveInventory</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>TargetID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-					<map>
-						<key>InventoryItem</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Give InventoryItem to destination represented by TargetID.\nGive the named inventory item to the avatar or object in the same simulator as the giver.\n
+   </map>
+   <key>llGetVel</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>vector</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the velocity of the object.\nReturns a vector that is the velocity of the object.</string>
+   </map>
+   <key>llGetWallclock</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>float</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the time in seconds since midnight California Pacific time (PST/PDT).\nReturns the time in seconds since simulator's time-zone midnight (Pacific Time).</string>
+   </map>
+   <key>llGiveInventory</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>TargetID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+     <map>
+      <key>InventoryItem</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Give InventoryItem to destination represented by TargetID.\nGive the named inventory item to the avatar or object in the same simulator as the giver.\n
 			If the recipient is an avatar, the avatar then follows the normal procedure of accepting or denying the offer. If the recipient is an object, the same permissions apply as if you were dragging inventory onto the object by hand, i.e. if llAllowInventoryDrop has been called with TRUE, any other object can pass objects to its inventory.</string>
-			</map>
-			<key>llGiveInventoryList</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>TargetID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-					<map>
-						<key>FolderName</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>InventoryItems</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>3.0</real>
-				<key>tooltip</key>
-				<string>Give InventoryItems to destination (represented by TargetID) as a new folder of items.\nGive the list of named inventory items to the keyed avatar or object in the same simulator as the giver.\n
+   </map>
+   <key>llGiveInventoryList</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>TargetID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+     <map>
+      <key>FolderName</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>InventoryItems</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>3.0</real>
+    <key>tooltip</key>
+    <string>Give InventoryItems to destination (represented by TargetID) as a new folder of items.\nGive the list of named inventory items to the keyed avatar or object in the same simulator as the giver.\n
 			If the recipient is an avatar, the avatar then follows the normal procedure of accepting or denying the offer. The offered inventory is then placed in a folder named category in the recipients inventory.\n
 			If the recipient is an object, the same permissions apply as if you were dragging inventory onto the object by hand, i.e. if llAllowInventoryDrop has been called with TRUE, any other object can pass objects to its inventory. If the recipient is an object, the sFolderName parameter is ignored.</string>
-			</map>
-			<key>llGiveMoney</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>AvatarID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-					<map>
-						<key>Amount</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Transfers Amount of L from script owner to AvatarID.\nTransfer Amount from the script owner to AvatarID.\n
+   </map>
+   <key>llGiveMoney</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>AvatarID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+     <map>
+      <key>Amount</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Transfers Amount of L from script owner to AvatarID.\nTransfer Amount from the script owner to AvatarID.\n
 				This call will (silently) fail if PERMISSION_DEBIT has not been set.</string>
-			</map>
-			<key>llGodLikeRezObject</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>InventoryItemID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-					<map>
-						<key>Position</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>god-mode</key>
-				<boolean>true</boolean>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Rez directly off of a UUID if owner has dog-bit set.</string>
-			</map>
-			<key>llGround</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Offset</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>float</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the ground height at the object position + offset.\nReturns the ground height at the object's position + Offset.</string>
-			</map>
-			<key>llGroundContour</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Offset</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>vector</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the ground contour direction below the object position + Offset.\nReturns the ground contour at the object's position + Offset.</string>
-			</map>
-			<key>llGroundNormal</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Offset</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>vector</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the ground normal below the object position + offset.\nReturns the ground contour at the object's position + Offset.</string>
-			</map>
-			<key>llGroundRepel</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Height</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-					<map>
-						<key>Water</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>Tau</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Critically damps to height if within height * 0.5 of level (either above ground level or above the higher of land and water if water == TRUE).\nCritically damps to fHeight if within fHeight * 0.5 of ground or water level.\n
+   </map>
+   <key>llGodLikeRezObject</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>InventoryItemID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+     <map>
+      <key>Position</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>god-mode</key>
+    <boolean>true</boolean>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Rez directly off of a UUID if owner has dog-bit set.</string>
+   </map>
+   <key>llGround</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Offset</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>float</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the ground height at the object position + offset.\nReturns the ground height at the object's position + Offset.</string>
+   </map>
+   <key>llGroundContour</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Offset</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>vector</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the ground contour direction below the object position + Offset.\nReturns the ground contour at the object's position + Offset.</string>
+   </map>
+   <key>llGroundNormal</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Offset</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>vector</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the ground normal below the object position + offset.\nReturns the ground contour at the object's position + Offset.</string>
+   </map>
+   <key>llGroundRepel</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Height</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+     <map>
+      <key>Water</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>Tau</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Critically damps to height if within height * 0.5 of level (either above ground level or above the higher of land and water if water == TRUE).\nCritically damps to fHeight if within fHeight * 0.5 of ground or water level.\n
 				The height is above ground level if iWater is FALSE or above the higher of land and water if iWater is TRUE.\n
 				Do not use with vehicles. Only works in physics-enabled objects.</string>
-			</map>
-			<key>llGroundSlope</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Offset</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>vector</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the ground slope below the object position + Offset.\nReturns the ground slope at the object position + Offset.</string>
-			</map>
-			<key>llHTTPRequest</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>URL</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>Parameters</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-					<map>
-						<key>Body</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>key</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Sends an HTTP request to the specified URL with the Body of the request and Parameters.\nSends an HTTP request to URL with the specified body and parameters.\n
+   </map>
+   <key>llGroundSlope</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Offset</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>vector</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the ground slope below the object position + Offset.\nReturns the ground slope at the object position + Offset.</string>
+   </map>
+   <key>llHTTPRequest</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>URL</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>Parameters</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+     <map>
+      <key>Body</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>key</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Sends an HTTP request to the specified URL with the Body of the request and Parameters.\nSends an HTTP request to URL with the specified body and parameters.\n
 				Returns a key that is a handle identifying the HTTP request made.</string>
-			</map>
-			<key>llHTTPResponse</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>HTTPRequestID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-					<map>
-						<key>Status</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>Body</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Responds to HTTPRequestID with Status and Body.\nResponds to HTTPRequestID with Status code and Body.</string>
-			</map>
-			<key>llInsertString</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>TargetVariable</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>Position</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>SourceVariable</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>string</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Inserts SourceVariable into TargetVariable at Position, and returns the result.\nInserts SourceVariable into TargetVariable at Position and returns the result. Note this does not alter TargetVariable.</string>
-			</map>
-			<key>llInstantMessage</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>AvatarID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-					<map>
-						<key>Text</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>2.0</real>
-				<key>tooltip</key>
-				<string>IMs Text to the user identified.\nSend Text to the user as an instant message.</string>
-			</map>
-			<key>llIntegerToBase64</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Value</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>string</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns a string that is a Base64 big endian encode of Value.\nEncodes the Value as an 8-character Base64 string.</string>
-			</map>
-			<key>llJson2List</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>JSON</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>0.0</real>
-				<key>return</key>
-				<string>list</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Converts the top level of the JSON string to a list.</string>
-			</map>
-			<key>llJsonGetValue</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>JSON</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>Specifiers</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>0.0</real>
-				<key>return</key>
-				<string>string</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Gets the value indicated by Specifiers from the JSON string.</string>
-			</map>
-			<key>llJsonSetValue</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>JSON</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>Specifiers</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-					<map>
-						<key>Value</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>0.0</real>
-				<key>return</key>
-				<string>string</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns a new JSON string that is the JSON given with the Value indicated by Specifiers set to Value.</string>
-			</map>
-			<key>llJsonValueType</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>JSON</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>Specifiers</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>0.0</real>
-				<key>return</key>
-				<string>string</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the type constant (JSON_*) for the value in JSON indicated by Specifiers.</string>
-			</map>
-			<key>llKey2Name</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>ID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>string</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the name of the prim or avatar specified by ID. The ID must be a valid rezzed prim or avatar key in the current simulator, otherwise an empty string is returned.\nReturns the name of a rezzed prim or avatar, present in or otherwise known, to the region in which the script is running. If the key is invalid (not in region, or not a prim or avatar's key), returns an empty string.</string>
-			</map>
-			<key>llLinkParticleSystem</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>LinkNumber</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>Rules</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Creates a particle system based on Rules. An empty list removes a particle system from object.\n
+   </map>
+   <key>llHTTPResponse</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>HTTPRequestID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+     <map>
+      <key>Status</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>Body</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Responds to HTTPRequestID with Status and Body.\nResponds to HTTPRequestID with Status code and Body.</string>
+   </map>
+   <key>llInsertString</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>TargetVariable</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>Position</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>SourceVariable</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>string</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Inserts SourceVariable into TargetVariable at Position, and returns the result.\nInserts SourceVariable into TargetVariable at Position and returns the result. Note this does not alter TargetVariable.</string>
+   </map>
+   <key>llInstantMessage</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>AvatarID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+     <map>
+      <key>Text</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>2.0</real>
+    <key>tooltip</key>
+    <string>IMs Text to the user identified.\nSend Text to the user as an instant message.</string>
+   </map>
+   <key>llIntegerToBase64</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Value</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>string</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns a string that is a Base64 big endian encode of Value.\nEncodes the Value as an 8-character Base64 string.</string>
+   </map>
+   <key>llJson2List</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>JSON</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>0.0</real>
+    <key>return</key>
+    <string>list</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Converts the top level of the JSON string to a list.</string>
+   </map>
+   <key>llJsonGetValue</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>JSON</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>Specifiers</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>0.0</real>
+    <key>return</key>
+    <string>string</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Gets the value indicated by Specifiers from the JSON string.</string>
+   </map>
+   <key>llJsonSetValue</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>JSON</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>Specifiers</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+     <map>
+      <key>Value</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>0.0</real>
+    <key>return</key>
+    <string>string</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns a new JSON string that is the JSON given with the Value indicated by Specifiers set to Value.</string>
+   </map>
+   <key>llJsonValueType</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>JSON</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>Specifiers</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>0.0</real>
+    <key>return</key>
+    <string>string</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the type constant (JSON_*) for the value in JSON indicated by Specifiers.</string>
+   </map>
+   <key>llKey2Name</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>ID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>string</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the name of the prim or avatar specified by ID. The ID must be a valid rezzed prim or avatar key in the current simulator, otherwise an empty string is returned.\nReturns the name of a rezzed prim or avatar, present in or otherwise known, to the region in which the script is running. If the key is invalid (not in region, or not a prim or avatar's key), returns an empty string.</string>
+   </map>
+   <key>llLinkParticleSystem</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>LinkNumber</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>Rules</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Creates a particle system based on Rules. An empty list removes a particle system from object.\n
 				List format is [ rule-1, data-1, rule-2, data-2 ... rule-n, data-n ].\nA particle system defined by a list of rules is set for the prim(s) link. This is identical to llParticleSystem except that it applies to a specified linked prim and not just the prim the script is in.</string>
-			</map>
-			<key>llLinkSitTarget</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>LinkNumber</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>Offset</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-					<map>
-						<key>Rotation</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>rotation</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Set the sit location for the linked prim(s). If Offset == &lt;0,0,0&gt; clear it.\nSet the sit location for the linked prim(s). The sit location is relative to the prim's position and rotation.</string>
-			</map>
-			<key>llList2CSV</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>ListVariable</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>string</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Creates a string of comma separated values from the list.\nCreate a string of comma separated values from the specified list.</string>
-			</map>
-			<key>llList2Float</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>ListVariable</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-					<map>
-						<key>Index</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>float</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Copies the float at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to a float, then zero is returned.</string>
-			</map>
-			<key>llList2Integer</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>ListVariable</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-					<map>
-						<key>Index</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>integer</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Copies the integer at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to an integer, then zero is returned.</string>
-			</map>
-			<key>llList2Json</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>JsonType</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>Values</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>0</real>
-				<key>return</key>
-				<string>string</string>
-				<key>sleep</key>
-				<real>0</real>
-				<key>tooltip</key>
-				<string>Converts either a strided list of key:value pairs to a JSON_OBJECT, or a list of values to a JSON_ARRAY.</string>
-			</map>
-			<key>llList2Key</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>ListVariable</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-					<map>
-						<key>Index</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>key</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Copies the key at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to a key, then null string is returned.</string>
-			</map>
-			<key>llList2List</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>ListVariable</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-					<map>
-						<key>Start</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>End</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>list</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Copies the slice of the list from Start to End.\nReturns the slice of the list from start to end from the list as a new list. The start and end parameters are inclusive.\n
+   </map>
+   <key>llLinkSitTarget</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>LinkNumber</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>Offset</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+     <map>
+      <key>Rotation</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>rotation</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Set the sit location for the linked prim(s). If Offset == &lt;0,0,0&gt; clear it.\nSet the sit location for the linked prim(s). The sit location is relative to the prim's position and rotation.</string>
+   </map>
+   <key>llList2CSV</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>ListVariable</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>string</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Creates a string of comma separated values from the list.\nCreate a string of comma separated values from the specified list.</string>
+   </map>
+   <key>llList2Float</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>ListVariable</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+     <map>
+      <key>Index</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>float</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Copies the float at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to a float, then zero is returned.</string>
+   </map>
+   <key>llList2Integer</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>ListVariable</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+     <map>
+      <key>Index</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>integer</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Copies the integer at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to an integer, then zero is returned.</string>
+   </map>
+   <key>llList2Json</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>JsonType</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>Values</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>0</real>
+    <key>return</key>
+    <string>string</string>
+    <key>sleep</key>
+    <real>0</real>
+    <key>tooltip</key>
+    <string>Converts either a strided list of key:value pairs to a JSON_OBJECT, or a list of values to a JSON_ARRAY.</string>
+   </map>
+   <key>llList2Key</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>ListVariable</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+     <map>
+      <key>Index</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>key</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Copies the key at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to a key, then null string is returned.</string>
+   </map>
+   <key>llList2List</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>ListVariable</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+     <map>
+      <key>Start</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>End</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>list</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Copies the slice of the list from Start to End.\nReturns the slice of the list from start to end from the list as a new list. The start and end parameters are inclusive.\n
 				Using negative numbers for start and/or end causes the index to count backwards from the length of the list, so 0, -1 would capture the entire list.\n
 				If start is larger than end the list returned is the exclusion of the entries, so 6, 4 would give the entire list except for the 5th. entry.</string>
-			</map>
-			<key>llList2ListStrided</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>ListVariable</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-					<map>
-						<key>Start</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>End</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>Stride</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>list</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Copies the strided slice of the list from Start to End.\nReturns a copy of the strided slice of the specified list from Start to End.</string>
-			</map>
-			<key>llList2Rot</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>ListVariable</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-					<map>
-						<key>Index</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>rotation</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Copies the rotation at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to rotation, thenZERO_ROTATION is returned.</string>
-			</map>
-			<key>llList2String</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>ListVariable</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-					<map>
-						<key>Index</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>string</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Copies the string at Index in the list.\nReturns the value at Index in the specified list as a string. If Index describes a location not in the list then null string is returned.</string>
-			</map>
-			<key>llList2Vector</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>ListVariable</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-					<map>
-						<key>Index</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>vector</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Copies the vector at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to a vector, then ZERO_VECTOR is returned.</string>
-			</map>
-			<key>llListen</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Channel</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>SpeakersName</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>SpeakersID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-					<map>
-						<key>Text</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>integer</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Sets a callback for Text on Channel from SpeakersName and SpeakersID (SpeakersName, SpeakersID, and/or Text can be empty) and returns an identifier that can be used to deactivate or remove the listen.\nSets a listen event callback on the specified channel. Specifying values for speakername, speakerID, and message will filter the results accordingly, which is advisable or your listen event will respond to every thing said on the channel potentially causing a great deal of lag.\n
+   </map>
+   <key>llList2ListStrided</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>ListVariable</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+     <map>
+      <key>Start</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>End</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>Stride</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>list</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Copies the strided slice of the list from Start to End.\nReturns a copy of the strided slice of the specified list from Start to End.</string>
+   </map>
+   <key>llList2Rot</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>ListVariable</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+     <map>
+      <key>Index</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>rotation</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Copies the rotation at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to rotation, thenZERO_ROTATION is returned.</string>
+   </map>
+   <key>llList2String</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>ListVariable</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+     <map>
+      <key>Index</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>string</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Copies the string at Index in the list.\nReturns the value at Index in the specified list as a string. If Index describes a location not in the list then null string is returned.</string>
+   </map>
+   <key>llList2Vector</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>ListVariable</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+     <map>
+      <key>Index</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>vector</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Copies the vector at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to a vector, then ZERO_VECTOR is returned.</string>
+   </map>
+   <key>llListen</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Channel</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>SpeakersName</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>SpeakersID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+     <map>
+      <key>Text</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>integer</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Sets a callback for Text on Channel from SpeakersName and SpeakersID (SpeakersName, SpeakersID, and/or Text can be empty) and returns an identifier that can be used to deactivate or remove the listen.\nSets a listen event callback on the specified channel. Specifying values for speakername, speakerID, and message will filter the results accordingly, which is advisable or your listen event will respond to every thing said on the channel potentially causing a great deal of lag.\n
 				Returns an identifier that can be used to deactivate or remove the listen. The name, id and/or msg parameters\n
 				Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 to 2,147,483,648 are hidden channels that are not sent to avatars.</string>
-			</map>
-			<key>llListenControl</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>ChannelHandle</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>Active</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Makes a listen event callback active or inactive.\nMake a listen event callback active or inactive. Pass in the value returned from llListen to the iChannelHandle parameter to specify which event you are controlling.\n
+   </map>
+   <key>llListenControl</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>ChannelHandle</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>Active</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Makes a listen event callback active or inactive.\nMake a listen event callback active or inactive. Pass in the value returned from llListen to the iChannelHandle parameter to specify which event you are controlling.\n
 				Use boolean values to specify Active</string>
-			</map>
-			<key>llListenRemove</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>ChannelHandle</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Removes listen event callback number.\nRemoves a listen event callback. Pass in the value returned from llListen to the iChannelHandle parameter to specify which event to remove.</string>
-			</map>
-			<key>llListFindList</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>ListVariable</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-					<map>
-						<key>Find</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>integer</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the index of the first instance of Find in ListVariable. Returns -1 if not found.\nReturns the position of the first instance of the Find list in the ListVariable. Returns -1 if not found.</string>
-			</map>
-			<key>llListInsertList</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Target</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-					<map>
-						<key>ListVariable</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-					<map>
-						<key>Position</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>list</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns a list that contains all the elements from Target but with the elements from ListVariable inserted at Position start.\nReturns a new list, created by inserting ListVariable into the Target list at Position. Note this does not alter the Target.</string>
-			</map>
-			<key>llListRandomize</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>ListVariable</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-					<map>
-						<key>Stride</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>list</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns a randomized list of blocks of size Stride.\nReturns the specified list randomized into blocks of size stride.\n
+   </map>
+   <key>llListenRemove</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>ChannelHandle</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Removes listen event callback number.\nRemoves a listen event callback. Pass in the value returned from llListen to the iChannelHandle parameter to specify which event to remove.</string>
+   </map>
+   <key>llListFindList</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>ListVariable</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+     <map>
+      <key>Find</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>integer</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the index of the first instance of Find in ListVariable. Returns -1 if not found.\nReturns the position of the first instance of the Find list in the ListVariable. Returns -1 if not found.</string>
+   </map>
+   <key>llListInsertList</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Target</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+     <map>
+      <key>ListVariable</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+     <map>
+      <key>Position</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>list</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns a list that contains all the elements from Target but with the elements from ListVariable inserted at Position start.\nReturns a new list, created by inserting ListVariable into the Target list at Position. Note this does not alter the Target.</string>
+   </map>
+   <key>llListRandomize</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>ListVariable</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+     <map>
+      <key>Stride</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>list</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns a randomized list of blocks of size Stride.\nReturns the specified list randomized into blocks of size stride.\n
 				If the remainder from the length of the list, divided by the stride is non-zero, this function does not randomize the list.</string>
-			</map>
-			<key>llListReplaceList</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Target</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-					<map>
-						<key>ListVariable</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-					<map>
-						<key>Start</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>End</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>list</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns a list that is Target with Start through End removed and ListVariable inserted at Start.\nReturns a list replacing the slice of the Target list from Start to End with the specified ListVariable. Start and End are inclusive, so 0, 1 would replace the first two entries and 0, 0 would replace only the first list entry.</string>
-			</map>
-			<key>llListSort</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>ListVariable</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-					<map>
-						<key>Stride</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>Ascending</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>list</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Sorts the list into blocks of stride, in Ascending order if Ascending == TRUE. The sort order is affected by type.\nReturns the specified list, sorted into blocks of stride in ascending order (if Ascending is TRUE, otherwise descending). Note that sort only works if the first entry of each block is the same type.</string>
-			</map>
-			<key>llListStatistics</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Operation</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>ListVariable</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>float</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Performs statistical aggregate functions on ListVariable using LIST_STAT_* Operations.\nThis function allows a script to perform a statistical operation as defined by operation on a list composed of integers and floats.</string>
-			</map>
-			<key>llLoadURL</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>AvatarID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-					<map>
-						<key>Text</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>URL</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>10.0</real>
-				<key>tooltip</key>
-				<string>Shows dialog to avatar AvatarID offering to load web page at URL.	If user clicks yes, launches their web browser.\nllLoadURL displays a dialogue box to the user, offering to load the specified web page using the default web browser.</string>
-			</map>
-			<key>llLog</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Value</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>float</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the natural logarithm of Value. Returns zero if Value &lt;= 0.\nReturns the base e (natural) logarithm of the specified Value.</string>
-			</map>
-			<key>llLog10</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Value</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>float</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the base 10 logarithm of Value. Returns zero if Value &lt;= 0.\nReturns the base 10 (common) logarithm of the specified Value.</string>
-			</map>
-			<key>llLookAt</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Target</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-					<map>
-						<key>Strength</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-					<map>
-						<key>Damping</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Cause object name to point it's forward axis towards Target.\nCause object to point the forward axis toward Target.\n
+   </map>
+   <key>llListReplaceList</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Target</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+     <map>
+      <key>ListVariable</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+     <map>
+      <key>Start</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>End</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>list</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns a list that is Target with Start through End removed and ListVariable inserted at Start.\nReturns a list replacing the slice of the Target list from Start to End with the specified ListVariable. Start and End are inclusive, so 0, 1 would replace the first two entries and 0, 0 would replace only the first list entry.</string>
+   </map>
+   <key>llListSort</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>ListVariable</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+     <map>
+      <key>Stride</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>Ascending</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>list</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Sorts the list into blocks of stride, in Ascending order if Ascending == TRUE. The sort order is affected by type.\nReturns the specified list, sorted into blocks of stride in ascending order (if Ascending is TRUE, otherwise descending). Note that sort only works if the first entry of each block is the same type.</string>
+   </map>
+   <key>llListStatistics</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Operation</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>ListVariable</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>float</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Performs statistical aggregate functions on ListVariable using LIST_STAT_* Operations.\nThis function allows a script to perform a statistical operation as defined by operation on a list composed of integers and floats.</string>
+   </map>
+   <key>llLoadURL</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>AvatarID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+     <map>
+      <key>Text</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>URL</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>10.0</real>
+    <key>tooltip</key>
+    <string>Shows dialog to avatar AvatarID offering to load web page at URL.	If user clicks yes, launches their web browser.\nllLoadURL displays a dialogue box to the user, offering to load the specified web page using the default web browser.</string>
+   </map>
+   <key>llLog</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Value</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>float</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the natural logarithm of Value. Returns zero if Value &lt;= 0.\nReturns the base e (natural) logarithm of the specified Value.</string>
+   </map>
+   <key>llLog10</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Value</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>float</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the base 10 logarithm of Value. Returns zero if Value &lt;= 0.\nReturns the base 10 (common) logarithm of the specified Value.</string>
+   </map>
+   <key>llLookAt</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Target</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+     <map>
+      <key>Strength</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+     <map>
+      <key>Damping</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Cause object name to point it's forward axis towards Target.\nCause object to point the forward axis toward Target.\n
 				Good Strength values are around half the mass of the object and good Damping values are less than 1/10th of the Strength.\n
 				Asymmetrical shapes require smaller Damping. A Strength of 0.0 cancels the look at.</string>
-			</map>
-			<key>llLoopSound</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Sound</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>Volume</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Plays attached Sound, looping indefinitely, at Volume (0.0 - 1.0).\nSimilar to llPlaySound, this function plays a sound attached to an object, but will continuously repeat that sound until llStopSound or llPlaySound is called.\n
+   </map>
+   <key>llLoopSound</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Sound</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>Volume</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Plays attached Sound, looping indefinitely, at Volume (0.0 - 1.0).\nSimilar to llPlaySound, this function plays a sound attached to an object, but will continuously repeat that sound until llStopSound or llPlaySound is called.\n
 			Only one sound may be attached to an object at a time. A second call to llLoopSound with the same key will not restart the sound, but the new volume will be used. This allows control over the volume of already playing sounds.\n
 			Setting the volume to 0 is not the same as calling llStopSound; a sound with 0 volume will continue to loop.\n
 			To restart the sound from the beginning, call llStopSound before calling llLoopSound again.</string>
-			</map>
-			<key>llLoopSoundMaster</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Sound</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>Volume</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Plays attached Sound, looping at volume (0.0 - 1.0), and declares it a sync master.\nBehaviour is identical to llLoopSound, with the addition of marking the source as a "Sync Master", causing "Slave" sounds to sync to it. If there are multiple masters within a viewers interest area, the most audible one (a function of both distance and volume) will win out as the master.\n
+   </map>
+   <key>llLoopSoundMaster</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Sound</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>Volume</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Plays attached Sound, looping at volume (0.0 - 1.0), and declares it a sync master.\nBehaviour is identical to llLoopSound, with the addition of marking the source as a "Sync Master", causing "Slave" sounds to sync to it. If there are multiple masters within a viewers interest area, the most audible one (a function of both distance and volume) will win out as the master.\n
 				The use of multiple masters within a small area is unlikely to produce the desired effect.</string>
-			</map>
-			<key>llLoopSoundSlave</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Sound</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>Volume</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Plays attached sound looping at volume (0.0 - 1.0), synced to most audible sync master.\nBehaviour is identical to llLoopSound, unless there is a "Sync Master" present.\n
+   </map>
+   <key>llLoopSoundSlave</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Sound</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>Volume</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Plays attached sound looping at volume (0.0 - 1.0), synced to most audible sync master.\nBehaviour is identical to llLoopSound, unless there is a "Sync Master" present.\n
 				If a Sync Master is already playing the Slave sound will begin playing from the same point the master is in its loop synchronizing the loop points of both sounds.\n
 				If a Sync Master is started when the Slave is already playing, the Slave will skip to the correct position to sync with the Master.</string>
-			</map>
-			<key>llMakeExplosion</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Particles</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>Scale</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-					<map>
-						<key>Velocity</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-					<map>
-						<key>Lifetime</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-					<map>
-						<key>Arc</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-					<map>
-						<key>Texture</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>Offset</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-				</array>
-				<key>deprecated</key>
-				<boolean>true</boolean>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.1</real>
-				<key>tooltip</key>
-				<string>Make a round explosion of particles. Deprecated: Use llParticleSystem instead.\nMake a round explosion of particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.</string>
-			</map>
-			<key>llMakeFire</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Particles</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>Scale</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-					<map>
-						<key>Velocity</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-					<map>
-						<key>Lifetime</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-					<map>
-						<key>Arc</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-					<map>
-						<key>Texture</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>Offset</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-				</array>
-				<key>deprecated</key>
-				<boolean>true</boolean>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.1</real>
-				<key>tooltip</key>
-				<string>Make fire like particles. Deprecated: Use llParticleSystem instead.\nMake fire particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.</string>
-			</map>
-			<key>llMakeFountain</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Particles</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>Scale</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-					<map>
-						<key>Velocity</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-					<map>
-						<key>Lifetime</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-					<map>
-						<key>Arc</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-					<map>
-						<key>Texture</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>Offset</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-				</array>
-				<key>deprecated</key>
-				<boolean>true</boolean>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.1</real>
-				<key>tooltip</key>
-				<string>Make a fountain of particles. Deprecated: Use llParticleSystem instead.\nMake a fountain of particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.</string>
-			</map>
-			<key>llMakeSmoke</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Particles</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>Scale</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-					<map>
-						<key>Velocity</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-					<map>
-						<key>Lifetime</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-					<map>
-						<key>Arc</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-					<map>
-						<key>Texture</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>Offset</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-				</array>
-				<key>deprecated</key>
-				<boolean>true</boolean>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.1</real>
-				<key>tooltip</key>
-				<string>Make smoke like particles. Deprecated: Use llParticleSystem instead.\nMake smoky particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.</string>
-			</map>
-			<key>llManageEstateAccess</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Action</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>AvatarID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real/>
-				<key>return</key>
-				<string>integer</string>
-				<key>sleep</key>
-				<real/>
-				<key>tooltip</key>
-				<string>Use to add or remove agents from the estate's agent access or ban lists or groups from the estate's group access list.\nUse to add or remove agents from the estate's agent access or ban lists or groups from the estate's group access list.\n
+   </map>
+   <key>llMakeExplosion</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Particles</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>Scale</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+     <map>
+      <key>Velocity</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+     <map>
+      <key>Lifetime</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+     <map>
+      <key>Arc</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+     <map>
+      <key>Texture</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>Offset</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+    </array>
+    <key>deprecated</key>
+    <boolean>true</boolean>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.1</real>
+    <key>tooltip</key>
+    <string>Make a round explosion of particles. Deprecated: Use llParticleSystem instead.\nMake a round explosion of particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.</string>
+   </map>
+   <key>llMakeFire</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Particles</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>Scale</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+     <map>
+      <key>Velocity</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+     <map>
+      <key>Lifetime</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+     <map>
+      <key>Arc</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+     <map>
+      <key>Texture</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>Offset</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+    </array>
+    <key>deprecated</key>
+    <boolean>true</boolean>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.1</real>
+    <key>tooltip</key>
+    <string>Make fire like particles. Deprecated: Use llParticleSystem instead.\nMake fire particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.</string>
+   </map>
+   <key>llMakeFountain</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Particles</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>Scale</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+     <map>
+      <key>Velocity</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+     <map>
+      <key>Lifetime</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+     <map>
+      <key>Arc</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+     <map>
+      <key>Texture</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>Offset</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+    </array>
+    <key>deprecated</key>
+    <boolean>true</boolean>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.1</real>
+    <key>tooltip</key>
+    <string>Make a fountain of particles. Deprecated: Use llParticleSystem instead.\nMake a fountain of particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.</string>
+   </map>
+   <key>llMakeSmoke</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Particles</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>Scale</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+     <map>
+      <key>Velocity</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+     <map>
+      <key>Lifetime</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+     <map>
+      <key>Arc</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+     <map>
+      <key>Texture</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>Offset</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+    </array>
+    <key>deprecated</key>
+    <boolean>true</boolean>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.1</real>
+    <key>tooltip</key>
+    <string>Make smoke like particles. Deprecated: Use llParticleSystem instead.\nMake smoky particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.</string>
+   </map>
+   <key>llManageEstateAccess</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Action</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>AvatarID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real/>
+    <key>return</key>
+    <string>integer</string>
+    <key>sleep</key>
+    <real/>
+    <key>tooltip</key>
+    <string>Use to add or remove agents from the estate's agent access or ban lists or groups from the estate's group access list.\nUse to add or remove agents from the estate's agent access or ban lists or groups from the estate's group access list.\n
 			Returns an integer representing a boolean, TRUE if the call was successful; FALSE if throttled, invalid action, invalid or null id or object owner is not allowed to manage the estate.</string>
-			</map>
-			<key>llMapDestination</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>RegionName</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>Position</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-					<map>
-						<key>Direction</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>1.0</real>
-				<key>tooltip</key>
-				<string>Opens world map centred on region with Position highlighted. Only works for scripts attached to avatar, or during touch events. NOTE: Direction currently does nothing.\nShows a given location on the map, opening the map window whenever it is called.\n
+   </map>
+   <key>llMapDestination</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>RegionName</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>Position</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+     <map>
+      <key>Direction</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>1.0</real>
+    <key>tooltip</key>
+    <string>Opens world map centred on region with Position highlighted. Only works for scripts attached to avatar, or during touch events. NOTE: Direction currently does nothing.\nShows a given location on the map, opening the map window whenever it is called.\n
 				There is no way to simply set the map position without opening the window.\n
 				Only works in attachments, or during touch events.</string>
-			</map>
-			<key>llMD5String</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Text</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>Nonce</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>string</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns a string of 32 hex characters that is an RSA Data Security Inc., MD5 Message-Digest Algorithm of Text with Nonce.\nPerforms an RSA Data Security, Inc. MD5 Message-Digest Algorithm on the specified string using the nonce (also known as salt).\n
+   </map>
+   <key>llMD5String</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Text</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>Nonce</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>string</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns a string of 32 hex characters that is an RSA Data Security Inc., MD5 Message-Digest Algorithm of Text with Nonce.\nPerforms an RSA Data Security, Inc. MD5 Message-Digest Algorithm on the specified string using the nonce (also known as salt).\n
 				Returns a 32-character hex string. (128-bit in binary.)</string>
-			</map>
-			<key>llMessageLinked</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>LinkNumber</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>Number</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>Text</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>ID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Sends Number, Text, and ID to members of the link set identified by LinkNumber (LINK_ROOT sends to root task in a linked set, LINK_SET sends to all tasks, LINK_ALL_OTHERS to all other tasks, LINK_ALL_CHILDREN to all children, LINK_THIS to the task the script it is in).\nSends the specified number, string, and key to members of the link set.\n
+   </map>
+   <key>llMessageLinked</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>LinkNumber</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>Number</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>Text</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>ID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Sends Number, Text, and ID to members of the link set identified by LinkNumber (LINK_ROOT sends to root task in a linked set, LINK_SET sends to all tasks, LINK_ALL_OTHERS to all other tasks, LINK_ALL_CHILDREN to all children, LINK_THIS to the task the script it is in).\nSends the specified number, string, and key to members of the link set.\n
 				The LinkNumber parameter is either a linked number available through llGetLinkNumber or a LINK_* constant.</string>
-			</map>
-			<key>llMinEventDelay</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Delay</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Set the minimum time between events being handled.</string>
-			</map>
-			<key>llModifyLand</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Action</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>Area</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Modify land with action (LAND_LEVEL, LAND_RAISE, LAND_LOWER, LAND_SMOOTH, LAND_NOISE, LAND_REVERT) on size (LAND_SMALL_BRUSH, LAND_MEDIUM_BRUSH, LAND_LARGE_BRUSH).\nModify land with action on size area. The parameters can be chosen from the land constants.</string>
-			</map>
-			<key>llModPow</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Value</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>Power</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>Modulus</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>integer</string>
-				<key>sleep</key>
-				<real>1.0</real>
-				<key>tooltip</key>
-				<string>Returns a Value raised to the Power, mod Modulus. ((a**b)%c) b is capped at 0xFFFF (16 bits).\nReturns (Value ^ Power) % Modulus. (Value raised to the Power, Modulus). Value is capped at 0xFFFF (16 bits).</string>
-			</map>
-			<key>llMoveToTarget</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Target</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-					<map>
-						<key>Tau</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Critically damp to Target in Tau seconds (if the script is physical).\nCritically damp to position target in tau-seconds if the script is physical. Good tau-values are greater than 0.2. A tau of 0.0 stops the critical damping.</string>
-			</map>
-			<key>llNavigateTo</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Location</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-					<map>
-						<key>Options</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real/>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real/>
-				<key>tooltip</key>
-				<string>Navigate to destination.\nDirects an object to travel to a defined position in the region or adjacent regions.</string>
-			</map>
-			<key>llOffsetTexture</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>OffsetS</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-					<map>
-						<key>OffsetT</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-					<map>
-						<key>Face</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.2</real>
-				<key>tooltip</key>
-				<string>Sets the texture S and T offsets for the chosen Face.\nSets the texture s and t offsets of face.\n
+   </map>
+   <key>llMinEventDelay</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Delay</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Set the minimum time between events being handled.</string>
+   </map>
+   <key>llModifyLand</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Action</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>Area</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Modify land with action (LAND_LEVEL, LAND_RAISE, LAND_LOWER, LAND_SMOOTH, LAND_NOISE, LAND_REVERT) on size (LAND_SMALL_BRUSH, LAND_MEDIUM_BRUSH, LAND_LARGE_BRUSH).\nModify land with action on size area. The parameters can be chosen from the land constants.</string>
+   </map>
+   <key>llModPow</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Value</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>Power</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>Modulus</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>integer</string>
+    <key>sleep</key>
+    <real>1.0</real>
+    <key>tooltip</key>
+    <string>Returns a Value raised to the Power, mod Modulus. ((a**b)%c) b is capped at 0xFFFF (16 bits).\nReturns (Value ^ Power) % Modulus. (Value raised to the Power, Modulus). Value is capped at 0xFFFF (16 bits).</string>
+   </map>
+   <key>llMoveToTarget</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Target</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+     <map>
+      <key>Tau</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Critically damp to Target in Tau seconds (if the script is physical).\nCritically damp to position target in tau-seconds if the script is physical. Good tau-values are greater than 0.2. A tau of 0.0 stops the critical damping.</string>
+   </map>
+   <key>llNavigateTo</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Location</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+     <map>
+      <key>Options</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real/>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real/>
+    <key>tooltip</key>
+    <string>Navigate to destination.\nDirects an object to travel to a defined position in the region or adjacent regions.</string>
+   </map>
+   <key>llOffsetTexture</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>OffsetS</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+     <map>
+      <key>OffsetT</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+     <map>
+      <key>Face</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.2</real>
+    <key>tooltip</key>
+    <string>Sets the texture S and T offsets for the chosen Face.\nSets the texture s and t offsets of face.\n
 			If Face is ALL_SIDES this function sets the texture offsets for all faces.</string>
-			</map>
-			<key>llOpenRemoteDataChannel</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>deprecated</key>
-				<boolean>true</boolean>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>1.0</real>
-				<key>tooltip</key>
-				<string>Requests a channel to listen for XML-RPC calls. Will trigger a remote_data event with channel ID once it is available.\nRequests a channel to listen for XML-RPC calls. (Deprecated: XML-RPC should not be used. Use http-in instead.)\n
+   </map>
+   <key>llOpenRemoteDataChannel</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>deprecated</key>
+    <boolean>true</boolean>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>1.0</real>
+    <key>tooltip</key>
+    <string>Requests a channel to listen for XML-RPC calls. Will trigger a remote_data event with channel ID once it is available.\nRequests a channel to listen for XML-RPC calls. (Deprecated: XML-RPC should not be used. Use http-in instead.)\n
 				Will trigger a remote_data event with type = REMOTE_DATA_CHANNEL and a channel ID (key) once it is available.\n
 				This channel ID must be referenced in the XML-RPC call to the script (from the internet) -- so the key must somehow get to the scripter's XML-RPC client, most often via llEmail, llHttpRequest or llLoadUrl.</string>
-			</map>
-			<key>llOverMyLand</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>ID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>integer</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns TRUE if id ID over land owned by the script owner, otherwise FALSE.\nReturns TRUE if key ID is over land owned by the object owner, FALSE otherwise.</string>
-			</map>
-			<key>llOwnerSay</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Text</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>says Text to owner only (if owner is in region).\nSays Text to the owner of the object running the script, if the owner has been within the object's simulator since logging into Second Life, regardless of where they may be in-world.</string>
-			</map>
-			<key>llParcelMediaCommandList</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>CommandList</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>2.0</real>
-				<key>tooltip</key>
-				<string>Sends a list of commands, some with arguments, to a parcel.\nControls the playback of multimedia resources on a parcel or for an agent.</string>
-			</map>
-			<key>llParcelMediaQuery</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>QueryList</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>list</string>
-				<key>sleep</key>
-				<real>2.0</real>
-				<key>tooltip</key>
-				<string>Returns a list containing results of the sent query.\nQueries the texture and/or URL for QuickTime-playable video on the land parcel.\n
+   </map>
+   <key>llOverMyLand</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>ID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>integer</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns TRUE if id ID over land owned by the script owner, otherwise FALSE.\nReturns TRUE if key ID is over land owned by the object owner, FALSE otherwise.</string>
+   </map>
+   <key>llOwnerSay</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Text</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>says Text to owner only (if owner is in region).\nSays Text to the owner of the object running the script, if the owner has been within the object's simulator since logging into Second Life, regardless of where they may be in-world.</string>
+   </map>
+   <key>llParcelMediaCommandList</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>CommandList</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>2.0</real>
+    <key>tooltip</key>
+    <string>Sends a list of commands, some with arguments, to a parcel.\nControls the playback of multimedia resources on a parcel or for an agent.</string>
+   </map>
+   <key>llParcelMediaQuery</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>QueryList</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>list</string>
+    <key>sleep</key>
+    <real>2.0</real>
+    <key>tooltip</key>
+    <string>Returns a list containing results of the sent query.\nQueries the texture and/or URL for QuickTime-playable video on the land parcel.\n
 				This function will only work if the script is contained within an object owned by the land-owner (or if the land is owned by a group, only if the object has been deeded to the group). It will not work for group land if the object owner is a member of the group. The object actually has to be owned by the group.</string>
-			</map>
-			<key>llParseString2List</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Text</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>Separators</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-					<map>
-						<key>Spacers</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>list</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Breaks Text into a list, discarding Separators, keeping Spacers (Separators and Spacers must be lists of strings, maximum of 8 each).\nBreaks the Text into a list using Separators and Spacers to delimit entries. Separators are discarded, while Spacers are kept. Any empty entries are ignored.\n
+   </map>
+   <key>llParseString2List</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Text</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>Separators</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+     <map>
+      <key>Spacers</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>list</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Breaks Text into a list, discarding Separators, keeping Spacers (Separators and Spacers must be lists of strings, maximum of 8 each).\nBreaks the Text into a list using Separators and Spacers to delimit entries. Separators are discarded, while Spacers are kept. Any empty entries are ignored.\n
 				The separators and spacers must be lists of strings with a maximum of 8 entries each. So, if you had made the call:\n
 				llParseString2List("Parsethisnow! I dare:you to.", ["this", "!", " "], [":"]);\n
 				You would get the list: ["Parse", "now", "I", "dare", ":", "you", "to"].</string>
-			</map>
-			<key>llParseStringKeepNulls</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Text</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>Separators</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-					<map>
-						<key>Spacers</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>list</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Breaks Text into a list, discarding separators, keeping spacers, keeping any null values generated. (separators and spacers must be lists of strings, maximum of 8 each).\nllParseStringKeepNulls works almost exactly like llParseString2List, except that if a null is found it will add a null-string instead of discarding it like llParseString2List does.</string>
-			</map>
-			<key>llParticleSystem</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Parameters</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Creates a particle system based on Parameters.	An empty list removes particle system from object.
+   </map>
+   <key>llParseStringKeepNulls</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Text</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>Separators</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+     <map>
+      <key>Spacers</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>list</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Breaks Text into a list, discarding separators, keeping spacers, keeping any null values generated. (separators and spacers must be lists of strings, maximum of 8 each).\nllParseStringKeepNulls works almost exactly like llParseString2List, except that if a null is found it will add a null-string instead of discarding it like llParseString2List does.</string>
+   </map>
+   <key>llParticleSystem</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Parameters</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Creates a particle system based on Parameters.	An empty list removes particle system from object.
 				List format is [ rule-1, data-1, rule-2, data-2 . . . rule-n, data-n ].\nMakes a particle system based on the parameter list.\n
 				The parameters are specified as an ordered list of parameter and value. Valid parameters and their expected values can be found in the particle system constants.\n
 				Here is a simple example:\n
 				llParticleSystem([PSYS_PART_FLAGS, PSYS_PART_WIND_MASK, PSYS_PART_START_COLOR, &lt;1, 0, 0&gt;, PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_EXPLODE]);</string>
-			</map>
-			<key>llPassCollisions</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Pass</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>If Pass == TRUE, collisions are passed from children on to parents (default is FALSE).\nIf pass is TRUE, land and object collisions are passed from children on to parents.\n
+   </map>
+   <key>llPassCollisions</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Pass</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>If Pass == TRUE, collisions are passed from children on to parents (default is FALSE).\nIf pass is TRUE, land and object collisions are passed from children on to parents.\n
 				The default is FALSE if there is no script to handle the collision events.</string>
-			</map>
-			<key>llPassTouches</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Pass</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>If pass == TRUE, touches are passed from children on to parents (default is FALSE).\nIf pass is TRUE, touches are passed from children on to parents.\n
+   </map>
+   <key>llPassTouches</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Pass</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>If pass == TRUE, touches are passed from children on to parents (default is FALSE).\nIf pass is TRUE, touches are passed from children on to parents.\n
 				The default is TRUE if there is no script to handle the touch events.</string>
-			</map>
-			<key>llPatrolPoints</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Points</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-					<map>
-						<key>Options</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real/>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real/>
-				<key>tooltip</key>
-				<string>Patrol a list of points.\nSets the points for a character (llCreateCharacter) to patrol along.</string>
-			</map>
-			<key>llPlaySound</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Sound</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>Volume</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Plays attached Sound once, at Volume (0.0 - 1.0).\nPlays a sound once. The sound will be attached to the object and follow object's movement. Only one sound may be attached to an object at a time, and attaching a new sound or calling llStopSound will stop the previously attached sound.\n
+   </map>
+   <key>llPatrolPoints</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Points</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+     <map>
+      <key>Options</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real/>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real/>
+    <key>tooltip</key>
+    <string>Patrol a list of points.\nSets the points for a character (llCreateCharacter) to patrol along.</string>
+   </map>
+   <key>llPlaySound</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Sound</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>Volume</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Plays attached Sound once, at Volume (0.0 - 1.0).\nPlays a sound once. The sound will be attached to the object and follow object's movement. Only one sound may be attached to an object at a time, and attaching a new sound or calling llStopSound will stop the previously attached sound.\n
 				A second call to llPlaySound with the same sound will not restart the sound, but the new volume will be used, which allows control over the volume of already playing sounds.\n
 				To restart the sound from the beginning, call llStopSound before calling llPlaySound again.</string>
-			</map>
-			<key>llPlaySoundSlave</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Sound</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>Volume</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Plays attached Sound once, at Volume (0.0 - 1.0), synced to next loop of most audible sync master.\nBehaviour is identical to llPlaySound, unless there is a "Sync Master" present. If a Sync Master is already playing, the Slave sound will not be played until the Master hits its loop point and returns to the beginning.\n
+   </map>
+   <key>llPlaySoundSlave</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Sound</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>Volume</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Plays attached Sound once, at Volume (0.0 - 1.0), synced to next loop of most audible sync master.\nBehaviour is identical to llPlaySound, unless there is a "Sync Master" present. If a Sync Master is already playing, the Slave sound will not be played until the Master hits its loop point and returns to the beginning.\n
 				llPlaySoundSlave will play the sound exactly once; if it is desired to have the sound play every time the Master loops, either use llLoopSoundSlave with extra silence padded on the end of the sound or ensure that llPlaySoundSlave is called at least once per loop of the Master.</string>
-			</map>
-			<key>llPow</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Value</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-					<map>
-						<key>Exponent</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the Value raised to the power Exponent, or returns 0 and triggers Math Error for imaginary results.\nReturns the Value raised to the Exponent.</string>
-			</map>
-			<key>llPreloadSound</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Sound</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>1.0</real>
-				<key>tooltip</key>
-				<string>Preloads a sound on viewers within range.\nCauses nearby viewers to preload the Sound from the object's inventory. This is intended to prevent delays in starting new sounds when called upon.</string>
-			</map>
-			<key>llPursue</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>TargetID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-					<map>
-						<key>Options</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real/>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real/>
-				<key>tooltip</key>
-				<string>Chase after a target.\nCauses the character (llCharacter) to pursue the target defined by TargetID.</string>
-			</map>
-			<key>llPushObject</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>ObjectID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-					<map>
-						<key>Impulse</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-					<map>
-						<key>AngularImpulse</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-					<map>
-						<key>Local</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Applies Impulse and AngularImpulse to ObjectID.\nApplies the supplied impulse and angular impulse to the object specified.</string>
-			</map>
-			<key>llRefreshPrimURL</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>20.0</real>
-				<key>tooltip</key>
-				<string>Reloads the web page shown on the sides of the object.</string>
-			</map>
-			<key>llRegionSay</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Channel</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>Text</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Broadcasts Text to entire region on Channel (not 0.).\nSays the Text on the specified non-zero Channel, so that it can be heard anywhere in the region by a script listening on that channel.</string>
-			</map>
-			<key>llRegionSayTo</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>TargetID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-					<map>
-						<key>Channel</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>Text</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Says Text, on Channel, to avatar or object indicated by TargetID (if within region).\nSays the Text on the supplied channel number, to the object or avatar specified.</string>
-			</map>
-			<key>llReleaseCamera</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>AvatarID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-				</array>
-				<key>deprecated</key>
-				<boolean>true</boolean>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Return camera to agent.\nDeprecated: Use llClearCameraParams instead.</string>
-			</map>
-			<key>llReleaseControls</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Stop taking inputs.\nStop taking inputs from the avatar.</string>
-			</map>
-			<key>llReleaseURL</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>URL</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Releases the specified URL, it will no longer be usable.</string>
-			</map>
-			<key>llRemoteDataReply</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>ChannelID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-					<map>
-						<key>MessageID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-					<map>
-						<key>Data</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>Data</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>deprecated</key>
-				<boolean>true</boolean>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>3.0</real>
-				<key>tooltip</key>
-				<string>Send an XML-RPC reply to MessageID on ChannelID with payload of string sData and integer iData. Deprecated: Use HTTP functions/events instead.\nDeprecated: Use HTTP functions/events instead.\n
+   </map>
+   <key>llPow</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Value</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+     <map>
+      <key>Exponent</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the Value raised to the power Exponent, or returns 0 and triggers Math Error for imaginary results.\nReturns the Value raised to the Exponent.</string>
+   </map>
+   <key>llPreloadSound</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Sound</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>1.0</real>
+    <key>tooltip</key>
+    <string>Preloads a sound on viewers within range.\nCauses nearby viewers to preload the Sound from the object's inventory. This is intended to prevent delays in starting new sounds when called upon.</string>
+   </map>
+   <key>llPursue</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>TargetID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+     <map>
+      <key>Options</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real/>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real/>
+    <key>tooltip</key>
+    <string>Chase after a target.\nCauses the character (llCharacter) to pursue the target defined by TargetID.</string>
+   </map>
+   <key>llPushObject</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>ObjectID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+     <map>
+      <key>Impulse</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+     <map>
+      <key>AngularImpulse</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+     <map>
+      <key>Local</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Applies Impulse and AngularImpulse to ObjectID.\nApplies the supplied impulse and angular impulse to the object specified.</string>
+   </map>
+   <key>llRefreshPrimURL</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>20.0</real>
+    <key>tooltip</key>
+    <string>Reloads the web page shown on the sides of the object.</string>
+   </map>
+   <key>llRegionSay</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Channel</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>Text</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Broadcasts Text to entire region on Channel (not 0.).\nSays the Text on the specified non-zero Channel, so that it can be heard anywhere in the region by a script listening on that channel.</string>
+   </map>
+   <key>llRegionSayTo</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>TargetID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+     <map>
+      <key>Channel</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>Text</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Says Text, on Channel, to avatar or object indicated by TargetID (if within region).\nSays the Text on the supplied channel number, to the object or avatar specified.</string>
+   </map>
+   <key>llReleaseCamera</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>AvatarID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+    </array>
+    <key>deprecated</key>
+    <boolean>true</boolean>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Return camera to agent.\nDeprecated: Use llClearCameraParams instead.</string>
+   </map>
+   <key>llReleaseControls</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Stop taking inputs.\nStop taking inputs from the avatar.</string>
+   </map>
+   <key>llReleaseURL</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>URL</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Releases the specified URL, it will no longer be usable.</string>
+   </map>
+   <key>llRemoteDataReply</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>ChannelID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+     <map>
+      <key>MessageID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+     <map>
+      <key>Data</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>Data</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>deprecated</key>
+    <boolean>true</boolean>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>3.0</real>
+    <key>tooltip</key>
+    <string>Send an XML-RPC reply to MessageID on ChannelID with payload of string sData and integer iData. Deprecated: Use HTTP functions/events instead.\nDeprecated: Use HTTP functions/events instead.\n
 				Send an XML-RPC reply to the request with kMessageID on kChannelID with payload of string sData and integer iData.\n
 				The size of sData is limited to 254 characters.</string>
-			</map>
-			<key>llRemoteDataSetRegion</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>deprecated</key>
-				<boolean>true</boolean>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Deprecated: Use HTTP functions/events instead.\n
+   </map>
+   <key>llRemoteDataSetRegion</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>deprecated</key>
+    <boolean>true</boolean>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Deprecated: Use HTTP functions/events instead.\n
 				If an object using remote data channels changes regions, you must call this function to re-register the remote data channels.
 				You do not need to make this call if you don't change regions.\nDeprecated: Use HTTP functions/events instead.\n
 				Does not work! Use llOpenRemoteDataChannel instead.</string>
-			</map>
-			<key>llRemoteLoadScriptPin</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>ObjectID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-					<map>
-						<key>ScriptName</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>PIN</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>Running</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>StartParameter</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>3.0</real>
-				<key>tooltip</key>
-				<string>If the owner of the object this script is attached to can modify ObjectID, they are in the same region, and the matching PIN is used, copy ScriptName into target, if Running == TRUE, start the script with StartParameter.\nIf the owner of the object containing this script can modify the object identified by the specified object key, and if the PIN matches the PIN previously set using llSetRemoteScriptAccessPin (on the target prim), then the script will be copied into target.</string>
-			</map>
-			<key>llRemoveFromLandBanList</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>AvatarID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Remove avatar from the land ban list.\nRemove specified avatar from the land parcel ban list.</string>
-			</map>
-			<key>llRemoveFromLandPassList</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>AvatarID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Remove avatar from the land pass list.\nRemove specified avatar from the land parcel pass list.</string>
-			</map>
-			<key>llRemoveInventory</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>InventoryItem</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Remove the named inventory item.\nRemove the named inventory item from the object inventory.</string>
-			</map>
-			<key>llRemoveVehicleFlags</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Vehiclelags</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Removes the enabled bits in 'flags'.\nSets the vehicle flags to FALSE. Valid parameters can be found in the vehicle flags constants section.</string>
-			</map>
-			<key>llRequestAgentData</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>AvatarID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-					<map>
-						<key>Data</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>key</string>
-				<key>sleep</key>
-				<real>0.1</real>
-				<key>tooltip</key>
-				<string>Requests data about AvatarID. When data is available the dataserver event will be raised.\nThis function requests data about an avatar. If and when the information is collected, the dataserver event is triggered with the key returned from this function passed in the requested parameter. See the agent data constants (DATA_*) for details about valid values of data and what each will return in the dataserver event.</string>
-			</map>
-			<key>llRequestDisplayName</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>AvatarID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>key</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Requests name of an avatar. When data is available, the dataserver event will be raised.\nRequests the Display Name of the agent. When the Display Name is available the dataserver event will be raised.\n
+   </map>
+   <key>llRemoteLoadScriptPin</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>ObjectID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+     <map>
+      <key>ScriptName</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>PIN</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>Running</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>StartParameter</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>3.0</real>
+    <key>tooltip</key>
+    <string>If the owner of the object this script is attached to can modify ObjectID, they are in the same region, and the matching PIN is used, copy ScriptName into target, if Running == TRUE, start the script with StartParameter.\nIf the owner of the object containing this script can modify the object identified by the specified object key, and if the PIN matches the PIN previously set using llSetRemoteScriptAccessPin (on the target prim), then the script will be copied into target.</string>
+   </map>
+   <key>llRemoveFromLandBanList</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>AvatarID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Remove avatar from the land ban list.\nRemove specified avatar from the land parcel ban list.</string>
+   </map>
+   <key>llRemoveFromLandPassList</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>AvatarID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Remove avatar from the land pass list.\nRemove specified avatar from the land parcel pass list.</string>
+   </map>
+   <key>llRemoveInventory</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>InventoryItem</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Remove the named inventory item.\nRemove the named inventory item from the object inventory.</string>
+   </map>
+   <key>llRemoveVehicleFlags</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Vehiclelags</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Removes the enabled bits in 'flags'.\nSets the vehicle flags to FALSE. Valid parameters can be found in the vehicle flags constants section.</string>
+   </map>
+   <key>llRequestAgentData</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>AvatarID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+     <map>
+      <key>Data</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>key</string>
+    <key>sleep</key>
+    <real>0.1</real>
+    <key>tooltip</key>
+    <string>Requests data about AvatarID. When data is available the dataserver event will be raised.\nThis function requests data about an avatar. If and when the information is collected, the dataserver event is triggered with the key returned from this function passed in the requested parameter. See the agent data constants (DATA_*) for details about valid values of data and what each will return in the dataserver event.</string>
+   </map>
+   <key>llRequestDisplayName</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>AvatarID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>key</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Requests name of an avatar. When data is available, the dataserver event will be raised.\nRequests the Display Name of the agent. When the Display Name is available the dataserver event will be raised.\n
 				The avatar identified does not need to be in the same region or online at the time of the request.\n
 				Returns a key that is used to identify the dataserver event when it is raised.</string>
-			</map>
-			<key>llRequestInventoryData</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>InventoryItem</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>key</string>
-				<key>sleep</key>
-				<real>1.0</real>
-				<key>tooltip</key>
-				<string>Requests data from object's inventory object. When data is available the dataserver event will be raised.\nRequests data for the object inventory item named.\n
+   </map>
+   <key>llRequestInventoryData</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>InventoryItem</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>key</string>
+    <key>sleep</key>
+    <real>1.0</real>
+    <key>tooltip</key>
+    <string>Requests data from object's inventory object. When data is available the dataserver event will be raised.\nRequests data for the object inventory item named.\n
 				When data is available the dataserver event will be raised with the key returned from this function in the requested parameter.\n
 				The only request currently implemented is to request data from landmarks, where the data returned is in the form "&lt;float, float, float&gt;" which can be cast to a vector. This position is in region local coordinates.</string>
-			</map>
-			<key>llRequestPermissions</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>AvatarID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-					<map>
-						<key>PermmissionMask</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Ask AvatarID to allow the script to do PermmissionMask (NB: Debit, ownership, link, joint, and permission requests can only go to the task's owner).\nAsk avatar to allow the script to perform certain actions. The permission flag should be one or more PERMISSION_* constants.\n
+   </map>
+   <key>llRequestPermissions</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>AvatarID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+     <map>
+      <key>PermmissionMask</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Ask AvatarID to allow the script to do PermmissionMask (NB: Debit, ownership, link, joint, and permission requests can only go to the task's owner).\nAsk avatar to allow the script to perform certain actions. The permission flag should be one or more PERMISSION_* constants.\n
 				Multiple permissions can be requested simultaneously by ORing the constants together. Many of the permissions requests can only go to object owner.\n
 				This call will not stop script execution. If the avatar grants the requested permissions, the run_time_permissions event will be called.\n
 				Permissions for a single avatar are granted to a script, not to an object. So multiple scripts can hold permissions for multiple avatars.</string>
-			</map>
-			<key>llRequestSecureURL</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>key</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Requests one HTTPS:// (SSL) URL for use by this object. An http_request event is triggered with the results.\nRequests one HTTPS:// (SSL) URL for use by this object. The http_request event is triggered with results.\n
+   </map>
+   <key>llRequestSecureURL</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>key</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Requests one HTTPS:// (SSL) URL for use by this object. An http_request event is triggered with the results.\nRequests one HTTPS:// (SSL) URL for use by this object. The http_request event is triggered with results.\n
 				Returns a key that is the handle used for identifying the request in the http_request event.</string>
-			</map>
-			<key>llRequestSimulatorData</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>RegionName</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>Data</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>key</string>
-				<key>sleep</key>
-				<real>1.0</real>
-				<key>tooltip</key>
-				<string>Requests data about a simulator. When data is available the dataserver event will be raised.\nRequests data about the region named. Data should use one of the DATA_SIM_* constants.\n
+   </map>
+   <key>llRequestSimulatorData</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>RegionName</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>Data</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>key</string>
+    <key>sleep</key>
+    <real>1.0</real>
+    <key>tooltip</key>
+    <string>Requests data about a simulator. When data is available the dataserver event will be raised.\nRequests data about the region named. Data should use one of the DATA_SIM_* constants.\n
 			Returns a dataserver query ID and triggers the dataserver event when data is found. The region name is usually not case-sensitive, but sometimes will return data for a similarly-named region if the supplied case doesn't match the intended region's actual name.</string>
-			</map>
-			<key>llRequestURL</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>key</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Requests one HTTP:// URL for use by this object. An http_request event is triggered with the results.\nRequests one HTTP:// URL for use by this script. The http_request event is triggered with the result of the request.\n
+   </map>
+   <key>llRequestURL</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>key</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Requests one HTTP:// URL for use by this object. An http_request event is triggered with the results.\nRequests one HTTP:// URL for use by this script. The http_request event is triggered with the result of the request.\n
 				Returns a key that is the handle used for identifying the result in the http_request event.</string>
-			</map>
-			<key>llRequestUsername</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>AvatarID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>key</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Requests single-word user-name of an avatar. When data is available the dataserver event will be raised.\nRequests the user-name of the identified agent. When the user-name is available the dataserver event is raised.\nThe agent identified does not need to be in the same region or online at the time of the request.\nReturns a key that is used to identify the dataserver event when it is raised.</string>
-			</map>
-			<key>llResetAnimationOverride</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>AnimationState</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0</real>
-				<key>tooltip</key>
-				<string>Resets the animation of the specified animation state to the default value.\nIf animation state equals "ALL", then all animation states are reset.</string>
-			</map>
-			<key>llResetLandBanList</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Removes all residents from the land ban list.</string>
-			</map>
-			<key>llResetLandPassList</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Removes all residents from the land access/pass list.</string>
-			</map>
-			<key>llResetOtherScript</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>ScriptName</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Resets the named script.</string>
-			</map>
-			<key>llResetScript</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Resets the script.</string>
-			</map>
-			<key>llResetTime</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Sets the time to zero.\nSets the internal timer to zero.</string>
-			</map>
-			<key>llReturnObjectsByID</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>ObjectIDs</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>integer</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Return objects using their UUIDs</string>
-			</map>
-			<key>llReturnObjectsByOwner</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>ID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-					<map>
-						<key>Scope</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>integer</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Return objects based upon their owner and a scope of parcel, parcel owner, or region.</string>
-			</map>
-			<key>llRezAtRoot</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>InventoryItem</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>Position</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-					<map>
-						<key>Velocity</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-					<map>
-						<key>Rotation</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>rotation</string>
-						</map>
-					</map>
-					<map>
-						<key>StartParameter</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>200.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.1</real>
-				<key>tooltip</key>
-				<string>Instantiate owner's InventoryItem at Position with Velocity, Rotation and with StartParameter. The last selected root object's location will be set to Position.\nCreates object's inventory item at the given Position, with Velocity, Rotation, and StartParameter.</string>
-			</map>
-			<key>llRezObject</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>InventoryItem</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>Position</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-					<map>
-						<key>Velocity</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-					<map>
-						<key>Rotation</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>rotation</string>
-						</map>
-					</map>
-					<map>
-						<key>StartParameter</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>200</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.1</real>
-				<key>tooltip</key>
-				<string>Instantiate owners InventoryItem at Position with Velocity, Rotation and with start StartParameter.\nCreates object's inventory item at Position with Velocity and Rotation supplied. The StartParameter value will be available to the newly created object in the on_rez event or through the llGetStartParameter function.\nThe Velocity parameter is ignored if the rezzed object is not physical.</string>
-			</map>
-			<key>llRot2Angle</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Rotation</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>rotation</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>float</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the rotation angle represented by Rotation.\nReturns the angle represented by the Rotation.</string>
-			</map>
-			<key>llRot2Axis</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Rotation</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>rotation</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>vector</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the rotation axis represented by Rotation.\nReturns the axis represented by the Rotation.</string>
-			</map>
-			<key>llRot2Euler</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Rotation</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>rotation</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>vector</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the Euler representation (roll, pitch, yaw) of Rotation.\nReturns the Euler Angle representation of the Rotation.</string>
-			</map>
-			<key>llRot2Fwd</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Rotation</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>rotation</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>vector</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the forward vector defined by Rotation.\nReturns the forward axis represented by the Rotation.</string>
-			</map>
-			<key>llRot2Left</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Rotation</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>rotation</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>vector</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the left vector defined by Rotation.\nReturns the left axis represented by the Rotation.</string>
-			</map>
-			<key>llRot2Up</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Rotation</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>rotation</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>vector</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the up vector defined by Rotation.\nReturns the up axis represented by the Rotation.</string>
-			</map>
-			<key>llRotateTexture</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Radians</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-					<map>
-						<key>Face</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.2</real>
-				<key>tooltip</key>
-				<string>Sets the texture rotation for the chosen face.\nSets the rotation of the texture on the given side.\n
+   </map>
+   <key>llRequestUsername</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>AvatarID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>key</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Requests single-word user-name of an avatar. When data is available the dataserver event will be raised.\nRequests the user-name of the identified agent. When the user-name is available the dataserver event is raised.\nThe agent identified does not need to be in the same region or online at the time of the request.\nReturns a key that is used to identify the dataserver event when it is raised.</string>
+   </map>
+   <key>llResetAnimationOverride</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>AnimationState</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0</real>
+    <key>tooltip</key>
+    <string>Resets the animation of the specified animation state to the default value.\nIf animation state equals "ALL", then all animation states are reset.</string>
+   </map>
+   <key>llResetLandBanList</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Removes all residents from the land ban list.</string>
+   </map>
+   <key>llResetLandPassList</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Removes all residents from the land access/pass list.</string>
+   </map>
+   <key>llResetOtherScript</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>ScriptName</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Resets the named script.</string>
+   </map>
+   <key>llResetScript</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Resets the script.</string>
+   </map>
+   <key>llResetTime</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Sets the time to zero.\nSets the internal timer to zero.</string>
+   </map>
+   <key>llReturnObjectsByID</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>ObjectIDs</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>integer</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Return objects using their UUIDs</string>
+   </map>
+   <key>llReturnObjectsByOwner</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>ID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+     <map>
+      <key>Scope</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>integer</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Return objects based upon their owner and a scope of parcel, parcel owner, or region.</string>
+   </map>
+   <key>llRezAtRoot</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>InventoryItem</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>Position</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+     <map>
+      <key>Velocity</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+     <map>
+      <key>Rotation</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>rotation</string>
+      </map>
+     </map>
+     <map>
+      <key>StartParameter</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>200.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.1</real>
+    <key>tooltip</key>
+    <string>Instantiate owner's InventoryItem at Position with Velocity, Rotation and with StartParameter. The last selected root object's location will be set to Position.\nCreates object's inventory item at the given Position, with Velocity, Rotation, and StartParameter.</string>
+   </map>
+   <key>llRezObject</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>InventoryItem</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>Position</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+     <map>
+      <key>Velocity</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+     <map>
+      <key>Rotation</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>rotation</string>
+      </map>
+     </map>
+     <map>
+      <key>StartParameter</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>200</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.1</real>
+    <key>tooltip</key>
+    <string>Instantiate owners InventoryItem at Position with Velocity, Rotation and with start StartParameter.\nCreates object's inventory item at Position with Velocity and Rotation supplied. The StartParameter value will be available to the newly created object in the on_rez event or through the llGetStartParameter function.\nThe Velocity parameter is ignored if the rezzed object is not physical.</string>
+   </map>
+   <key>llRot2Angle</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Rotation</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>rotation</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>float</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the rotation angle represented by Rotation.\nReturns the angle represented by the Rotation.</string>
+   </map>
+   <key>llRot2Axis</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Rotation</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>rotation</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>vector</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the rotation axis represented by Rotation.\nReturns the axis represented by the Rotation.</string>
+   </map>
+   <key>llRot2Euler</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Rotation</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>rotation</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>vector</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the Euler representation (roll, pitch, yaw) of Rotation.\nReturns the Euler Angle representation of the Rotation.</string>
+   </map>
+   <key>llRot2Fwd</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Rotation</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>rotation</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>vector</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the forward vector defined by Rotation.\nReturns the forward axis represented by the Rotation.</string>
+   </map>
+   <key>llRot2Left</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Rotation</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>rotation</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>vector</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the left vector defined by Rotation.\nReturns the left axis represented by the Rotation.</string>
+   </map>
+   <key>llRot2Up</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Rotation</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>rotation</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>vector</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the up vector defined by Rotation.\nReturns the up axis represented by the Rotation.</string>
+   </map>
+   <key>llRotateTexture</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Radians</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+     <map>
+      <key>Face</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.2</real>
+    <key>tooltip</key>
+    <string>Sets the texture rotation for the chosen face.\nSets the rotation of the texture on the given side.\n
 				If face is ALL_SIDES, rotates the texture of all sides.</string>
-			</map>
-			<key>llRotBetween</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Vector1</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-					<map>
-						<key>Vector2</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>rotation</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the rotation to rotate Vector1 to Vector2.\nReturns the rotation needed to rotate Vector1 to Vector2.</string>
-			</map>
-			<key>llRotLookAt</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Rotation</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>rotation</string>
-						</map>
-					</map>
-					<map>
-						<key>Strength</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-					<map>
-						<key>Damping</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Cause object to point it's forward axis towards Rotation.\nCause object to rotate to Rotation. Good strength values are around half the mass of the object and good damping values are less than 1/10th of the strength.\n
+   </map>
+   <key>llRotBetween</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Vector1</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+     <map>
+      <key>Vector2</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>rotation</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the rotation to rotate Vector1 to Vector2.\nReturns the rotation needed to rotate Vector1 to Vector2.</string>
+   </map>
+   <key>llRotLookAt</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Rotation</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>rotation</string>
+      </map>
+     </map>
+     <map>
+      <key>Strength</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+     <map>
+      <key>Damping</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Cause object to point it's forward axis towards Rotation.\nCause object to rotate to Rotation. Good strength values are around half the mass of the object and good damping values are less than 1/10th of the strength.\n
 				Asymmetrical shapes require smaller damping.\n
 				A strength of 0.0 cancels the look at.</string>
-			</map>
-			<key>llRotTarget</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Rotation</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>rotation</string>
-						</map>
-					</map>
-					<map>
-						<key>LeeWay</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>integer</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Set rotations with error of LeeWay as a rotational target and return an ID for the rotational target.\nSet object rotation within the given lee way of rotation as a rotational target and return an integer number for the target.\n
+   </map>
+   <key>llRotTarget</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Rotation</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>rotation</string>
+      </map>
+     </map>
+     <map>
+      <key>LeeWay</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>integer</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Set rotations with error of LeeWay as a rotational target and return an ID for the rotational target.\nSet object rotation within the given lee way of rotation as a rotational target and return an integer number for the target.\n
 				The returned number is a handle that can be used in llRotTargetRemove.</string>
-			</map>
-			<key>llRotTargetRemove</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Handle</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Removes rotational target number.\nRemove rotational target indicated by the handle.</string>
-			</map>
-			<key>llRound</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Value</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>integer</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns Value rounded to the nearest integer.\nReturns the Value rounded to the nearest integer.</string>
-			</map>
-			<key>llSameGroup</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>ID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>integer</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns TRUE if avatar ID is in the same region and has the same active group, otherwise FALSE.\nReturns TRUE if the object or agent identified is in the same simulator and has the same active group as this object. Otherwise, returns FALSE.</string>
-			</map>
-			<key>llSay</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Channel</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>Text</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Says Text on Channel.\nSay Text on channel.\n
+   </map>
+   <key>llRotTargetRemove</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Handle</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Removes rotational target number.\nRemove rotational target indicated by the handle.</string>
+   </map>
+   <key>llRound</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Value</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>integer</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns Value rounded to the nearest integer.\nReturns the Value rounded to the nearest integer.</string>
+   </map>
+   <key>llSameGroup</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>ID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>integer</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns TRUE if avatar ID is in the same region and has the same active group, otherwise FALSE.\nReturns TRUE if the object or agent identified is in the same simulator and has the same active group as this object. Otherwise, returns FALSE.</string>
+   </map>
+   <key>llSay</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Channel</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>Text</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Says Text on Channel.\nSay Text on channel.\n
 			Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 to 2,147,483,648 are private channels that are not sent to avatars but other scripts can listen for through the llListen/listen event system.</string>
-			</map>
-			<key>llScaleTexture</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Horizontal</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-					<map>
-						<key>Vertical</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-					<map>
-						<key>Face</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.2</real>
-				<key>tooltip</key>
-				<string>Sets the texture's S and T scales for the chosen Face.\nSets the Horizontal and Vertical repeats per Face on Face.\n
+   </map>
+   <key>llScaleByFactor</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>ScalingFactor</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>integer</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Attempts to resize the entire object by scaling_factor, maintaining the size-position ratios of the prims.\n\nResizing is subject to prim scale limits and linkability limits. This function can not resize the object if the linkset is physical, a pathfinding character, in a keyframed motion, or if resizing would cause the parcel to overflow.\nReturns a boolean (an integer) TRUE if it succeeds, FALSE if it fails.</string>
+   </map>
+   <key>llScaleTexture</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Horizontal</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+     <map>
+      <key>Vertical</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+     <map>
+      <key>Face</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.2</real>
+    <key>tooltip</key>
+    <string>Sets the texture's S and T scales for the chosen Face.\nSets the Horizontal and Vertical repeats per Face on Face.\n
 				If Face == ALL_SIDES, all sides are set in one call.\n
 				Negative values for horizontal and vertical will flip the texture.</string>
-			</map>
-			<key>llScriptDanger</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Position</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>integer</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns TRUE if Position is over public land, sandbox land, land that doesn't allow everyone to edit and build, or land that doesn't allow outside scripts.\nReturns true if the position is over public land, land that doesn't allow everyone to edit and build, or land that doesn't allow outside scripts.</string>
-			</map>
-			<key>llScriptProfiler</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>State</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Enables or disables script profiling options. Currently only supports PROFILE_SCRIPT_MEMORY (Mono only) and PROFILE_NONE.\n
+   </map>
+   <key>llScriptDanger</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Position</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>integer</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns TRUE if Position is over public land, sandbox land, land that doesn't allow everyone to edit and build, or land that doesn't allow outside scripts.\nReturns true if the position is over public land, land that doesn't allow everyone to edit and build, or land that doesn't allow outside scripts.</string>
+   </map>
+   <key>llScriptProfiler</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>State</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Enables or disables script profiling options. Currently only supports PROFILE_SCRIPT_MEMORY (Mono only) and PROFILE_NONE.\n
 				MAY SIGNIFICANTLY REDUCE SCRIPT PERFORMANCE!.\nEnables or disables the scripts profiling state.. Currently only supports PROFILE_SCRIPT_MEMORY (Mono only) and PROFILE_NONE.\n
 				MAY SIGNIFICANTLY REDUCE SCRIPT PERFORMANCE!.</string>
-			</map>
-			<key>llSendRemoteData</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>ChannelID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-					<map>
-						<key>Destination</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>Value</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>Text</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-				</array>
-				<key>deprecated</key>
-				<boolean>true</boolean>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>key</string>
-				<key>sleep</key>
-				<real>3.0</real>
-				<key>tooltip</key>
-				<string>Deprecated: use HTTP instead.\n
+   </map>
+   <key>llSendRemoteData</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>ChannelID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+     <map>
+      <key>Destination</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>Value</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>Text</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+    </array>
+    <key>deprecated</key>
+    <boolean>true</boolean>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>key</string>
+    <key>sleep</key>
+    <real>3.0</real>
+    <key>tooltip</key>
+    <string>Deprecated: use HTTP instead.\n
 				Sends an XML-RPC request to Destination through ChannelID with payload of ChannelID (in a string), integer Value and string Text.
 				Returns a key that is the message_id for the resulting remote_data events.\nSend an XML-RPC request to the Destination (probably an URL) through the ChannelID, with a payload of ChannelID (in a string), integer Value and string Text.</string>
-			</map>
-			<key>llSensor</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Name</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>ID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-					<map>
-						<key>Type</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>Range</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-					<map>
-						<key>Arc</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Performs a single scan for Name and ID with Type (AGENT, ACTIVE, PASSIVE, and/or SCRIPTED) within Range meters and Arc radians of forward vector (Name, ID, and/or Type can be empty or 0).\nPerforms a single scan for Name and ID with Type within Range meters and Arc radians of the forward vector.\n
+   </map>
+   <key>llSensor</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Name</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>ID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+     <map>
+      <key>Type</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>Range</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+     <map>
+      <key>Arc</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Performs a single scan for Name and ID with Type (AGENT, ACTIVE, PASSIVE, and/or SCRIPTED) within Range meters and Arc radians of forward vector (Name, ID, and/or Type can be empty or 0).\nPerforms a single scan for Name and ID with Type within Range meters and Arc radians of the forward vector.\n
 				Specifying a blank Name or NULL_KEY ID will prevent filtering results for a particular Name or ID. A range of 0.0 does not perform a scan. The Type parameter should be an object type constant value.</string>
-			</map>
-			<key>llSensorRemove</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>removes sensor.\nRemoves the sensor set by llSensorRepeat.</string>
-			</map>
-			<key>llSensorRepeat</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Name</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>ID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-					<map>
-						<key>Type</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>Range</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-					<map>
-						<key>Arc</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-					<map>
-						<key>Rate</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Sets a callback for Name and ID with Type (AGENT, ACTIVE, PASSIVE, and/or SCRIPTED) within Range meters and Arc radians of forward vector (Name, ID, and/or Type can be empty or 0) and repeats every Rate seconds.\nPerforms a repeating sensor scan for Name and ID with Type within Range meters and Arc radians of the forward vector (Name and/or ID can be empty or NULL_KEY).\n
+   </map>
+   <key>llSensorRemove</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>removes sensor.\nRemoves the sensor set by llSensorRepeat.</string>
+   </map>
+   <key>llSensorRepeat</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Name</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>ID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+     <map>
+      <key>Type</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>Range</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+     <map>
+      <key>Arc</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+     <map>
+      <key>Rate</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Sets a callback for Name and ID with Type (AGENT, ACTIVE, PASSIVE, and/or SCRIPTED) within Range meters and Arc radians of forward vector (Name, ID, and/or Type can be empty or 0) and repeats every Rate seconds.\nPerforms a repeating sensor scan for Name and ID with Type within Range meters and Arc radians of the forward vector (Name and/or ID can be empty or NULL_KEY).\n
 				A range of 0.0m does not perform a scan. The parameters have the same function as llSensor, except Rate, which defines the number of seconds between repeated scans and subsequent sensor or no_sensor events.</string>
-			</map>
-			<key>llSetAlpha</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Opacity</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-					<map>
-						<key>Face</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Sets the alpha (opacity) of Face.\nSets the alpha (opacity) value for Face. If Face is ALL_SIDES, sets the alpha for all faces. The alpha value is interpreted as an opacity percentage (1.0 is fully opaque, and 0.2 is mostly transparent). This function will clamp alpha values less than 0.1 to 0.1 and greater than 1.0 to 1.</string>
-			</map>
-			<key>llSetAngularVelocity</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Force</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-					<map>
-						<key>Local</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real/>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Sets an object's angular velocity, in local coordinates if local == TRUE (if the script is physical).\nApplies angular (rotational) velocity to a physical object. Has no effect on non-physical objects.</string>
-			</map>
-			<key>llSetAnimationOverride</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>AnimationState</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>AnimationName</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0</real>
-				<key>tooltip</key>
-				<string>Sets the animation (in object inventory) that will play for the given animation state.\nTo use this function the script must obtain the PERMISSION_OVERRIDE_ANIMATIONS permission.</string>
-			</map>
-			<key>llSetBuoyancy</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Buoyancy</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Set the tasks buoyancy (0 is none, &lt; 1.0 sinks, 1.0 floats, &gt; 1.0 rises).\nSet the object buoyancy. A value of 0 is none, less than 1.0 sinks, 1.0 floats, and greater than 1.0 rises.</string>
-			</map>
-			<key>llSetCameraAtOffset</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Offset</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Sets the camera used in this object, at offset, if an avatar sits on it.\nSets the offset that an avatar's camera will be moved to if the avatar sits on the object.</string>
-			</map>
-			<key>llSetCameraEyeOffset</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Offset</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Sets the camera eye offset used in this object if an avatar sits on it.</string>
-			</map>
-			<key>llSetCameraParams</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Parameters</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Sets multiple camera parameters at once. List format is [ rule-1, data-1, rule-2, data-2 . . . rule-n, data-n ].\nSets multiple camera parameters at once.\n
+   </map>
+   <key>llSetAlpha</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Opacity</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+     <map>
+      <key>Face</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Sets the alpha (opacity) of Face.\nSets the alpha (opacity) value for Face. If Face is ALL_SIDES, sets the alpha for all faces. The alpha value is interpreted as an opacity percentage (1.0 is fully opaque, and 0.2 is mostly transparent). This function will clamp alpha values less than 0.1 to 0.1 and greater than 1.0 to 1.</string>
+   </map>
+   <key>llSetAngularVelocity</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Force</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+     <map>
+      <key>Local</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real/>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Sets an object's angular velocity, in local coordinates if local == TRUE (if the script is physical).\nApplies angular (rotational) velocity to a physical object. Has no effect on non-physical objects.</string>
+   </map>
+   <key>llSetAnimationOverride</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>AnimationState</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>AnimationName</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0</real>
+    <key>tooltip</key>
+    <string>Sets the animation (in object inventory) that will play for the given animation state.\nTo use this function the script must obtain the PERMISSION_OVERRIDE_ANIMATIONS permission.</string>
+   </map>
+   <key>llSetBuoyancy</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Buoyancy</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Set the tasks buoyancy (0 is none, &lt; 1.0 sinks, 1.0 floats, &gt; 1.0 rises).\nSet the object buoyancy. A value of 0 is none, less than 1.0 sinks, 1.0 floats, and greater than 1.0 rises.</string>
+   </map>
+   <key>llSetCameraAtOffset</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Offset</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Sets the camera used in this object, at offset, if an avatar sits on it.\nSets the offset that an avatar's camera will be moved to if the avatar sits on the object.</string>
+   </map>
+   <key>llSetCameraEyeOffset</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Offset</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Sets the camera eye offset used in this object if an avatar sits on it.</string>
+   </map>
+   <key>llSetCameraParams</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Parameters</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Sets multiple camera parameters at once. List format is [ rule-1, data-1, rule-2, data-2 . . . rule-n, data-n ].\nSets multiple camera parameters at once.\n
 				List format is [rule-1, value-1, rule-2, value-2 ... rule-N, value-N]</string>
-			</map>
-			<key>llSetClickAction</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Action</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Sets the action performed when a prim is clicked upon.</string>
-			</map>
-			<key>llSetColor</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Colour</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-					<map>
-						<key>Face</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Sets the color, for the face.\nSets the colour of the side specified. If Face is ALL_SIDES, sets the colour on all faces.</string>
-			</map>
-			<key>llSetContentType</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>HTTPRequestID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-					<map>
-						<key>ContentType</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real/>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real/>
-				<key>tooltip</key>
-				<string>Set the media type of an LSL HTTP server response.</string>
-			</map>
-			<key>llSetDamage</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Damage</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Sets the amount of damage that will be done to an avatar that this task hits.	Task will be killed.\nSets the amount of damage that will be done to an avatar that this object hits. This object will be destroyed on damaging an avatar, and no collision event is triggered.</string>
-			</map>
-			<key>llSetForce</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Force</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-					<map>
-						<key>Local</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Sets Force on object, in local coordinates if Local == TRUE (if the script is physical).\nIf the object is physical, this function sets the force.\n
+   </map>
+   <key>llSetClickAction</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Action</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Sets the action performed when a prim is clicked upon.</string>
+   </map>
+   <key>llSetColor</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Colour</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+     <map>
+      <key>Face</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Sets the color, for the face.\nSets the colour of the side specified. If Face is ALL_SIDES, sets the colour on all faces.</string>
+   </map>
+   <key>llSetContentType</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>HTTPRequestID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+     <map>
+      <key>ContentType</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real/>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real/>
+    <key>tooltip</key>
+    <string>Set the media type of an LSL HTTP server response.</string>
+   </map>
+   <key>llSetDamage</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Damage</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Sets the amount of damage that will be done to an avatar that this task hits.	Task will be killed.\nSets the amount of damage that will be done to an avatar that this object hits. This object will be destroyed on damaging an avatar, and no collision event is triggered.</string>
+   </map>
+   <key>llSetForce</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Force</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+     <map>
+      <key>Local</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Sets Force on object, in local coordinates if Local == TRUE (if the script is physical).\nIf the object is physical, this function sets the force.\n
 				The vector is in local coordinates if local is TRUE, global if FALSE.</string>
-			</map>
-			<key>llSetForceAndTorque</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Force</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-					<map>
-						<key>Torque</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-					<map>
-						<key>Local</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Sets the Force and Torque of object, in local coordinates if Local == TRUE (if the script is physical).\nIf the object is physical, this function sets the Force and Torque. The vectors are in local coordinates if Local is TRUE, global if FALSE.</string>
-			</map>
-			<key>llSetHoverHeight</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Height</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-					<map>
-						<key>Water</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>Tau</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Critically damps to a Height (either above ground level or above the higher of land and water if water == TRUE).\nCritically damps to a Height. The height is above ground and water (which ever is greater) if water is TRUE. Only works with physics-enabled objects.\n
+   </map>
+   <key>llSetForceAndTorque</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Force</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+     <map>
+      <key>Torque</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+     <map>
+      <key>Local</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Sets the Force and Torque of object, in local coordinates if Local == TRUE (if the script is physical).\nIf the object is physical, this function sets the Force and Torque. The vectors are in local coordinates if Local is TRUE, global if FALSE.</string>
+   </map>
+   <key>llSetHoverHeight</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Height</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+     <map>
+      <key>Water</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>Tau</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Critically damps to a Height (either above ground level or above the higher of land and water if water == TRUE).\nCritically damps to a Height. The height is above ground and water (which ever is greater) if water is TRUE. Only works with physics-enabled objects.\n
 				Do not use with vehicles. Use llStopHover to stop hovering.</string>
-			</map>
-			<key>llSetInventoryPermMask</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>InventoryItem</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>PermissionFlag</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>PermissionMask</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>god-mode</key>
-				<boolean>true</boolean>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Sets the given permission mask to the new value on the inventory item.</string>
-			</map>
-			<key>llSetKeyframedMotion</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Keyframes</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-					<map>
-						<key>Options</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real/>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real/>
-				<key>tooltip</key>
-				<string>Requests that a non-physical object be key-framed according to key-frame list.\nSpecify a list of times, positions, and orientations to be followed by an object. The object will be smoothly moved between key-frames by the simulator. Collisions with other non-physical or key-framed objects will be ignored (no script events will fire and collision processing will not occur). Collisions with physical objects will be computed and reported, but the key-framed object will be unaffected by those collisions.</string>
-			</map>
-			<key>llSetLinkAlpha</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>LinkNumber</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>Opacity</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-					<map>
-						<key>Face</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>If a prim exists in the link chain at LinkNumber, set Face to Opacity.\nSets the Face, on the linked prim specified, to the Opacity.</string>
-			</map>
-			<key>llSetLinkCamera</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>LinkNumber</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>EyeOffset</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-					<map>
-						<key>LookOffset</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Sets the camera eye offset, and the offset that camera is looking at, for avatars that sit on the linked prim.</string>
-			</map>
-			<key>llSetLinkColor</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>LinkNumber</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>Colour</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-					<map>
-						<key>Face</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>If a task exists in the link chain at LinkNumber, set the Face to color.\nSets the colour of the linked child's side, specified by LinkNumber.</string>
-			</map>
-			<key>llSetLinkMedia</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Link</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>Face</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>Parameters</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>0.0</real>
-				<key>return</key>
-				<string>integer</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Set the media parameters for a particular face on linked prim.	Parameters is a list of name/value pairs (in no particular order). If media is not already on this object, add it. Parameters not specified are unchanged, or if new media is added set to the default specified.\nSet the media parameters for a particular face on the linked prim(s) without a delay.\n
+   </map>
+   <key>llSetInventoryPermMask</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>InventoryItem</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>PermissionFlag</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>PermissionMask</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>god-mode</key>
+    <boolean>true</boolean>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Sets the given permission mask to the new value on the inventory item.</string>
+   </map>
+   <key>llSetKeyframedMotion</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Keyframes</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+     <map>
+      <key>Options</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real/>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real/>
+    <key>tooltip</key>
+    <string>Requests that a non-physical object be key-framed according to key-frame list.\nSpecify a list of times, positions, and orientations to be followed by an object. The object will be smoothly moved between key-frames by the simulator. Collisions with other non-physical or key-framed objects will be ignored (no script events will fire and collision processing will not occur). Collisions with physical objects will be computed and reported, but the key-framed object will be unaffected by those collisions.</string>
+   </map>
+   <key>llSetLinkAlpha</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>LinkNumber</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>Opacity</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+     <map>
+      <key>Face</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>If a prim exists in the link chain at LinkNumber, set Face to Opacity.\nSets the Face, on the linked prim specified, to the Opacity.</string>
+   </map>
+   <key>llSetLinkCamera</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>LinkNumber</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>EyeOffset</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+     <map>
+      <key>LookOffset</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Sets the camera eye offset, and the offset that camera is looking at, for avatars that sit on the linked prim.</string>
+   </map>
+   <key>llSetLinkColor</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>LinkNumber</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>Colour</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+     <map>
+      <key>Face</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>If a task exists in the link chain at LinkNumber, set the Face to color.\nSets the colour of the linked child's side, specified by LinkNumber.</string>
+   </map>
+   <key>llSetLinkMedia</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Link</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>Face</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>Parameters</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>0.0</real>
+    <key>return</key>
+    <string>integer</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Set the media parameters for a particular face on linked prim.	Parameters is a list of name/value pairs (in no particular order). If media is not already on this object, add it. Parameters not specified are unchanged, or if new media is added set to the default specified.\nSet the media parameters for a particular face on the linked prim(s) without a delay.\n
 				Returns an integer that is a STATUS_* flag which details the success/failure of the operation(s).</string>
-			</map>
-			<key>llSetLinkPrimitiveParams</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>LinkNumber</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>Parameters</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.2</real>
-				<key>tooltip</key>
-				<string>Set primitive parameters for LinkNumber based on Parameters.\nSets the parameters (or properties) of any linked prim in one step.</string>
-			</map>
-			<key>llSetLinkPrimitiveParamsFast</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>LinkNumber</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>Parameters</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Set primitive parameters for LinkNumber based on Parameters, without a delay.\nSet parameters for link number, from the list of Parameters, with no built-in script sleep. This function is identical to llSetLinkPrimitiveParams, except without the delay.</string>
-			</map>
-			<key>llSetLinkTexture</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>LinkNumber</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>Texture</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>Face</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.2</real>
-				<key>tooltip</key>
-				<string>Sets the Texture of Face for LinkNumber.\nSets the Texture of linked prims.</string>
-			</map>
-			<key>llSetLinkTextureAnim</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>LinkNumber</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>Mode</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>Face</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>SizeX</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>SizeY</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>Start</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-					<map>
-						<key>Length</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-					<map>
-						<key>Rate</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Animate the texture on the specified prim's face/faces.\nAnimate the texture on the specified face/faces of the specified prim/prims by setting the texture scale and offset.\n
+   </map>
+   <key>llSetLinkPrimitiveParams</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>LinkNumber</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>Parameters</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.2</real>
+    <key>tooltip</key>
+    <string>Set primitive parameters for LinkNumber based on Parameters.\nSets the parameters (or properties) of any linked prim in one step.</string>
+   </map>
+   <key>llSetLinkPrimitiveParamsFast</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>LinkNumber</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>Parameters</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Set primitive parameters for LinkNumber based on Parameters, without a delay.\nSet parameters for link number, from the list of Parameters, with no built-in script sleep. This function is identical to llSetLinkPrimitiveParams, except without the delay.</string>
+   </map>
+   <key>llSetLinkTexture</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>LinkNumber</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>Texture</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>Face</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.2</real>
+    <key>tooltip</key>
+    <string>Sets the Texture of Face for LinkNumber.\nSets the Texture of linked prims.</string>
+   </map>
+   <key>llSetLinkTextureAnim</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>LinkNumber</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>Mode</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>Face</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>SizeX</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>SizeY</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>Start</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+     <map>
+      <key>Length</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+     <map>
+      <key>Rate</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Animate the texture on the specified prim's face/faces.\nAnimate the texture on the specified face/faces of the specified prim/prims by setting the texture scale and offset.\n
 				Identical to llSetTextureAnim except able to modify any prim in the link set.</string>
-			</map>
-			<key>llSetLocalRot</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Rotation</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>rotation</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.2</real>
-				<key>tooltip</key>
-				<string>Sets the rotation of a child prim relative to the root prim.</string>
-			</map>
-			<key>llSetMemoryLimit</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Limit</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real/>
-				<key>return</key>
-				<string>integer</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Request Limit bytes to be reserved for this script. This function has no effect if the script is running in the LSO VM.\nRequest Limit bytes to be reserved for this script. This function has no effect if the script is running in the LSO VM.\n
+   </map>
+   <key>llSetLocalRot</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Rotation</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>rotation</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.2</real>
+    <key>tooltip</key>
+    <string>Sets the rotation of a child prim relative to the root prim.</string>
+   </map>
+   <key>llSetMemoryLimit</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Limit</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real/>
+    <key>return</key>
+    <string>integer</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Request Limit bytes to be reserved for this script. This function has no effect if the script is running in the LSO VM.\nRequest Limit bytes to be reserved for this script. This function has no effect if the script is running in the LSO VM.\n
 				Return TRUE or FALSE indicating whether the limit was set successfully.</string>
-			</map>
-			<key>llSetObjectDesc</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Description</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Sets the object's description.\nSets the description of the scripted prim. You can get the description using llGetObjectDesc.\n
+   </map>
+   <key>llSetObjectDesc</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Description</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Sets the object's description.\nSets the description of the scripted prim. You can get the description using llGetObjectDesc.\n
 				The description is limited to 127 characters.</string>
-			</map>
-			<key>llSetObjectName</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Name</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Sets the object's name.</string>
-			</map>
-			<key>llSetObjectPermMask</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>PermissionFlag</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>PermissionMask</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>god-mode</key>
-				<boolean>true</boolean>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Sets the given permission mask to the new value on the root object the task is attached to.</string>
-			</map>
-			<key>llSetParcelMusicURL</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>URL</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>2.0</real>
-				<key>tooltip</key>
-				<string>Sets the streaming audio URL for the parcel object is on.\nSets the streaming audio URL for the parcel the scripted object is on (the object must be owned by the owner of the parcel, if the parcel is group owned the object must be owned by that group).</string>
-			</map>
-			<key>llSetPayPrice</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Price</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>QuickButtons</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Sets the default amount when someone chooses to pay this object.\nSets the values of the buttons and the text box default for the Pay dialogue, when a user right-clicks on the object and selects "Pay".\n
+   </map>
+   <key>llSetObjectName</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Name</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Sets the object's name.</string>
+   </map>
+   <key>llSetObjectPermMask</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>PermissionFlag</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>PermissionMask</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>god-mode</key>
+    <boolean>true</boolean>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Sets the given permission mask to the new value on the root object the task is attached to.</string>
+   </map>
+   <key>llSetParcelMusicURL</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>URL</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>2.0</real>
+    <key>tooltip</key>
+    <string>Sets the streaming audio URL for the parcel object is on.\nSets the streaming audio URL for the parcel the scripted object is on (the object must be owned by the owner of the parcel, if the parcel is group owned the object must be owned by that group).</string>
+   </map>
+   <key>llSetPayPrice</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Price</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>QuickButtons</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Sets the default amount when someone chooses to pay this object.\nSets the values of the buttons and the text box default for the Pay dialogue, when a user right-clicks on the object and selects "Pay".\n
 				llSetPayPrice will affect what buttons exist, what their values are, and whether or not there is a manual payment text entry box.</string>
-			</map>
-			<key>llSetPhysicsMaterial</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>MaterialBits</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>GravityMultiplier</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-					<map>
-						<key>Restitution</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-					<map>
-						<key>Friction</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-					<map>
-						<key>Density</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real/>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real/>
-				<key>tooltip</key>
-				<string>Sets the requested attributes of the root object's physics material.</string>
-			</map>
-			<key>llSetPos</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Position</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.2</real>
-				<key>tooltip</key>
-				<string>Sets the position (if the script isn't physical).\nIf the object is not physical, this function sets the position in region coordinates. If the object is a child prim, the position is treated as root relative and the link-set is adjusted.</string>
-			</map>
-			<key>llSetPrimitiveParams</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Parameters</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.2</real>
-				<key>tooltip</key>
-				<string>Set primitive parameters.\nThis function changes the many properties (or "parameters") of a prim in one operation. The Parameters are a list of changes.</string>
-			</map>
-			<key>llSetPrimMediaParams</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Face</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>MediaParameters</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>integer</string>
-				<key>sleep</key>
-				<real>0.1</real>
-				<key>tooltip</key>
-				<string>Sets the MediaParameters for a particular Face on an object. If media is not already on this object, add it.
+   </map>
+   <key>llSetPhysicsMaterial</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>MaterialBits</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>GravityMultiplier</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+     <map>
+      <key>Restitution</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+     <map>
+      <key>Friction</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+     <map>
+      <key>Density</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real/>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real/>
+    <key>tooltip</key>
+    <string>Sets the requested attributes of the root object's physics material.</string>
+   </map>
+   <key>llSetPos</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Position</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.2</real>
+    <key>tooltip</key>
+    <string>Sets the position (if the script isn't physical).\nIf the object is not physical, this function sets the position in region coordinates. If the object is a child prim, the position is treated as root relative and the link-set is adjusted.</string>
+   </map>
+   <key>llSetPrimitiveParams</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Parameters</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.2</real>
+    <key>tooltip</key>
+    <string>Set primitive parameters.\nThis function changes the many properties (or "parameters") of a prim in one operation. The Parameters are a list of changes.</string>
+   </map>
+   <key>llSetPrimMediaParams</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Face</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>MediaParameters</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>integer</string>
+    <key>sleep</key>
+    <real>0.1</real>
+    <key>tooltip</key>
+    <string>Sets the MediaParameters for a particular Face on an object. If media is not already on this object, add it.
 				MediaParameters is a set of name/value pairs in no particular order. Parameters not specified are unchanged, or if new media is added then set to the default specified.\nSet the MediaParameters for a particular face.\n
 				Returns an integer that is a STATUS_* flag which details the success/failure of the operation(s).</string>
-			</map>
-			<key>llSetPrimURL</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>URL</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-				</array>
-				<key>deprecated</key>
-				<boolean>true</boolean>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>20.0</real>
-				<key>tooltip</key>
-				<string>Deprecated: Use llSetPrimMediaParams instead.\nDeprecated: Use llSetPrimMediaParams instead. Updates the URL for the web page shown on the sides of the object.</string>
-			</map>
-			<key>llSetRegionPos</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Position</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>0.0</real>
-				<key>return</key>
-				<string>integer</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Sets the Position anywhere within the region (if the object isn't physical).\nTries to moves the entire object so that the root prim is within 0.1m of Position.\n
+   </map>
+   <key>llSetPrimURL</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>URL</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+    </array>
+    <key>deprecated</key>
+    <boolean>true</boolean>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>20.0</real>
+    <key>tooltip</key>
+    <string>Deprecated: Use llSetPrimMediaParams instead.\nDeprecated: Use llSetPrimMediaParams instead. Updates the URL for the web page shown on the sides of the object.</string>
+   </map>
+   <key>llSetRegionPos</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Position</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>0.0</real>
+    <key>return</key>
+    <string>integer</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Sets the Position anywhere within the region (if the object isn't physical).\nTries to moves the entire object so that the root prim is within 0.1m of Position.\n
 				Returns an integer boolean, TRUE if the object is successfully placed within 0.1 m of Position, FALSE otherwise.\n
 				The object with the script will move the root prim position to the given location. The position is any position within the region. If the position is below ground, it will be set to the ground level at that x,y location. The function has no delay or throttle.</string>
-			</map>
-			<key>llSetRemoteScriptAccessPin</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>PIN</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.2</real>
-				<key>tooltip</key>
-				<string>If PIN is set to a non-zero number, the task will accept remote script loads via llRemoteLoadScriptPin if it passes in the correct PIN. Othersise, llRemoteLoadScriptPin is ignored.\nIf PIN is set to a non-zero number, the task will accept remote script loads via llRemoteLoadScriptPin if passed the matching PIN. Otherwise llRemoteLoadScriptPin is ignored</string>
-			</map>
-			<key>llSetRot</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Rotation</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>rotation</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.2</real>
-				<key>tooltip</key>
-				<string>Sets the rotation (if the script isn't physical).\nIf the object is not physical, this function sets the rotation.\n
+   </map>
+   <key>llSetRemoteScriptAccessPin</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>PIN</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.2</real>
+    <key>tooltip</key>
+    <string>If PIN is set to a non-zero number, the task will accept remote script loads via llRemoteLoadScriptPin if it passes in the correct PIN. Othersise, llRemoteLoadScriptPin is ignored.\nIf PIN is set to a non-zero number, the task will accept remote script loads via llRemoteLoadScriptPin if passed the matching PIN. Otherwise llRemoteLoadScriptPin is ignored</string>
+   </map>
+   <key>llSetRot</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Rotation</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>rotation</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.2</real>
+    <key>tooltip</key>
+    <string>Sets the rotation (if the script isn't physical).\nIf the object is not physical, this function sets the rotation.\n
 				If the script is in a child prim, the position is treated as root relative and the linked set is adjusted.</string>
-			</map>
-			<key>llSetScale</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Scale</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Sets the scale.\nSets the prim's scale (size).</string>
-			</map>
-			<key>llSetScriptState</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>ScriptName</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>Running</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Control the state of a named script.\nControl the state of a script in the prim.</string>
-			</map>
-			<key>llSetSitText</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Text</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Displays Text rather than "Sit" in context menu.\nDisplays Text rather than 'Sit' in the viewer's menu.</string>
-			</map>
-			<key>llSetSoundQueueing</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>QueueEnable</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Determines whether attached sound calls wait for the current sound to finish (0 = no [default], non-zero = yes).\nSets whether successive calls to llPlaySound, llLoopSound, etc., (attached sounds) interrupt the playing sound.\n
+   </map>
+   <key>llSetScale</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Scale</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Sets the scale.\nSets the prim's scale (size).</string>
+   </map>
+   <key>llSetScriptState</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>ScriptName</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>Running</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Control the state of a named script.\nControl the state of a script in the prim.</string>
+   </map>
+   <key>llSetSitText</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Text</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Displays Text rather than "Sit" in context menu.\nDisplays Text rather than 'Sit' in the viewer's menu.</string>
+   </map>
+   <key>llSetSoundQueueing</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>QueueEnable</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Determines whether attached sound calls wait for the current sound to finish (0 = no [default], non-zero = yes).\nSets whether successive calls to llPlaySound, llLoopSound, etc., (attached sounds) interrupt the playing sound.\n
 				The default for objects is FALSE. Setting this value to TRUE will make the sound wait until the current playing sound reaches its end. The queue is one level deep.</string>
-			</map>
-			<key>llSetSoundRadius</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Radius</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Establishes a hard cut-off radius for audibility of scripted sounds (both attached and triggered).</string>
-			</map>
-			<key>llSetStatus</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Status</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>Value</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Sets status (STATUS_PHYSICS, STATUS_PHANTOM, STATUS_BLOCK_GRAB, STATUS_ROTATE_X, STATUS_ROTATE_Y, and/or STATUS_ROTATE_Z) to value.\nSets the Status to Value. Use STATUS_* constants for the values of status.</string>
-			</map>
-			<key>llSetText</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Text</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>Colour</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-					<map>
-						<key>Opacity</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Set text floating over object.\nSets the text that floats above the object, using the specified colour and opacity level.</string>
-			</map>
-			<key>llSetTexture</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Texture</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>Face</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.2</real>
-				<key>tooltip</key>
-				<string>Sets the Texture of Face.\nSets the Texture of Face. If Face is ALL_SIDES, set the texture on all faces.</string>
-			</map>
-			<key>llSetTextureAnim</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Mode</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>Face</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>SizeX</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>SizeY</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>Start</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-					<map>
-						<key>Length</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-					<map>
-						<key>Rate</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Animate the texture on the specified face/faces.\nAnimates a texture by setting the texture scale and offset.</string>
-			</map>
-			<key>llSetTimerEvent</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Rate</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Cause the timer event to be triggered every Rate seconds.\nSets the timer event to be triggered at the specified Rate, in seconds.\n
+   </map>
+   <key>llSetSoundRadius</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Radius</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Establishes a hard cut-off radius for audibility of scripted sounds (both attached and triggered).</string>
+   </map>
+   <key>llSetStatus</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Status</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>Value</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Sets status (STATUS_PHYSICS, STATUS_PHANTOM, STATUS_BLOCK_GRAB, STATUS_ROTATE_X, STATUS_ROTATE_Y, and/or STATUS_ROTATE_Z) to value.\nSets the Status to Value. Use STATUS_* constants for the values of status.</string>
+   </map>
+   <key>llSetText</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Text</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>Colour</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+     <map>
+      <key>Opacity</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Set text floating over object.\nSets the text that floats above the object, using the specified colour and opacity level.</string>
+   </map>
+   <key>llSetTexture</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Texture</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>Face</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.2</real>
+    <key>tooltip</key>
+    <string>Sets the Texture of Face.\nSets the Texture of Face. If Face is ALL_SIDES, set the texture on all faces.</string>
+   </map>
+   <key>llSetTextureAnim</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Mode</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>Face</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>SizeX</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>SizeY</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>Start</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+     <map>
+      <key>Length</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+     <map>
+      <key>Rate</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Animate the texture on the specified face/faces.\nAnimates a texture by setting the texture scale and offset.</string>
+   </map>
+   <key>llSetTimerEvent</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Rate</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Cause the timer event to be triggered every Rate seconds.\nSets the timer event to be triggered at the specified Rate, in seconds.\n
 				Passing in 0.0 stops further timer events.</string>
-			</map>
-			<key>llSetTorque</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Torque</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-					<map>
-						<key>Local</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Sets the Torque of object, in local coordinates if Local == TRUE (if the script is physical).\nIf the object is physical, this function sets the torque.\n
+   </map>
+   <key>llSetTorque</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Torque</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+     <map>
+      <key>Local</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Sets the Torque of object, in local coordinates if Local == TRUE (if the script is physical).\nIf the object is physical, this function sets the torque.\n
 			The vector is in local coordinates if Local is TRUE, global if FALSE.</string>
-			</map>
-			<key>llSetTouchText</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Text</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Displays Text in the menu that acts on a touch.\nDisplays Text in the viewer context menu that acts on a touch.</string>
-			</map>
-			<key>llSetVehicleFlags</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Flags</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Sets the enabled bits in 'flags'.\nSets the vehicle flags to TRUE.\nValid parameters can be found in the vehicle flags constants section.</string>
-			</map>
-			<key>llSetVehicleFloatParam</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>ParameterName</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>ParameterValue</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Sets the specified vehicle float parameter.\nSets the vehicle floating point parameter.\n
+   </map>
+   <key>llSetTouchText</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Text</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Displays Text in the menu that acts on a touch.\nDisplays Text in the viewer context menu that acts on a touch.</string>
+   </map>
+   <key>llSetVehicleFlags</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Flags</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Sets the enabled bits in 'flags'.\nSets the vehicle flags to TRUE.\nValid parameters can be found in the vehicle flags constants section.</string>
+   </map>
+   <key>llSetVehicleFloatParam</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>ParameterName</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>ParameterValue</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Sets the specified vehicle float parameter.\nSets the vehicle floating point parameter.\n
 				Valid parameters and their expected values can be found in the vehicle parameter constants section.</string>
-			</map>
-			<key>llSetVehicleRotationParam</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>ParameterName</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>ParameterValue</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Sets the specified vehicle rotation parameter.\nSets the vehicle rotation parameter.\n
+   </map>
+   <key>llSetVehicleRotationParam</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>ParameterName</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>ParameterValue</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Sets the specified vehicle rotation parameter.\nSets the vehicle rotation parameter.\n
 				Valid parameters can be found in the vehicle parameter constants section.</string>
-			</map>
-			<key>llSetVehicleType</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Type</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Sets vehicle to one of the default types.\nActivates the vehicle action and choose vehicle Type.\n
+   </map>
+   <key>llSetVehicleType</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Type</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Sets vehicle to one of the default types.\nActivates the vehicle action and choose vehicle Type.\n
 				Valid Types and an explanation of their characteristics can be found in the vehicle type constants section.</string>
-			</map>
-			<key>llSetVehicleVectorParam</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>ParameterName</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>ParameterValue</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Sets the specified vehicle vector parameter.\nSets the vehicle vector parameter.\nValid parameters can be found in the vehicle parameter constants section.</string>
-			</map>
-			<key>llSetVelocity</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Force</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-					<map>
-						<key>Local</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real/>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Sets an objects velocity, in local coordinates if Local == TRUE (if the script is physical).\nApplies Force to a physical object.</string>
-			</map>
-			<key>llSHA1String</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Text</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>string</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns a string of 40 hex characters that is the SHA1 security Hash of Text.\nReturns a string of 40 hex characters that is the SHA1 security hash of the supplied string.</string>
-			</map>
-			<key>llShout</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Channel</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>Text</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>shouts Text on Channel.\nShout Text on Channel. Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 to 2,147,483,648 are private channels that are not sent to avatars but other scripts can listen for through the llListen function.</string>
-			</map>
-			<key>llSin</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Theta</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>float</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the sine of Theta (Theta in radians).\nReturns the sine of Theta in radians.</string>
-			</map>
-			<key>llSitTarget</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Offset</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-					<map>
-						<key>Rotation</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>rotation</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Set the sit location for this object (if offset == &lt;0,0,0&gt; clear it).\nSet the sit location for this object. If offset == ZERO_VECTOR, clears the sit target.</string>
-			</map>
-			<key>llSleep</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Time</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Put script to sleep for Time seconds.\nPuts the script to sleep for time specified, in seconds.</string>
-			</map>
-			<key>llSound</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Sound</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>Volume</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-					<map>
-						<key>Queue</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>Loop</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>deprecated</key>
-				<boolean>true</boolean>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Deprecated: Use llPlaySound instead.\nDeprecated: Use llPlaySound instead.\nPlays Sound at Volume and specifies whether it should loop or not.</string>
-			</map>
-			<key>llSoundPreload</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Sound</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-				</array>
-				<key>deprecated</key>
-				<boolean>true</boolean>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Deprecated: Use llPreloadSound instead.\nDeprecated: Use llPreloadSound instead.\nPreloads a sound on viewers within range.</string>
-			</map>
-			<key>llSqrt</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Value</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>float</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the square root of Value, or returns 0 and triggers a Math Error for imaginary results.\nReturns the square root of the value. If the value is less than 0.0, this function returns 0.0 and raises a maths runtime error.</string>
-			</map>
-			<key>llStartAnimation</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Animation</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Start Animation for agent that owns object.\nThis function starts the animation for the last avatar that granted the object PERMISSION_TRIGGER_ANIMATION permission.</string>
-			</map>
-			<key>llStopAnimation</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Animation</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Stop Animation for agent that owns object.\nThis function stops the animation for the last avatar that granted the object PERMISSION_TRIGGER_ANIMATION permission.</string>
-			</map>
-			<key>llStopHover</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Stop hovering to a height.\nStop hovering at a height.</string>
-			</map>
-			<key>llStopLookAt</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Stop causing object to point at a target.\nStop causing object to look at target.</string>
-			</map>
-			<key>llStopMoveToTarget</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Stops critically damped motion.</string>
-			</map>
-			<key>llStopSound</key>
-			<map>
-				<key>arguments</key>
-				<undef/>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Stops currently attached sound.\nStops the currently playing attached sound started with llPlaySound or llLoopSound. Has no effect on sounds started with llTriggerSound.</string>
-			</map>
-			<key>llStringLength</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Text</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>integer</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the length of string.\nReturns the number of characters in the specified text.</string>
-			</map>
-			<key>llStringToBase64</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Text</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>string</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Converts a string to the Base64 representation of the string.\nConverts a string to the Base 64 representation of the string.</string>
-			</map>
-			<key>llStringTrim</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Text</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>TrimType</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>string</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Trims the leading and/or trailing white spaces from a string.\n
+   </map>
+   <key>llSetVehicleVectorParam</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>ParameterName</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>ParameterValue</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Sets the specified vehicle vector parameter.\nSets the vehicle vector parameter.\nValid parameters can be found in the vehicle parameter constants section.</string>
+   </map>
+   <key>llSetVelocity</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Force</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+     <map>
+      <key>Local</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real/>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Sets an objects velocity, in local coordinates if Local == TRUE (if the script is physical).\nApplies Force to a physical object.</string>
+   </map>
+   <key>llSHA1String</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Text</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>string</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns a string of 40 hex characters that is the SHA1 security Hash of Text.\nReturns a string of 40 hex characters that is the SHA1 security hash of the supplied string.</string>
+   </map>
+   <key>llShout</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Channel</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>Text</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>shouts Text on Channel.\nShout Text on Channel. Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 to 2,147,483,648 are private channels that are not sent to avatars but other scripts can listen for through the llListen function.</string>
+   </map>
+   <key>llSin</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Theta</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>float</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the sine of Theta (Theta in radians).\nReturns the sine of Theta in radians.</string>
+   </map>
+   <key>llSitTarget</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Offset</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+     <map>
+      <key>Rotation</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>rotation</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Set the sit location for this object (if offset == &lt;0,0,0&gt; clear it).\nSet the sit location for this object. If offset == ZERO_VECTOR, clears the sit target.</string>
+   </map>
+   <key>llSleep</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Time</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Put script to sleep for Time seconds.\nPuts the script to sleep for time specified, in seconds.</string>
+   </map>
+   <key>llSound</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Sound</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>Volume</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+     <map>
+      <key>Queue</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>Loop</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>deprecated</key>
+    <boolean>true</boolean>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Deprecated: Use llPlaySound instead.\nDeprecated: Use llPlaySound instead.\nPlays Sound at Volume and specifies whether it should loop or not.</string>
+   </map>
+   <key>llSoundPreload</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Sound</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+    </array>
+    <key>deprecated</key>
+    <boolean>true</boolean>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Deprecated: Use llPreloadSound instead.\nDeprecated: Use llPreloadSound instead.\nPreloads a sound on viewers within range.</string>
+   </map>
+   <key>llSqrt</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Value</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>float</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the square root of Value, or returns 0 and triggers a Math Error for imaginary results.\nReturns the square root of the value. If the value is less than 0.0, this function returns 0.0 and raises a maths runtime error.</string>
+   </map>
+   <key>llStartAnimation</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Animation</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Start Animation for agent that owns object.\nThis function starts the animation for the last avatar that granted the object PERMISSION_TRIGGER_ANIMATION permission.</string>
+   </map>
+   <key>llStopAnimation</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Animation</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Stop Animation for agent that owns object.\nThis function stops the animation for the last avatar that granted the object PERMISSION_TRIGGER_ANIMATION permission.</string>
+   </map>
+   <key>llStopHover</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Stop hovering to a height.\nStop hovering at a height.</string>
+   </map>
+   <key>llStopLookAt</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Stop causing object to point at a target.\nStop causing object to look at target.</string>
+   </map>
+   <key>llStopMoveToTarget</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Stops critically damped motion.</string>
+   </map>
+   <key>llStopSound</key>
+   <map>
+    <key>arguments</key>
+    <undef/>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Stops currently attached sound.\nStops the currently playing attached sound started with llPlaySound or llLoopSound. Has no effect on sounds started with llTriggerSound.</string>
+   </map>
+   <key>llStringLength</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Text</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>integer</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the length of string.\nReturns the number of characters in the specified text.</string>
+   </map>
+   <key>llStringToBase64</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Text</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>string</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Converts a string to the Base64 representation of the string.\nConverts a string to the Base 64 representation of the string.</string>
+   </map>
+   <key>llStringTrim</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Text</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>TrimType</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>string</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Trims the leading and/or trailing white spaces from a string.\n
 				TrimType can be STRING_TRIM, STRING_TRIM_HEAD or STRING_TRIM_TAIL.\nOutputs a string, eliminating white-space from the start and/or end of the specified string.\n
 				Constants for trim_type:\n
 				STRING_TRIM_HEAD: trim all leading spaces in text\n
 				STRING_TRIM_TAIL: trim all trailing spaces in text\n
 				STRING_TRIM: trim all leading and trailing spaces in text</string>
-			</map>
-			<key>llSubStringIndex</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Text</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>Sequence</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>integer</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns an integer that is the index in source where pattern first appears. Returns -1 if not found.\nReturns an index of the text where the sequence of characters first appears.\n
+   </map>
+   <key>llSubStringIndex</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Text</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>Sequence</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>integer</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns an integer that is the index in source where pattern first appears. Returns -1 if not found.\nReturns an index of the text where the sequence of characters first appears.\n
 				Returns -1 if no match is found.</string>
-			</map>
-			<key>llTakeCamera</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>AvatarID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-				</array>
-				<key>deprecated</key>
-				<boolean>true</boolean>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Deprecated: Use llSetCameraParams instead.\nDeprecated: Use llSetCameraParams instead. Move avatar's viewpoint to task.</string>
-			</map>
-			<key>llTakeControls</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Controls</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>Accept</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>PassOn</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Take controls from agent task has permissions for.	If (Accept == (controls &amp; input)), send input to task.	If PassOn send to agent also.\nRequires the PERMISSION_TAKE_CONTROLS permission to run.</string>
-			</map>
-			<key>llTan</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Theta</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>float</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the tangent of Theta (Theta in radians).\nReturns the tangent of Theta radians.</string>
-			</map>
-			<key>llTarget</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Position</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-					<map>
-						<key>Range</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>integer</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Sets positions within range of position as a target and return an ID for the target.\nSet object position, within range of position, as a target and returns an integer ID for the target.</string>
-			</map>
-			<key>llTargetOmega</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Axis</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-					<map>
-						<key>SpinRate</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-					<map>
-						<key>Gain</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Attempt to spin at SpinRate with strength Gain.\nAttempt to spin at SpinRate with strength Gain on axis.\n
+   </map>
+   <key>llTakeCamera</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>AvatarID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+    </array>
+    <key>deprecated</key>
+    <boolean>true</boolean>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Deprecated: Use llSetCameraParams instead.\nDeprecated: Use llSetCameraParams instead. Move avatar's viewpoint to task.</string>
+   </map>
+   <key>llTakeControls</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Controls</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>Accept</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>PassOn</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Take controls from agent task has permissions for.	If (Accept == (controls &amp; input)), send input to task.	If PassOn send to agent also.\nRequires the PERMISSION_TAKE_CONTROLS permission to run.</string>
+   </map>
+   <key>llTan</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Theta</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>float</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the tangent of Theta (Theta in radians).\nReturns the tangent of Theta radians.</string>
+   </map>
+   <key>llTarget</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Position</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+     <map>
+      <key>Range</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>integer</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Sets positions within range of position as a target and return an ID for the target.\nSet object position, within range of position, as a target and returns an integer ID for the target.</string>
+   </map>
+   <key>llTargetOmega</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Axis</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+     <map>
+      <key>SpinRate</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+     <map>
+      <key>Gain</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Attempt to spin at SpinRate with strength Gain.\nAttempt to spin at SpinRate with strength Gain on axis.\n
 			A spin-rate of 0.0 cancels the spin. This function always works in object local coordinates.</string>
-			</map>
-			<key>llTargetRemove</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Target</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Removes target number.\nRemove target number.</string>
-			</map>
-			<key>llTeleportAgent</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>AvatarID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-					<map>
-						<key>LandmarkName</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>Position</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-					<map>
-						<key>LookAtPoint</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0</real>
-				<key>tooltip</key>
-				<string>Requests a teleport of avatar to a landmark stored in the object's inventory. If no landmark is provided (an empty string), the avatar is teleported to the location position in the current region. In either case, the avatar is turned to face the position given by look_at in local coordinates.
+   </map>
+   <key>llTargetRemove</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Target</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Removes target number.\nRemove target number.</string>
+   </map>
+   <key>llTeleportAgent</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>AvatarID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+     <map>
+      <key>LandmarkName</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>Position</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+     <map>
+      <key>LookAtPoint</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0</real>
+    <key>tooltip</key>
+    <string>Requests a teleport of avatar to a landmark stored in the object's inventory. If no landmark is provided (an empty string), the avatar is teleported to the location position in the current region. In either case, the avatar is turned to face the position given by look_at in local coordinates.
 				Requires the PERMISSION_TELEPORT permission. This function can only teleport the owner of the object.</string>
-			</map>
-			<key>llTeleportAgentGlobalCoords</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>AvatarID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-					<map>
-						<key>GlobalPosition</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-					<map>
-						<key>RegionPosition</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-					<map>
-						<key>LookAtPoint</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0</real>
-				<key>tooltip</key>
-				<string>Teleports an agent to set of a region_coordinates within a region at the specified global_coordinates. The agent lands facing the position defined by look_at local coordinates.</string>
-			</map>
-			<key>llTeleportAgentHome</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>AvatarID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>100.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>5.0</real>
-				<key>tooltip</key>
-				<string>Teleports agent on owner's land to agent's home location.\nTeleport agent over the owner's land to agent's home location.</string>
-			</map>
-			<key>llTextBox</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>AvatarID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-					<map>
-						<key>Text</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>Channel</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>1.0</real>
-				<key>tooltip</key>
-				<string>Shows a dialog box on the avatar's screen with the message. A text box asks for input, and if entered the Text is chatted on Channel.\nShows a dialogue box on avatar's screen with the text message.\n
+   </map>
+   <key>llTeleportAgentGlobalCoords</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>AvatarID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+     <map>
+      <key>GlobalPosition</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+     <map>
+      <key>RegionPosition</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+     <map>
+      <key>LookAtPoint</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0</real>
+    <key>tooltip</key>
+    <string>Teleports an agent to set of a region_coordinates within a region at the specified global_coordinates. The agent lands facing the position defined by look_at local coordinates.</string>
+   </map>
+   <key>llTeleportAgentHome</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>AvatarID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>100.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>5.0</real>
+    <key>tooltip</key>
+    <string>Teleports agent on owner's land to agent's home location.\nTeleport agent over the owner's land to agent's home location.</string>
+   </map>
+   <key>llTextBox</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>AvatarID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+     <map>
+      <key>Text</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>Channel</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>1.0</real>
+    <key>tooltip</key>
+    <string>Shows a dialog box on the avatar's screen with the message. A text box asks for input, and if entered the Text is chatted on Channel.\nShows a dialogue box on avatar's screen with the text message.\n
 				It contains a text box for input. Any text that is entered is said on the specified channel (as if by the avatar) when the "OK" button is clicked.</string>
-			</map>
-			<key>llToLower</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Text</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>string</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns a string that is Text with all lower-case characters.\nReturns Text in all lower case.</string>
-			</map>
-			<key>llToUpper</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Text</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>string</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns a string that is Text with all upper-case characters.\nReturns Text in all upper case.</string>
-			</map>
-			<key>llTransferLindenDollars</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>AvatarID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-					<map>
-						<key>Amount</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real/>
-				<key>return</key>
-				<string>key</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Transfer Amount of linden dollars (L$) from script owner to AvatarID. Returns a key to a corresponding transaction_result event for the success of the transfer.\nAttempts to send the amount of money to the specified avatar, and trigger a transaction_result event identified by the returned key.</string>
-			</map>
-			<key>llTriggerSound</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Sound</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>Volume</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Plays Sound at Volume (0.0 - 1.0), centered at but not attached to object.\nPlays a transient sound NOT attached to an object.\n
+   </map>
+   <key>llToLower</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Text</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>string</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns a string that is Text with all lower-case characters.\nReturns Text in all lower case.</string>
+   </map>
+   <key>llToUpper</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Text</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>string</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns a string that is Text with all upper-case characters.\nReturns Text in all upper case.</string>
+   </map>
+   <key>llTransferLindenDollars</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>AvatarID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+     <map>
+      <key>Amount</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real/>
+    <key>return</key>
+    <string>key</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Transfer Amount of linden dollars (L$) from script owner to AvatarID. Returns a key to a corresponding transaction_result event for the success of the transfer.\nAttempts to send the amount of money to the specified avatar, and trigger a transaction_result event identified by the returned key.</string>
+   </map>
+   <key>llTriggerSound</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Sound</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>Volume</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Plays Sound at Volume (0.0 - 1.0), centered at but not attached to object.\nPlays a transient sound NOT attached to an object.\n
 				The sound plays from a stationary position located at the centre of the object at the time of the triggering.\n
 				There is no limit to the number of triggered sounds which can be generated by an object, and calling llTriggerSound does not affect the attached sounds created by llPlaySound and llLoopSound. This is very useful for things like collision noises, explosions, etc. There is no way to stop or alter the volume of a sound triggered by this function.</string>
-			</map>
-			<key>llTriggerSoundLimited</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Sound</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>Volume</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>float</string>
-						</map>
-					</map>
-					<map>
-						<key>TNE</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-					<map>
-						<key>BSW</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Plays Sound at Volume (0.0 - 1.0), centered at but not attached to object, limited to axis-aligned bounding box defined by vectors top-north-east (TNE) and bottom-south-west (BSW).\nPlays a transient sound NOT attached to an object, with its audible range limited by the axis-aligned bounding box define by TNE (top-north-east) and BSW (bottom-south-west).\n
+   </map>
+   <key>llTriggerSoundLimited</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Sound</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>Volume</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>float</string>
+      </map>
+     </map>
+     <map>
+      <key>TNE</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+     <map>
+      <key>BSW</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Plays Sound at Volume (0.0 - 1.0), centered at but not attached to object, limited to axis-aligned bounding box defined by vectors top-north-east (TNE) and bottom-south-west (BSW).\nPlays a transient sound NOT attached to an object, with its audible range limited by the axis-aligned bounding box define by TNE (top-north-east) and BSW (bottom-south-west).\n
 				The sound plays from a stationary position located at the centre of the object at the time of the triggering.\n
 				There is no limit to the number of triggered sounds which can be generated by an object, and calling llTriggerSound does not affect the attached sounds created by llPlaySound and llLoopSound. This is very useful for things like collision noises, explosions, etc. There is no way to stop or alter the volume of a sound triggered by this function.</string>
-			</map>
-			<key>llUnescapeURL</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>URL</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>string</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns an unescaped/ unencoded version of URL, replacing %20 with spaces etc.\nReturns the string that is the URL unescaped, replacing "%20" with spaces, etc., version of URL.\n
+   </map>
+   <key>llUnescapeURL</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>URL</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>string</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns an unescaped/ unencoded version of URL, replacing %20 with spaces etc.\nReturns the string that is the URL unescaped, replacing "%20" with spaces, etc., version of URL.\n
 				The function can output raw UTF-8 strings.</string>
-			</map>
-			<key>llUnSit</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>AvatarID</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>key</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>If agent identified by AvatarID is sitting on the object the script is attached to or is over land owned by the objects owner, the agent is forced to stand up.\nIf the agent identified is sitting on the object the script is attached to or is over land owned by the objects owner, the agent is forced to stand up.</string>
-			</map>
-			<key>llUpdateCharacter</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Options</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real/>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real/>
-				<key>tooltip</key>
-				<string>Change the character's settings.\nUpdates settings for a character.</string>
-			</map>
-			<key>llVecDist</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Location1</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-					<map>
-						<key>Location2</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>float</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the 3D distance between Location1 and Location2.\nReturns the distance from location 1 to location 2.</string>
-			</map>
-			<key>llVecMag</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Vector</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>float</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the magnitude of Vector.\nReturns the magnitude of the vector.</string>
-			</map>
-			<key>llVecNorm</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Vector</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>vector</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the v normalized.\nReturns normalized vector.</string>
-			</map>
-			<key>llVolumeDetect</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>DetectEnabled</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>If DetectEnabled = TRUE, object becomes phantom but triggers collision_start and collision_end events when other objects start and stop interpenetrating. Must be applied to the root object.\nWhen detect = TRUE, this makes the entire link set the script is attached to phantom. If another object (including avatars) interpenetrates it, it will get a collision_start event.\n
+   </map>
+   <key>llUnSit</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>AvatarID</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>key</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>If agent identified by AvatarID is sitting on the object the script is attached to or is over land owned by the objects owner, the agent is forced to stand up.\nIf the agent identified is sitting on the object the script is attached to or is over land owned by the objects owner, the agent is forced to stand up.</string>
+   </map>
+   <key>llUpdateCharacter</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Options</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real/>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real/>
+    <key>tooltip</key>
+    <string>Change the character's settings.\nUpdates settings for a character.</string>
+   </map>
+   <key>llVecDist</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Location1</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+     <map>
+      <key>Location2</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>float</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the 3D distance between Location1 and Location2.\nReturns the distance from location 1 to location 2.</string>
+   </map>
+   <key>llVecMag</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Vector</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>float</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the magnitude of Vector.\nReturns the magnitude of the vector.</string>
+   </map>
+   <key>llVecNorm</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Vector</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>vector</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the v normalized.\nReturns normalized vector.</string>
+   </map>
+   <key>llVolumeDetect</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>DetectEnabled</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>If DetectEnabled = TRUE, object becomes phantom but triggers collision_start and collision_end events when other objects start and stop interpenetrating. Must be applied to the root object.\nWhen detect = TRUE, this makes the entire link set the script is attached to phantom. If another object (including avatars) interpenetrates it, it will get a collision_start event.\n
 				When an object stops interpenetrating, a collision_end event is generated. While the other is inter-penetrating, collision events are NOT generated. The script must be applied to the root object of the link set to get the collision events.\n
 				Collision filters work normally.</string>
-			</map>
-			<key>llWanderWithin</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Origin</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-					<map>
-						<key>Area</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-					<map>
-						<key>Options</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>list</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real/>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real/>
-				<key>tooltip</key>
-				<string>Wander within a specified volume.\nSets a character to wander about a central spot within a specified area.</string>
-			</map>
-			<key>llWater</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Offset</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>float</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the water height below the object position + offset.\nReturns the water height at the object's position + offset.</string>
-			</map>
-			<key>llWhisper</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Channel</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>integer</string>
-						</map>
-					</map>
-					<map>
-						<key>Text</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>void</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Whispers Text on Channel.\nWhisper Text on Channel. Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 to 2,147,483,648 are private channels that are not sent to avatars but other scripts can listen for through the llListen function.</string>
-			</map>
-			<key>llWind</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Offset</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>vector</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>vector</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Returns the wind velocity at the object position + offset.\nReturns the wind velocity at the object's position + offset.</string>
-			</map>
-			<key>llXorBase64</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Text1</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>Text2</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-				</array>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>string</string>
-				<key>sleep</key>
-				<real>0.3</real>
-				<key>tooltip</key>
-				<string>Performs an exclusive OR on two Base64 strings and returns a Base64 string.	Text2 repeats if it is shorter than Text1.	Retained for backwards compatibility.\nDeprecated: Use llXorBase64StringsCorrect instead.\nIncorrectly performs an exclusive OR on two Base64 strings and returns a Base64 string.</string>
-			</map>
-			<key>llXorBase64Strings</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Text1</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>Text2</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-				</array>
-				<key>deprecated</key>
-				<boolean>true</boolean>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>string</string>
-				<key>sleep</key>
-				<real>0.3</real>
-				<key>tooltip</key>
-				<string>Deprecated: Please use llXorBase64 instead.\n
+   </map>
+   <key>llWanderWithin</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Origin</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+     <map>
+      <key>Area</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+     <map>
+      <key>Options</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>list</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real/>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real/>
+    <key>tooltip</key>
+    <string>Wander within a specified volume.\nSets a character to wander about a central spot within a specified area.</string>
+   </map>
+   <key>llWater</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Offset</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>float</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the water height below the object position + offset.\nReturns the water height at the object's position + offset.</string>
+   </map>
+   <key>llWhisper</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Channel</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>integer</string>
+      </map>
+     </map>
+     <map>
+      <key>Text</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>void</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Whispers Text on Channel.\nWhisper Text on Channel. Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 to 2,147,483,648 are private channels that are not sent to avatars but other scripts can listen for through the llListen function.</string>
+   </map>
+   <key>llWind</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Offset</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>vector</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>vector</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Returns the wind velocity at the object position + offset.\nReturns the wind velocity at the object's position + offset.</string>
+   </map>
+   <key>llXorBase64</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Text1</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>Text2</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+    </array>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>string</string>
+    <key>sleep</key>
+    <real>0.3</real>
+    <key>tooltip</key>
+    <string>Performs an exclusive OR on two Base64 strings and returns a Base64 string.	Text2 repeats if it is shorter than Text1.	Retained for backwards compatibility.\nDeprecated: Use llXorBase64StringsCorrect instead.\nIncorrectly performs an exclusive OR on two Base64 strings and returns a Base64 string.</string>
+   </map>
+   <key>llXorBase64Strings</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Text1</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>Text2</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+    </array>
+    <key>deprecated</key>
+    <boolean>true</boolean>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>string</string>
+    <key>sleep</key>
+    <real>0.3</real>
+    <key>tooltip</key>
+    <string>Deprecated: Please use llXorBase64 instead.\n
 				Incorrectly performs an exclusive OR on two Base64 strings and returns a Base64 string.	Text2 repeats if it is shorter than Text1.	Retained for backwards compatibility.\nDeprecated: Use llXorBase64StringsCorrect instead.\nIncorrectly performs an exclusive OR on two Base64 strings and returns a Base64 string.</string>
-			</map>
-			<key>llXorBase64StringsCorrect</key>
-			<map>
-				<key>arguments</key>
-				<array>
-					<map>
-						<key>Text1</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-					<map>
-						<key>Text2</key>
-						<map>
-							<key>tooltip</key>
-							<string/>
-							<key>type</key>
-							<string>string</string>
-						</map>
-					</map>
-				</array>
-				<key>deprecated</key>
-				<boolean>true</boolean>
-				<key>energy</key>
-				<real>10.0</real>
-				<key>return</key>
-				<string>string</string>
-				<key>sleep</key>
-				<real>0.0</real>
-				<key>tooltip</key>
-				<string>Deprecated: Please use llXorBase64 instead.\n
+   </map>
+   <key>llXorBase64StringsCorrect</key>
+   <map>
+    <key>arguments</key>
+    <array>
+     <map>
+      <key>Text1</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+     <map>
+      <key>Text2</key>
+      <map>
+       <key>tooltip</key>
+       <string/>
+       <key>type</key>
+       <string>string</string>
+      </map>
+     </map>
+    </array>
+    <key>deprecated</key>
+    <boolean>true</boolean>
+    <key>energy</key>
+    <real>10.0</real>
+    <key>return</key>
+    <string>string</string>
+    <key>sleep</key>
+    <real>0.0</real>
+    <key>tooltip</key>
+    <string>Deprecated: Please use llXorBase64 instead.\n
 				Correctly (unless nulls are present) performs an exclusive OR on two Base64 strings and returns a Base64 string.\n
 				Text2 repeats if it is shorter than Text1.\nPerforms an exclusive-OR on two Base64 strings and returns a Base64 string. text-2 repeats if it is shorter than text-1.\n
 				This function is for encrypting data. Put your data in text-1 and your key in text-2 to encrypt or put the encrypted data into text-1 with the same key in text-2 to decrypt again.</string>
-			</map>
-		</map>
-	</map>
+   </map>
+  </map>
+  <key>llsd-lsl-syntax-version</key>
+  <integer>2</integer>
+  <key>types</key>
+  <map>
+   <key>float</key>
+   <map>
+    <key>tooltip</key>
+    <string>32 bit floating point value.\nThe range is 1.175494351E-38 to 3.402823466E+38.</string>
+   </map>
+   <key>integer</key>
+   <map>
+    <key>tooltip</key>
+    <string>32 bit integer value.\n−2,147,483,648 and +2,147,483,647 (that is 0x80000000 to 0x7FFFFFFF in hex).</string>
+   </map>
+   <key>key</key>
+   <map>
+    <key>tooltip</key>
+    <string>A 128 bit unique identifier (UUID).\nThe key is represented as hexidecimal characters (A-F and 0-9), grouped into sections (8,4,4,4,12 characters) and separated by hyphens (for a total of 36 characters). e.g. "A822FF2B-FF02-461D-B45D-DCD10A2DE0C2".</string>
+   </map>
+   <key>list</key>
+   <map>
+    <key>tooltip</key>
+    <string>A collection of other data types.\nLists are signified by square brackets surrounding their elements; the elements inside are separated by commas. e.g. [0, 1, 2, 3, 4] or ["Yes", "No", "Perhaps"].</string>
+   </map>
+   <key>quaternion</key>
+   <map>
+    <key>tooltip</key>
+    <string>The quaternion type is a left over from way back when LSL was created. It was later renamed to &lt;rotation&gt; to make it more user friendly, but it appears someone forgot to remove it ;-)</string>
+   </map>
+   <key>rotation</key>
+   <map>
+    <key>tooltip</key>
+    <string>The rotation type is one of several ways to represent an orientation in 3D.\nIt is a mathematical object called a quaternion. You can think of a quaternion as four numbers (x, y, z, w), three of which represent the direction an object is facing and a fourth that represents the object's banking left or right around that direction.</string>
+   </map>
+   <key>string</key>
+   <map>
+    <key>tooltip</key>
+    <string>Text data.\nThe editor accepts UTF-8 encoded text.</string>
+   </map>
+   <key>vector</key>
+   <map>
+    <key>tooltip</key>
+    <string>A vector is a data type that contains a set of three float values.\nVectors are used to represent colours (RGB), positions, and directions/velocities.</string>
+   </map>
+  </map>
+ </map>
 </llsd>
\ No newline at end of file
diff --git a/indra/newview/app_settings/llsd-lsl-syntax.rng b/indra/newview/app_settings/llsd-lsl-syntax.rng
new file mode 100755
index 0000000000..aa92364ec1
--- /dev/null
+++ b/indra/newview/app_settings/llsd-lsl-syntax.rng
@@ -0,0 +1,390 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<grammar
+	xmlns="http://relaxng.org/ns/structure/1.0"
+	xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
+	datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
+	<start>
+		<element name="llsd">
+			<element name="map">
+				<group>
+					<element name="key">
+						<value>constants</value>
+					</element>
+					<element name="map">
+						<oneOrMore>
+							<group>
+								<ref name="keyString"/>
+								<element name="map">
+									<ref name="Deprecated" />
+									<ref name="constantTypeValue" />
+									<ref name="Tooltip" />
+								</element>
+							</group>
+						</oneOrMore>
+					</element>
+				</group>
+
+				<group>
+					<element name="key">
+						<value>controls</value>
+					</element>
+					<element name="map">
+						<oneOrMore>
+							<group>
+								<ref name="keyString"/>
+								<ref name="mapTooltip"/>
+							</group>
+						</oneOrMore>
+					</element>
+				</group>
+
+				<group>
+					<element name="key">
+						<value>events</value>
+					</element>
+					<element name="map">
+						<oneOrMore>
+							<group>
+								<ref name="keyString"/>
+								<element name="map">
+									<ref name="Deprecated" />
+									<ref name="Arguments"/>
+									<ref name="Tooltip"/>
+								</element>
+							</group>
+						</oneOrMore>
+					</element>
+				</group>
+
+				<group>
+					<element name="key">
+						<value>functions</value>
+					</element>
+					<element name="map">
+						<oneOrMore>
+							<group>
+								<ref name="keyString"/>
+								<element name="map">
+									<ref name="Arguments"/>
+									<ref name="Deprecated" />
+									<element name="key">
+										<value>energy</value>
+									</element>
+									<ref name="float"/>
+									<optional>
+										<group>
+											<element name="key">
+												<value>god-mode</value>
+											</element>
+											<element name="boolean">
+												<data type="boolean"/>
+											</element>
+										</group>
+									</optional>
+									<ref name="Return"/>
+									<element name="key">
+										<value>sleep</value>
+									</element>
+									<ref name="float"/>
+									<ref name="Tooltip"/>
+								</element>
+							</group>
+						</oneOrMore>
+					</element>
+				</group>
+
+				<group>
+					<element name="key">
+						<value>llsd-lsl-syntax-version</value>
+					</element>
+					<element name="integer">
+						<data type="integer" />
+					</element>
+				</group>
+
+				<group>
+					<element name="key">
+						<value>types</value>
+					</element>
+					<element name="map">
+						<oneOrMore>
+							<group>
+								<ref name="keyString"/>
+								<ref name="mapTooltip"/>
+							</group>
+						</oneOrMore>
+					</element>
+				</group>
+			</element>
+		</element>
+	</start>
+
+	<define name="Deprecated">
+		<optional>
+			<group>
+				<element name="key">
+					<value>deprecated</value>
+				</element>
+				<element name="boolean">
+					<data type="boolean"/>
+				</element>
+			</group>
+		</optional>
+	</define>
+
+	<define name="keyName">
+		<element name="key"><value>name</value></element>
+		<element name="string"><data type="string" /></element>
+	</define>
+
+
+	<define name="keyString">
+		<element name="key"><data type="string"/></element>
+	</define>
+
+	<define name="keyType">
+		<element name="key"><value>type</value></element>
+	</define>
+	
+	<define name="typeList">
+		<ref name="keyType" />
+		<element name="string">
+			<choice>
+				<value>float</value>
+				<value>integer</value>
+				<value>key</value>
+				<value>list</value>
+				<value>rotation</value>
+				<value>string</value>
+				<value>vector</value>
+			</choice>
+		</element>
+	</define>
+
+	<define name="keyValue">
+		<element name="key"><value>value</value></element>
+	</define>
+
+	<define name="constantTypeValue">
+		<choice>
+			<group>
+				<ref name="keyType"/>
+				<element name="string"><value>float</value></element>
+				<ref name="keyValue"/>
+				<element name="real"><data type="float"/></element>
+			</group>
+			<group>
+				<ref name="keyType"/>
+				<element name="string"><value>integer</value></element>
+				<ref name="keyValue"/>
+				<choice>
+					<element name="integer"><data type="integer"/></element>
+					<element name="integer"><data type="string"><param name="pattern">0x[0-9A-Fa-f]+</param></data></element>
+				</choice>
+			</group>
+			<group>
+				<ref name="keyType"/>
+				<element name="string"><value>key</value></element>
+				<ref name="keyValue"/>
+				<element name="uuid"><data type="string"><param name="pattern">[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}</param></data></element>
+			</group>
+			<group>
+				<ref name="keyType"/>
+				<element name="string"><value>rotation</value></element>
+				<ref name="keyValue"/>
+				<element name="array">
+					<element name="map">
+						<element name="key">
+							<value>x</value>
+						</element>
+						<ref name="realFromMinusOneToOne"/>
+					</element>
+					<element name="map">
+						<element name="key">
+							<value>y</value>
+						</element>
+						<ref name="realFromMinusOneToOne"/>
+					</element>
+					<element name="map">
+						<element name="key">
+							<value>z</value>
+						</element>
+						<ref name="realFromMinusOneToOne"/>
+					</element>
+					<element name="map">
+						<element name="key"><value>w</value></element>
+					<ref name="realFromMinusOneToOne"/>
+					</element>
+				</element>
+			</group>
+			<group>
+				<ref name="keyType"/>
+				<element name="string"><value>string</value></element>
+				<ref name="keyValue"/>
+				<element name="string">
+					<data type="string"/>
+				</element>
+			</group>
+			<group>
+				<ref name="keyType"/>
+				<element name="string">
+					<value>vector</value>
+				</element>
+				<ref name="keyValue"/>
+				<element name="array">
+					<ref name="vector"/>
+				</element>
+			</group>
+		</choice>
+	</define>
+
+	<define name="nameType">
+		<ref name="keyName" />
+		<ref name="keyType" />
+	</define>
+
+	<define name="realFromMinusOneToOne">
+		<element name="real">
+			<data type="float">
+				<param name="pattern">([\-+]|)(1|0)\.\d+</param>
+			</data>
+		</element>
+	</define>
+
+	<define name="float">
+		<choice>
+			<element name="real">
+				<data type="float"/>
+			</element>
+			<element name="real">
+				<empty/>
+			</element>
+		</choice>
+	</define>
+
+	<define name="vector">
+		<element name="map">
+			<element name="key">
+				<value>x</value>
+			</element>
+			<ref name="realFromMinusOneToOne"/>
+		</element>
+		<element name="map">
+			<element name="key">
+				<value>y</value>
+			</element>
+			<ref name="realFromMinusOneToOne"/>
+		</element>
+		<element name="map">
+			<element name="key">
+				<value>z</value>
+			</element>
+			<ref name="realFromMinusOneToOne"/>
+		</element>
+	</define>
+
+	<define name="mapTooltip">
+		<element name="map">
+			<ref name="Tooltip" />
+		</element>
+	</define>
+	
+	<define name="Tooltip">
+		<element name="key">
+			<value>tooltip</value>
+		</element>
+		<element name="string">
+			<data type="string" />
+		</element>
+	</define>
+	
+	<define name="Arguments">
+		<element name="key"><value>arguments</value></element>
+		<choice>
+			<element name="array">
+				<oneOrMore>
+					<element name="map">
+						<element name="key"><data type="string"><param name="pattern">[A-Z][A-Za-z0-9_]*|[a-z]</param></data></element>
+						<element name="map">
+							<!--ref name="keyName" /-->
+							<ref name="Tooltip" />
+							<ref name="typeList" />
+						</element>
+					</element>
+				</oneOrMore>
+				<!--choice>
+					<oneOrMore>
+						<element name="map">
+							<ref name="Argument"/>
+						</element>
+					</oneOrMore>
+					<element name="undef">
+						<empty/>
+					</element>
+				</choice-->
+			</element>
+			<element name="undef"><empty/></element>
+		</choice>
+	</define>
+
+	<define name="Argument">
+		<ref name="keyType"/>
+		<choice>
+			<element name="string">
+				<value>float</value>
+			</element>
+			<element name="string">
+				<value>integer</value>
+			</element>
+			<element name="string">
+				<value>key</value>
+			</element>
+			<element name="string">
+				<value>list</value>
+			</element>
+			<element name="string">
+				<value>rotation</value>
+			</element>
+			<element name="string">
+				<value>string</value>
+			</element>
+			<element name="string">
+				<value>vector</value>
+			</element>
+		</choice>
+		<ref name="Tooltip"/>
+	</define>
+
+	<define name="Return">
+		<element name="key">
+			<value>return</value>
+		</element>
+		<choice>
+			<element name="string">
+				<value>float</value>
+			</element>
+			<element name="string">
+				<value>integer</value>
+			</element>
+			<element name="string">
+				<value>key</value>
+			</element>
+			<element name="string">
+				<value>list</value>
+			</element>
+			<element name="string">
+				<value>rotation</value>
+			</element>
+			<element name="string">
+				<value>string</value>
+			</element>
+			<element name="string">
+				<value>vector</value>
+			</element>
+			<element name="string">
+				<value>void</value>
+			</element>
+		</choice>
+	</define>
+
+</grammar>
\ No newline at end of file
-- 
cgit v1.2.3


From bc1cecd75435f29d360bc305ed3f20bc2d2dda7e Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Tue, 14 Jan 2014 00:22:41 +0000
Subject: Removing the value "void" from return types and empty argument lists.

---
 indra/llui/llkeywords.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'indra')

diff --git a/indra/llui/llkeywords.cpp b/indra/llui/llkeywords.cpp
index 050573e699..9dd14f4a2f 100755
--- a/indra/llui/llkeywords.cpp
+++ b/indra/llui/llkeywords.cpp
@@ -165,7 +165,7 @@ std::string LLKeywords::getArguments(LLSD& arguments)
 		LL_WARNS("SyntaxLSL")
 				<< "Not an array! Invalid arguments LLSD passed to function." << arguments << LL_ENDL;
 	}
-	return argString == "" ? " void " : argString;
+	return argString == "" ? "" : argString;
 }
 
 std::string LLKeywords::getAttribute(const std::string& key)
-- 
cgit v1.2.3


From 8df2007187236d1b77ccec916fc63f0481cf599c Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Tue, 14 Jan 2014 03:45:14 +0000
Subject: storm-1831 Enabling highlighting of deprecated and god-mode
 functions.

---
 indra/llui/llkeywords.cpp              | 94 ++++++++++++++++++++++------------
 indra/newview/skins/default/colors.xml |  4 +-
 2 files changed, 64 insertions(+), 34 deletions(-)

(limited to 'indra')

diff --git a/indra/llui/llkeywords.cpp b/indra/llui/llkeywords.cpp
index 9dd14f4a2f..fe91c74fa0 100755
--- a/indra/llui/llkeywords.cpp
+++ b/indra/llui/llkeywords.cpp
@@ -177,33 +177,68 @@ std::string LLKeywords::getAttribute(const std::string& key)
 LLColor4 LLKeywords::getColorGroup(const std::string key_in)
 {
 	std::string ColourGroup = "Black";
-	if (key_in == "constants-float") {
+	if (key_in == "constants-float")
+	{
 		ColourGroup = "SyntaxLslConstantFloat";
-	} else if (key_in == "constants-integer") {
+	}
+	else if (key_in == "constants-integer")
+	{
 		ColourGroup = "SyntaxLslConstantInteger";
-	} else if (key_in == "constants-key") {
+	}
+	else if (key_in == "constants-key")
+	{
 		ColourGroup = "SyntaxLslConstantKey";
-	} else if (key_in == "constants-string") {
+	}
+	else if (key_in == "constants-string")
+	{
 		ColourGroup = "SyntaxLslConstantRotation";
-	} else if (key_in == "constants-string") {
+	}
+	else if (key_in == "constants-string")
+	{
 		ColourGroup = "SyntaxLslConstantString";
-	} else if (key_in == "constants-vector") {
+	}
+	else if (key_in == "constants-vector")
+	{
 		ColourGroup = "SyntaxLslConstantVector";
-	} else if (key_in == "controls") {
+	}
+	else if (key_in == "controls")
+	{
 		ColourGroup = "SyntaxLslControlFlow";
-	} else if (key_in == "events") {
+	}
+	else if (key_in =="deprecated")
+	{
+		ColourGroup = "SyntaxLslDeprecated";
+	}
+	else if (key_in == "events")
+	{
 		ColourGroup = "SyntaxLslEvent";
-	} else if (key_in == "functions") {
+	}
+	else if (key_in == "functions")
+	{
 		ColourGroup = "SyntaxLslFunction";
-	} else if (key_in == "types") {
+	}
+	else if (key_in =="god-mode")
+	{
+		ColourGroup = "SyntaxLslGodMode";
+	}
+	else if (key_in == "types")
+	{
 		ColourGroup = "SyntaxLslDataType";
-	} else if (key_in == "sections") {
+	}
+	else if (key_in == "sections")
+	{
 		ColourGroup = "SyntaxLslSection";
-	} else if (key_in == "misc-double_quotation_marks") {
+	}
+	else if (key_in == "misc-double_quotation_marks")
+	{
 		ColourGroup = "SyntaxLslStringLiteral";
-	} else if (key_in == "misc-comments_1_sided") {
+	}
+	else if (key_in == "misc-comments_1_sided")
+	{
 		ColourGroup = "SyntaxLslComment1Sided";
-	} else if (key_in == "misc-comments_2_sided") {
+	}
+	else if (key_in == "misc-comments_2_sided")
+	{
 		ColourGroup = "SyntaxLslComment2Sided";	
 	}
 
@@ -228,20 +263,9 @@ void LLKeywords::processTokens()
 	LLSD::map_iterator outerIt = mSyntax.beginMap();
 	for ( ; outerIt != mSyntax.endMap(); ++outerIt)
 	{
-		if (outerIt->first == "misc")
+		if (outerIt->first == "llsd-lsl-syntax-version")
 		{
-			if (outerIt->second.isMap())
-			{
-				LLSD::map_iterator innerIt = outerIt->second.beginMap();
-				for ( ; innerIt != outerIt->second.endMap(); ++innerIt)
-				{
-					processTokensGroup(innerIt->second, "misc-" + innerIt->first);
-				}
-			}
-			else
-			{
-				LL_ERRS("LSL-Tokens-Processing") << "Map for misc entries is missing! Ignoring." << LL_ENDL;
-			}
+			LL_INFOS("SyntaxLSL") << "Skipping over version key." << LL_ENDL;
 		}
 		else
 		{
@@ -255,12 +279,15 @@ void LLKeywords::processTokens()
 			}
 		}
 	}
-	LL_INFOS("") << LL_ENDL;
+	LL_INFOS("SyntaxLSL") << "Finished processing tokens." << LL_ENDL;
 }
 
 void LLKeywords::processTokensGroup(LLSD& Tokens, const std::string Group)
 {
 	LLColor4 Color;
+	LLColor4 ColorGroup;
+	LLColor4 ColorDeprecated = getColorGroup("deprecated");
+	LLColor4 ColorGM = getColorGroup("god-mode");
 
 	LLKeywordToken::TOKEN_TYPE token_type = LLKeywordToken::TT_UNKNOWN;
 	// If a new token type is added here, it must also be added to the 'addToken' method
@@ -289,7 +316,7 @@ void LLKeywords::processTokensGroup(LLSD& Tokens, const std::string Group)
 		token_type = LLKeywordToken::TT_TYPE;
 	}
 
-	Color = getColorGroup(Group);
+	ColorGroup = getColorGroup(Group);
 	LL_INFOS("Tokens") << "Group: '" << Group << "', using colour: '" << Color << "'" << LL_ENDL;
 
 	if (Tokens.isMap())
@@ -299,6 +326,7 @@ void LLKeywords::processTokensGroup(LLSD& Tokens, const std::string Group)
 		{
 			if (outerIt->second.isMap())
 			{
+				Color = ColorGroup;
 				mAttributes.clear();
 				bool deprecated = false;
 				LLSD arguments = LLSD ();
@@ -348,11 +376,13 @@ void LLKeywords::processTokensGroup(LLSD& Tokens, const std::string Group)
 					tooltip += getAttribute("tooltip");
 				}
 
-				deprecated = getAttribute("deprecated") == "true" ? true : false;
-				if (deprecated)
+				Color = getAttribute("deprecated") == "true" ? ColorDeprecated : ColorGroup;
+
+				if (getAttribute("god-mode") == "true")
 				{
-					Color = getColorGroup("deprecated");
+					Color = ColorGM;
 				}
+
 				addToken(token_type, outerIt->first, Color, tooltip);
 			}
 		}
diff --git a/indra/newview/skins/default/colors.xml b/indra/newview/skins/default/colors.xml
index 77a8fc7e22..dab4c5eb3b 100755
--- a/indra/newview/skins/default/colors.xml
+++ b/indra/newview/skins/default/colors.xml
@@ -936,9 +936,9 @@
   <color
     name="SyntaxLslDataType"
     value=".1 .3 .1 1.0" />
-  <color
+   <color
     name="SyntaxLslDeprecated"
-    value=".9 .4 .55 1.0" />
+    value="0.9 0.0 0.66, 1.0" />
   <color
    name="SyntaxLslEvent"
    value="0 .3 .5 1.0" />
-- 
cgit v1.2.3


From ebac8c0a2a0fe8487892e3f2043bc7786c0dc3c9 Mon Sep 17 00:00:00 2001
From: Jonathan Yap <none@none>
Date: Tue, 14 Jan 2014 10:34:08 -0500
Subject: STORM-2007 Buy floater displays truncated names/permissions when
 object is set to sell original and sell copy.

---
 indra/newview/skins/default/xui/en/floater_buy_object.xml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/skins/default/xui/en/floater_buy_object.xml b/indra/newview/skins/default/xui/en/floater_buy_object.xml
index 5fdd4aa49d..49be4290c7 100755
--- a/indra/newview/skins/default/xui/en/floater_buy_object.xml
+++ b/indra/newview/skins/default/xui/en/floater_buy_object.xml
@@ -47,7 +47,7 @@
          width="16" />
         <scroll_list.columns
          name="text"
-         width="234" />
+         relative_width="1" />
     </scroll_list>
     <text
      type="string"
@@ -77,7 +77,7 @@
          width="16" />
         <scroll_list.columns
          name="text"
-         width="234" />
+         relative_width="1" />
     </scroll_list>
     <text
      type="string"
-- 
cgit v1.2.3


From 11beaee5667a35196a481e6e2543123c63843821 Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Tue, 14 Jan 2014 18:27:15 +0000
Subject: Fixing LL_INFOS out put for group colour that previous commit broke.

---
 indra/llui/llkeywords.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'indra')

diff --git a/indra/llui/llkeywords.cpp b/indra/llui/llkeywords.cpp
index fe91c74fa0..0395334b6e 100755
--- a/indra/llui/llkeywords.cpp
+++ b/indra/llui/llkeywords.cpp
@@ -317,7 +317,7 @@ void LLKeywords::processTokensGroup(LLSD& Tokens, const std::string Group)
 	}
 
 	ColorGroup = getColorGroup(Group);
-	LL_INFOS("Tokens") << "Group: '" << Group << "', using colour: '" << Color << "'" << LL_ENDL;
+	LL_INFOS("Tokens") << "Group: '" << Group << "', using colour: '" << ColorGroup << "'" << LL_ENDL;
 
 	if (Tokens.isMap())
 	{
-- 
cgit v1.2.3


From 11f7dd8cc7516a75aaf012cc47b90d33c3289033 Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Tue, 14 Jan 2014 18:28:04 +0000
Subject: Adding TODO for LLSD validating and version check, while I wait for
 some info on how to do it.

---
 indra/newview/llsyntaxid.cpp | 2 ++
 1 file changed, 2 insertions(+)

(limited to 'indra')

diff --git a/indra/newview/llsyntaxid.cpp b/indra/newview/llsyntaxid.cpp
index 94226b82b1..2784939199 100644
--- a/indra/newview/llsyntaxid.cpp
+++ b/indra/newview/llsyntaxid.cpp
@@ -58,6 +58,8 @@ void fetchKeywordsFileResponder::errorWithContent(U32 status,
 
 void fetchKeywordsFileResponder::result(const LLSD& content_ref)
 {
+	// TODO check for llsd-lsl-syntax-version key and return if not present or not 1.
+
 	LLSyntaxIdLSL::setKeywordsXml(content_ref);
 
 	std::stringstream str;
-- 
cgit v1.2.3


From 81170ed939ce88ec9996ed5ecf2ae34684d199ec Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Wed, 15 Jan 2014 21:33:09 +0000
Subject: Adding error output for attributes containing MAP or ARRAY elements.

---
 indra/llui/llkeywords.cpp | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

(limited to 'indra')

diff --git a/indra/llui/llkeywords.cpp b/indra/llui/llkeywords.cpp
index 0395334b6e..34dff22729 100755
--- a/indra/llui/llkeywords.cpp
+++ b/indra/llui/llkeywords.cpp
@@ -340,10 +340,14 @@ void LLKeywords::processTokensGroup(LLSD& Tokens, const std::string Group)
 							arguments = innerIt->second;
 						}
 					}
-					else
+					else if (!innerIt->second.isMap() && !innerIt->second.isArray())
 					{
 						mAttributes[innerIt->first] = innerIt->second.asString();
 					}
+					else
+					{
+						LL_ERRS("SyntaxLSL") << "Not a valid attribute" << LL_ENDL;
+					}
 				}
 
 				std::string tooltip = "";
-- 
cgit v1.2.3


From a161bfe915397f42393e41d9fee7dbde779ab393 Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Wed, 15 Jan 2014 21:37:45 +0000
Subject: Replacing old keyword default file. This is NOT an LL sanctioned
 file, but a temporary personally generated one for testing while the
 canonical file is being prepared.

---
 .../newview/app_settings/keywords_lsl_default.xml  | 36911 +++++++++----------
 1 file changed, 18249 insertions(+), 18662 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/app_settings/keywords_lsl_default.xml b/indra/newview/app_settings/keywords_lsl_default.xml
index dac3081d37..7bdd63e79d 100755
--- a/indra/newview/app_settings/keywords_lsl_default.xml
+++ b/indra/newview/app_settings/keywords_lsl_default.xml
@@ -1,18669 +1,18256 @@
 <?xml version="1.0" encoding="UTF-8"?><?xml-model href="llsd-lsl-syntax.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
 <llsd>
- <map>
-  <key>constants</key>
-  <map>
-   <key>ACTIVE</key>
    <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x2</integer>
-    <key>tooltip</key>
-    <string>Objects in world that are running a script or currently physically moving.</string>
-   </map>
-   <key>AGENT</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x1</integer>
-    <key>tooltip</key>
-    <string>Objects in world that are agents.</string>
-   </map>
-   <key>AGENT_ALWAYS_RUN</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x1000</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>AGENT_ATTACHMENTS</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x2</integer>
-    <key>tooltip</key>
-    <string>The agent has attachments.</string>
-   </map>
-   <key>AGENT_AUTOPILOT</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x2000</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>AGENT_AWAY</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x40</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>AGENT_BUSY</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x800</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>AGENT_BY_LEGACY_NAME</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x1</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>AGENT_BY_USERNAME</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x10</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>AGENT_CROUCHING</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x400</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>AGENT_FLYING</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x1</integer>
-    <key>tooltip</key>
-    <string>The agent is flying.</string>
-   </map>
-   <key>AGENT_IN_AIR</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x100</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>AGENT_LIST_PARCEL</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1</integer>
-    <key>tooltip</key>
-    <string>Agents on the same parcel where the script is running.</string>
-   </map>
-   <key>AGENT_LIST_PARCEL_OWNER</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>2</integer>
-    <key>tooltip</key>
-    <string>Agents on any parcel in the region where the parcel owner is the same as the owner of the parcel under the scripted object.</string>
-   </map>
-   <key>AGENT_LIST_REGION</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>4</integer>
-    <key>tooltip</key>
-    <string>All agents in the region.</string>
-   </map>
-   <key>AGENT_MOUSELOOK</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x8</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>AGENT_ON_OBJECT</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x20</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>AGENT_SCRIPTED</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x4</integer>
-    <key>tooltip</key>
-    <string>The agent has scripted attachments.</string>
-   </map>
-   <key>AGENT_SITTING</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x10</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>AGENT_TYPING</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x200</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>AGENT_WALKING</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x80</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>ALL_SIDES</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>-1</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>ANIM_ON</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x1</integer>
-    <key>tooltip</key>
-    <string>Texture animation is on.</string>
-   </map>
-   <key>ATTACH_AVATAR_CENTER</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>40</integer>
-    <key>tooltip</key>
-    <string>Attach to the avatar's geometric centre.</string>
-   </map>
-   <key>ATTACH_BACK</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>9</integer>
-    <key>tooltip</key>
-    <string>Attach to the avatar's back.</string>
-   </map>
-   <key>ATTACH_BELLY</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>28</integer>
-    <key>tooltip</key>
-    <string>Attach to the avatar's belly.</string>
-   </map>
-   <key>ATTACH_CHEST</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1</integer>
-    <key>tooltip</key>
-    <string>Attach to the avatar's chest.</string>
-   </map>
-   <key>ATTACH_CHIN</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>12</integer>
-    <key>tooltip</key>
-    <string>Attach to the avatar's chin.</string>
-   </map>
-   <key>ATTACH_HEAD</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>2</integer>
-    <key>tooltip</key>
-    <string>Attach to the avatar's head.</string>
-   </map>
-   <key>ATTACH_HUD_BOTTOM</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>37</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>ATTACH_HUD_BOTTOM_LEFT</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>36</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>ATTACH_HUD_BOTTOM_RIGHT</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>38</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>ATTACH_HUD_CENTER_1</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>35</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>ATTACH_HUD_CENTER_2</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>31</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>ATTACH_HUD_TOP_CENTER</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>33</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>ATTACH_HUD_TOP_LEFT</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>34</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>ATTACH_HUD_TOP_RIGHT</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>32</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>ATTACH_LEAR</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>13</integer>
-    <key>tooltip</key>
-    <string>Attach to the avatar's left ear.</string>
-   </map>
-   <key>ATTACH_LEFT_PEC</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>29</integer>
-    <key>tooltip</key>
-    <string>Attach to the avatar's left pectoral.</string>
-   </map>
-   <key>ATTACH_LEYE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>15</integer>
-    <key>tooltip</key>
-    <string>Attach to the avatar's left eye.</string>
-   </map>
-   <key>ATTACH_LFOOT</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>7</integer>
-    <key>tooltip</key>
-    <string>Attach to the avatar's left foot.</string>
-   </map>
-   <key>ATTACH_LHAND</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>5</integer>
-    <key>tooltip</key>
-    <string>Attach to the avatar's left hand.</string>
-   </map>
-   <key>ATTACH_LHIP</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>25</integer>
-    <key>tooltip</key>
-    <string>Attach to the avatar's left hip.</string>
-   </map>
-   <key>ATTACH_LLARM</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>21</integer>
-    <key>tooltip</key>
-    <string>Attach to the avatar's left lower arm.</string>
-   </map>
-   <key>ATTACH_LLLEG</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>27</integer>
-    <key>tooltip</key>
-    <string>Attach to the avatar's lower left leg.</string>
-   </map>
-   <key>ATTACH_LPEC</key>
-   <map>
-    <key>deprecated</key>
-    <boolean>true</boolean>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>30</integer>
-    <key>tooltip</key>
-    <string>Attach to the avatar's right pectoral. (Deprecated, use ATTACH_RIGHT_PEC)</string>
-   </map>
-   <key>ATTACH_LSHOULDER</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>3</integer>
-    <key>tooltip</key>
-    <string>Attach to the avatar's left shoulder.</string>
-   </map>
-   <key>ATTACH_LUARM</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>20</integer>
-    <key>tooltip</key>
-    <string>Attach to the avatar's left upper arm.</string>
-   </map>
-   <key>ATTACH_LULEG</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>27</integer>
-    <key>tooltip</key>
-    <string>Attach to the avatar's lower upper leg.</string>
-   </map>
-   <key>ATTACH_MOUTH</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>11</integer>
-    <key>tooltip</key>
-    <string>Attach to the avatar's mouth.</string>
-   </map>
-   <key>ATTACH_NECK</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>39</integer>
-    <key>tooltip</key>
-    <string>Attach to the avatar's neck.</string>
-   </map>
-   <key>ATTACH_NOSE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>17</integer>
-    <key>tooltip</key>
-    <string>Attach to the avatar's nose.</string>
-   </map>
-   <key>ATTACH_PELVIS</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>10</integer>
-    <key>tooltip</key>
-    <string>Attach to the avatar's pelvis.</string>
-   </map>
-   <key>ATTACH_REAR</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>14</integer>
-    <key>tooltip</key>
-    <string>Attach to the avatar's right ear.</string>
-   </map>
-   <key>ATTACH_REYE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>16</integer>
-    <key>tooltip</key>
-    <string>Attach to the avatar's right eye.</string>
-   </map>
-   <key>ATTACH_RFOOT</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>8</integer>
-    <key>tooltip</key>
-    <string>Attach to the avatar's right foot.</string>
-   </map>
-   <key>ATTACH_RHAND</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>6</integer>
-    <key>tooltip</key>
-    <string>Attach to the avatar's right hand.</string>
-   </map>
-   <key>ATTACH_RHIP</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>22</integer>
-    <key>tooltip</key>
-    <string>Attach to the avatar's right hip.</string>
-   </map>
-   <key>ATTACH_RIGHT_PEC</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>30</integer>
-    <key>tooltip</key>
-    <string>Attach to the avatar's right pectoral.</string>
-   </map>
-   <key>ATTACH_RLARM</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>19</integer>
-    <key>tooltip</key>
-    <string>Attach to the avatar's right lower arm.</string>
-   </map>
-   <key>ATTACH_RLLEG</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>24</integer>
-    <key>tooltip</key>
-    <string>Attach to the avatar's right lower leg.</string>
-   </map>
-   <key>ATTACH_RPEC</key>
-   <map>
-    <key>deprecated</key>
-    <boolean>true</boolean>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>29</integer>
-    <key>tooltip</key>
-    <string>Attach to the avatar's left pectoral. (deprecated, use ATTACH_LEFT_PEC)</string>
-   </map>
-   <key>ATTACH_RSHOULDER</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>4</integer>
-    <key>tooltip</key>
-    <string>Attach to the avatar's right shoulder.</string>
-   </map>
-   <key>ATTACH_RUARM</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>18</integer>
-    <key>tooltip</key>
-    <string>Attach to the avatar's right upper arm.</string>
-   </map>
-   <key>ATTACH_RULEG</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>23</integer>
-    <key>tooltip</key>
-    <string>Attach to the avatar's right upper leg.</string>
-   </map>
-   <key>AVOID_CHARACTERS</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>AVOID_DYNAMIC_OBSTACLES</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>2</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>AVOID_NONE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>CAMERA_ACTIVE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>12</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>CAMERA_BEHINDNESS_ANGLE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>8</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>CAMERA_BEHINDNESS_LAG</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>9</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>CAMERA_DISTANCE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>7</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>CAMERA_FOCUS</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>17</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>CAMERA_FOCUS_LAG</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>6</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>CAMERA_FOCUS_LOCKED</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>22</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>CAMERA_FOCUS_OFFSET</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>CAMERA_FOCUS_THRESHOLD</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>11</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>CAMERA_PITCH</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>CAMERA_POSITION</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>13</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>CAMERA_POSITION_LAG</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>6</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>CAMERA_POSITION_LOCKED</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>22</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>CAMERA_POSITION_THRESHOLD</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>10</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>CHANGED_ALLOWED_DROP</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x40</integer>
-    <key>tooltip</key>
-    <string>The object inventory has changed because an item was added through the llAllowInventoryDrop interface.</string>
-   </map>
-   <key>CHANGED_COLOR</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x2</integer>
-    <key>tooltip</key>
-    <string>The object colour has changed.</string>
-   </map>
-   <key>CHANGED_INVENTORY</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x1</integer>
-    <key>tooltip</key>
-    <string>The object inventory has changed.</string>
-   </map>
-   <key>CHANGED_LINK</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x20</integer>
-    <key>tooltip</key>
-    <string>The object has linked or its links were broken.</string>
-   </map>
-   <key>CHANGED_MEDIA</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>2048</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>CHANGED_OWNER</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x80</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>CHANGED_REGION</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x100</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>CHANGED_REGION_START</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x400</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>CHANGED_SCALE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x8</integer>
-    <key>tooltip</key>
-    <string>The object scale (size) has changed.</string>
-   </map>
-   <key>CHANGED_SHAPE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x4</integer>
-    <key>tooltip</key>
-    <string>The object base shape has changed, e.g., a box to a cylinder.</string>
-   </map>
-   <key>CHANGED_TELEPORT</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x200</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>CHANGED_TEXTURE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x10</integer>
-    <key>tooltip</key>
-    <string>The texture offset, scale rotation, or simply the object texture has changed.</string>
-   </map>
-   <key>CHARACTER_ACCOUNT_FOR_SKIPPED_FRAMES</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>14</integer>
-    <key>tooltip</key>
-    <string>If set to false, character will not attempt to catch up on lost time when pathfinding performance is low, potentially providing more reliable movement (albeit while potentially appearing to be more stuttery). Default is true to match pre-existing behavior.</string>
-   </map>
-   <key>CHARACTER_AVOIDANCE_MODE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>5</integer>
-    <key>tooltip</key>
-    <string>Allows you to specify that a character should not try to avoid other characters, should not try to avoid dynamic obstacles (relatively fast moving objects and avatars), or both.</string>
-   </map>
-   <key>CHARACTER_CMD_JUMP</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x01</integer>
-    <key>tooltip</key>
-    <string>Makes the character jump. Requires an additional parameter, the height to jump, between 0.1m and 2.0m. This must be provided as the first element of the llExecCharacterCmd option list.</string>
-   </map>
-   <key>CHARACTER_CMD_SMOOTH_STOP</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>2</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>CHARACTER_CMD_STOP</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x00</integer>
-    <key>tooltip</key>
-    <string>Stops any current pathfinding operation.</string>
-   </map>
-   <key>CHARACTER_DESIRED_SPEED</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1</integer>
-    <key>tooltip</key>
-    <string>Speed of pursuit in meters per second.</string>
-   </map>
-   <key>CHARACTER_DESIRED_TURN_SPEED</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>12</integer>
-    <key>tooltip</key>
-    <string>The character's maximum speed while turning about the Z axis. - Note that this is only loosely enforced.</string>
-   </map>
-   <key>CHARACTER_LENGTH</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>3</integer>
-    <key>tooltip</key>
-    <string>Set collision capsule length - cannot be less than two times the radius.</string>
-   </map>
-   <key>CHARACTER_MAX_ACCEL</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>8</integer>
-    <key>tooltip</key>
-    <string>The character's maximum acceleration rate.</string>
-   </map>
-   <key>CHARACTER_MAX_DECEL</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>9</integer>
-    <key>tooltip</key>
-    <string>The character's maximum deceleration rate.</string>
-   </map>
-   <key>CHARACTER_MAX_SPEED</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>13</integer>
-    <key>tooltip</key>
-    <string>The character's maximum speed.</string>
-   </map>
-   <key>CHARACTER_MAX_TURN_RADIUS</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>10</integer>
-    <key>tooltip</key>
-    <string>The character's turn radius when travelling at CHARACTER_MAX_TURN_SPEED.</string>
-   </map>
-   <key>CHARACTER_ORIENTATION</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>4</integer>
-    <key>tooltip</key>
-    <string>Valid options are: VERTICAL, HORIZONTAL.</string>
-   </map>
-   <key>CHARACTER_RADIUS</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>2</integer>
-    <key>tooltip</key>
-    <string>Set collision capsule radius.</string>
-   </map>
-   <key>CHARACTER_STAY_WITHIN_PARCEL</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>15</integer>
-    <key>tooltip</key>
-    <string>Determines whether a character can leave its starting parcel.\nTakes a boolean parameter. If TRUE, the character cannot voluntarilly leave the parcel, but can return to it.</string>
-   </map>
-   <key>CHARACTER_TYPE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>6</integer>
-    <key>tooltip</key>
-    <string>Specifies which walk-ability coefficient will be used by this character.</string>
-   </map>
-   <key>CHARACTER_TYPE_A</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>CHARACTER_TYPE_B</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>CHARACTER_TYPE_C</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>2</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>CHARACTER_TYPE_D</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>3</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>CHARACTER_TYPE_NONE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>4</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>CLICK_ACTION_BUY</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>2</integer>
-    <key>tooltip</key>
-    <string>When the prim is clicked, the buy dialog is opened.</string>
-   </map>
-   <key>CLICK_ACTION_NONE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0</integer>
-    <key>tooltip</key>
-    <string>Performs the default action: when the prim is clicked, touch events are triggered.</string>
-   </map>
-   <key>CLICK_ACTION_OPEN</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>4</integer>
-    <key>tooltip</key>
-    <string>When the prim is clicked, the object inventory dialog is opened.</string>
-   </map>
-   <key>CLICK_ACTION_OPEN_MEDIA</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>6</integer>
-    <key>tooltip</key>
-    <string>When the prim is touched, the web media dialog is opened.</string>
-   </map>
-   <key>CLICK_ACTION_PAY</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>3</integer>
-    <key>tooltip</key>
-    <string>When the prim is clicked, the pay dialog is opened.</string>
-   </map>
-   <key>CLICK_ACTION_PLAY</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>5</integer>
-    <key>tooltip</key>
-    <string>When the prim is clicked, html-on-a-prim is enabled?</string>
-   </map>
-   <key>CLICK_ACTION_SIT</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1</integer>
-    <key>tooltip</key>
-    <string>When the prim is clicked, the avatar sits upon it.</string>
-   </map>
-   <key>CLICK_ACTION_TOUCH</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0</integer>
-    <key>tooltip</key>
-    <string>When the prim is clicked, touch events are triggered.</string>
-   </map>
-   <key>CONTENT_TYPE_ATOM</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>4</integer>
-    <key>tooltip</key>
-    <string>"application/atom+xml"</string>
-   </map>
-   <key>CONTENT_TYPE_FORM</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>7</integer>
-    <key>tooltip</key>
-    <string>"application/x-www-form-urlencoded"</string>
-   </map>
-   <key>CONTENT_TYPE_HTML</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1</integer>
-    <key>tooltip</key>
-    <string>"text/html", only valid for embedded browsers on content owned by the person viewing. Falls back to "text/plain" otherwise.</string>
-   </map>
-   <key>CONTENT_TYPE_JSON</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>5</integer>
-    <key>tooltip</key>
-    <string>"application/json"</string>
-   </map>
-   <key>CONTENT_TYPE_LLSD</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>6</integer>
-    <key>tooltip</key>
-    <string>"application/llsd+xml"</string>
-   </map>
-   <key>CONTENT_TYPE_RSS</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>8</integer>
-    <key>tooltip</key>
-    <string>"application/rss+xml"</string>
-   </map>
-   <key>CONTENT_TYPE_TEXT</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0</integer>
-    <key>tooltip</key>
-    <string>"text/plain"</string>
-   </map>
-   <key>CONTENT_TYPE_XHTML</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>3</integer>
-    <key>tooltip</key>
-    <string>"application/xhtml+xml"</string>
-   </map>
-   <key>CONTENT_TYPE_XML</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>2</integer>
-    <key>tooltip</key>
-    <string>"application/xml"</string>
-   </map>
-   <key>CONTROL_BACK</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x2</integer>
-    <key>tooltip</key>
-    <string>Test for the avatar move back control.</string>
-   </map>
-   <key>CONTROL_DOWN</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x20</integer>
-    <key>tooltip</key>
-    <string>Test for the avatar move down control.</string>
-   </map>
-   <key>CONTROL_FWD</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x1</integer>
-    <key>tooltip</key>
-    <string>Test for the avatar move forward control.</string>
-   </map>
-   <key>CONTROL_LBUTTON</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x10000000</integer>
-    <key>tooltip</key>
-    <string>Test for the avatar left button control.</string>
-   </map>
-   <key>CONTROL_LEFT</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x4</integer>
-    <key>tooltip</key>
-    <string>Test for the avatar move left control.</string>
-   </map>
-   <key>CONTROL_ML_LBUTTON</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x40000000</integer>
-    <key>tooltip</key>
-    <string>Test for the avatar left button control while in mouse look.</string>
-   </map>
-   <key>CONTROL_RIGHT</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x8</integer>
-    <key>tooltip</key>
-    <string>Test for the avatar move right control.</string>
-   </map>
-   <key>CONTROL_ROT_LEFT</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x100</integer>
-    <key>tooltip</key>
-    <string>Test for the avatar rotate left control.</string>
-   </map>
-   <key>CONTROL_ROT_RIGHT</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x200</integer>
-    <key>tooltip</key>
-    <string>Test for the avatar rotate right control.</string>
-   </map>
-   <key>CONTROL_UP</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x10</integer>
-    <key>tooltip</key>
-    <string>Test for the avatar move up control.</string>
-   </map>
-   <key>DATA_BORN</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>3</integer>
-    <key>tooltip</key>
-    <string>The date the agent was born, returned in ISO 8601 format of YYYY-MM-DD.</string>
-   </map>
-   <key>DATA_NAME</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>2</integer>
-    <key>tooltip</key>
-    <string>The name of the agent.</string>
-   </map>
-   <key>DATA_ONLINE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1</integer>
-    <key>tooltip</key>
-    <string>TRUE for online, FALSE for offline.</string>
-   </map>
-   <key>DATA_PAYINFO</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>8</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>DATA_RATING</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>4</integer>
-    <key>tooltip</key>
-    <string>Returns the agent ratings as a comma separated string of six integers. They are:
-			1) Positive rated behaviour
-			2) Negative rated behaviour
-			3) Positive rated appearance
-			4) Negative rated appearance
-			5) Positive rated building
-			6) Negative rated building</string>
-   </map>
-   <key>DATA_SIM_POS</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>5</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>DATA_SIM_RATING</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>7</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>DATA_SIM_STATUS</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>6</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>DEBUG_CHANNEL</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>2147483647</integer>
-    <key>tooltip</key>
-    <string>DEBUG_CHANNEL is an integer constant that, when passed to llSay, llWhisper, or llShout as a channel parameter, will print text to the Script Warning/Error Window.</string>
-   </map>
-   <key>DEG_TO_RAD</key>
-   <map>
-    <key>type</key>
-    <string>float</string>
-    <key>value</key>
-    <real>0.01745329</real>
-    <key>tooltip</key>
-    <string>0.01745329 - Number of radians per degree.
-			You can use this to convert degrees to radians by multiplying the degrees by this number.</string>
-   </map>
-   <key>DENSITY</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1</integer>
-    <key>tooltip</key>
-    <string>Used with llSetPhysicsMaterial to enable the density value. Must be between 1.0 and 22587.0 (in Kg/m^3 -- see if you can figure out what 22587 represents)</string>
-   </map>
-   <key>EOF</key>
-   <map>
-    <key>type</key>
-    <string>string</string>
-    <key>value</key>
-    <string>\n\n\n</string>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>ERR_GENERIC</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>-1</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>ERR_MALFORMED_PARAMS</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>-3</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>ERR_PARCEL_PERMISSIONS</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>-2</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>ERR_RUNTIME_PERMISSIONS</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>-4</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>ERR_THROTTLED</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>-5</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>ESTATE_ACCESS_ALLOWED_AGENT_ADD</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>4</integer>
-    <key>tooltip</key>
-    <string>Add the agent to this estate's Allowed Residents list.</string>
-   </map>
-   <key>ESTATE_ACCESS_ALLOWED_AGENT_REMOVE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>8</integer>
-    <key>tooltip</key>
-    <string>Remove the agent from this estate's Allowed Residents list.</string>
-   </map>
-   <key>ESTATE_ACCESS_ALLOWED_GROUP_ADD</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>16</integer>
-    <key>tooltip</key>
-    <string>Add the group to this estate's Allowed groups list.</string>
-   </map>
-   <key>ESTATE_ACCESS_ALLOWED_GROUP_REMOVE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>32</integer>
-    <key>tooltip</key>
-    <string>Remove the group from this estate's Allowed groups list.</string>
-   </map>
-   <key>ESTATE_ACCESS_BANNED_AGENT_ADD</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>64</integer>
-    <key>tooltip</key>
-    <string>Add the agent to this estate's Banned residents list.</string>
-   </map>
-   <key>ESTATE_ACCESS_BANNED_AGENT_REMOVE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>128</integer>
-    <key>tooltip</key>
-    <string>Remove the agent from this estate's Banned residents list.</string>
-   </map>
-   <key>FALSE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0</integer>
-    <key>tooltip</key>
-    <string>An integer constant for boolean comparisons. Has the value '0'.</string>
-   </map>
-   <key>FORCE_DIRECT_PATH</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1</integer>
-    <key>tooltip</key>
-    <string>Makes character navigate in a straight line toward position. May be set to TRUE or FALSE.</string>
-   </map>
-   <key>FRICTION</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>2</integer>
-    <key>tooltip</key>
-    <string>Used with llSetPhysicsMaterial to enable the friction value. Must be between 0.0 and 255.0</string>
-   </map>
-   <key>GCNP_RADIUS</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>GCNP_STATIC</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>GRAVITY_MULTIPLIER</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>8</integer>
-    <key>tooltip</key>
-    <string>Used with llSetPhysicsMaterial to enable the gravity multiplier value. Must be between -1.0 and +28.0</string>
-   </map>
-   <key>HORIZONTAL</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>HTTP_BODY_MAXLENGTH</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>2</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>HTTP_BODY_TRUNCATED</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>HTTP_CUSTOM_HEADER</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>5</integer>
-    <key>tooltip</key>
-    <string>Add an extra custom HTTP header to the request. The first string is the name of the parameter to change, e.g. "Pragma", and the second string is the value, e.g. "no-cache". Up to 8 custom headers may be configured per request. Note that certain headers, such as the default headers, are blocked for security reasons.</string>
-   </map>
-   <key>HTTP_METHOD</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>HTTP_MIMETYPE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>HTTP_PRAGMA_NO_CACHE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>6</integer>
-    <key>tooltip</key>
-    <string>Allows enabling/disbling of the "Pragma: no-cache" header.\nUsage: [HTTP_PRAGMA_NO_CACHE, integer SendHeader]. When SendHeader is TRUE, the "Pragma: no-cache" header is sent by the script. This matches the default behavior. When SendHeader is FALSE, no "Pragma" header is sent by the script.</string>
-   </map>
-   <key>HTTP_VERBOSE_THROTTLE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>4</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>HTTP_VERIFY_CERT</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>3</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>INVENTORY_ALL</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>-1</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>INVENTORY_ANIMATION</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>20</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>INVENTORY_BODYPART</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>13</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>INVENTORY_CLOTHING</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>5</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>INVENTORY_GESTURE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>21</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>INVENTORY_LANDMARK</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>3</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>INVENTORY_NONE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>-1</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>INVENTORY_NOTECARD</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>7</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>INVENTORY_OBJECT</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>6</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>INVENTORY_SCRIPT</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>10</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>INVENTORY_SOUND</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>INVENTORY_TEXTURE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>JSON_APPEND</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>-1</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>JSON_ARRAY</key>
-   <map>
-    <key>type</key>
-    <string>string</string>
-    <key>value</key>
-    <string>U+FDD2</string>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>JSON_DELETE</key>
-   <map>
-    <key>type</key>
-    <string>string</string>
-    <key>value</key>
-    <string>U+FDD8</string>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>JSON_FALSE</key>
-   <map>
-    <key>type</key>
-    <string>string</string>
-    <key>value</key>
-    <string>U+FDD7</string>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>JSON_INVALID</key>
-   <map>
-    <key>type</key>
-    <string>string</string>
-    <key>value</key>
-    <string>U+FDD0</string>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>JSON_NULL</key>
-   <map>
-    <key>type</key>
-    <string>string</string>
-    <key>value</key>
-    <string>U+FDD5</string>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>JSON_NUMBER</key>
-   <map>
-    <key>type</key>
-    <string>string</string>
-    <key>value</key>
-    <string>U+FDD3</string>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>JSON_OBJECT</key>
-   <map>
-    <key>type</key>
-    <string>string</string>
-    <key>value</key>
-    <string>U+FDD1</string>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>JSON_STRING</key>
-   <map>
-    <key>type</key>
-    <string>string</string>
-    <key>value</key>
-    <string>U+FDD4</string>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>JSON_TRUE</key>
-   <map>
-    <key>type</key>
-    <string>string</string>
-    <key>value</key>
-    <string>U+FDD6</string>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>KFM_CMD_PAUSE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>2</integer>
-    <key>tooltip</key>
-    <string>For use with KFM_COMMAND.</string>
-   </map>
-   <key>KFM_CMD_PLAY</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0</integer>
-    <key>tooltip</key>
-    <string>For use with KFM_COMMAND.</string>
-   </map>
-   <key>KFM_CMD_SET_MODE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>3</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>KFM_CMD_STOP</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1</integer>
-    <key>tooltip</key>
-    <string>For use with KFM_COMMAND.</string>
-   </map>
-   <key>KFM_COMMAND</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>KFM_DATA</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>2</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>KFM_FORWARD</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0</integer>
-    <key>tooltip</key>
-    <string>For use with KFM_MODE.</string>
-   </map>
-   <key>KFM_LOOP</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1</integer>
-    <key>tooltip</key>
-    <string>For use with KFM_MODE.</string>
-   </map>
-   <key>KFM_MODE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>KFM_PING_PONG</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>2</integer>
-    <key>tooltip</key>
-    <string>For use with KFM_MODE.</string>
-   </map>
-   <key>KFM_REVERSE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>2</integer>
-    <key>tooltip</key>
-    <string>For use with KFM_MODE.</string>
-   </map>
-   <key>KFM_ROTATION</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1</integer>
-    <key>tooltip</key>
-    <string>For use with KFM_DATA.</string>
-   </map>
-   <key>KFM_TRANSLATION</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>2</integer>
-    <key>tooltip</key>
-    <string>For use with KFM_DATA.</string>
-   </map>
-   <key>LAND_LARGE_BRUSH</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>3</integer>
-    <key>tooltip</key>
-    <string>Use a large brush size.\nNOTE: This value is incorrect, a large brush should be 2.</string>
-   </map>
-   <key>LAND_LEVEL</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0</integer>
-    <key>tooltip</key>
-    <string>Action to level the land.</string>
-   </map>
-   <key>LAND_LOWER</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>2</integer>
-    <key>tooltip</key>
-    <string>Action to lower the land.</string>
-   </map>
-   <key>LAND_MEDIUM_BRUSH</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>2</integer>
-    <key>tooltip</key>
-    <string>Use a medium brush size.\nNOTE: This value is incorrect, a medium brush should be 1.</string>
-   </map>
-   <key>LAND_NOISE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>4</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>LAND_RAISE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1</integer>
-    <key>tooltip</key>
-    <string>Action to raise the land.</string>
-   </map>
-   <key>LAND_REVERT</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>5</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>LAND_SMALL_BRUSH</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1</integer>
-    <key>tooltip</key>
-    <string>Use a small brush size.\nNOTE: This value is incorrect, a small brush should be 0.</string>
-   </map>
-   <key>LAND_SMOOTH</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>3</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>LINK_ALL_CHILDREN</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>-3</integer>
-    <key>tooltip</key>
-    <string>This targets every object except the root in the linked set.</string>
-   </map>
-   <key>LINK_ALL_OTHERS</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>-2</integer>
-    <key>tooltip</key>
-    <string>This targets every object in the linked set except the object with the script.</string>
-   </map>
-   <key>LINK_ROOT</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0</integer>
-    <key>tooltip</key>
-    <string>This targets the root of the linked set.</string>
-   </map>
-   <key>LINK_SET</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>-1</integer>
-    <key>tooltip</key>
-    <string>This targets every object in the linked set.</string>
-   </map>
-   <key>LINK_THIS</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>-4</integer>
-    <key>tooltip</key>
-    <string>The link number of the prim containing the script.</string>
-   </map>
-   <key>LIST_STAT_GEOMETRIC_MEAN</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>9</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>LIST_STAT_MAX</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>2</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>LIST_STAT_MEAN</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>3</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>LIST_STAT_MEDIAN</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>4</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>LIST_STAT_MIN</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>LIST_STAT_NUM_COUNT</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>8</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>LIST_STAT_RANGE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>LIST_STAT_STD_DEV</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>5</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>LIST_STAT_SUM</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>6</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>LIST_STAT_SUM_SQUARES</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>7</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>LOOP</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x2</integer>
-    <key>tooltip</key>
-    <string>Loop the texture animation.</string>
-   </map>
-   <key>MASK_BASE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>MASK_EVERYONE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>3</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>MASK_GROUP</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>2</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>MASK_NEXT</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>4</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>MASK_OWNER</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>NULL_KEY</key>
-   <map>
-    <key>type</key>
-    <string>key</string>
-    <key>value</key>
-    <uuid>00000000-0000-0000-0000-000000000000</uuid>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>OBJECT_ATTACHED_POINT</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>19</integer>
-    <key>tooltip</key>
-    <string>Gets the attachment point to which the object is attached.\nReturns 0 if the object is not an attachment (or is an avatar, etc).</string>
-   </map>
-   <key>OBJECT_CHARACTER_TIME</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>17</integer>
-    <key>tooltip</key>
-    <string>Units in seconds</string>
-   </map>
-   <key>OBJECT_CREATOR</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>8</integer>
-    <key>tooltip</key>
-    <string>Gets the object's creator key. If id is an avatar, a NULL_KEY is returned.</string>
-   </map>
-   <key>OBJECT_DESC</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>2</integer>
-    <key>tooltip</key>
-    <string>Gets the object's description. If id is an avatar, an empty string is returned.</string>
-   </map>
-   <key>OBJECT_GROUP</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>7</integer>
-    <key>tooltip</key>
-    <string>Gets the prims's group key. If id is an avatar, a NULL_KEY is returned.</string>
-   </map>
-   <key>OBJECT_NAME</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1</integer>
-    <key>tooltip</key>
-    <string>Gets the object's name.</string>
-   </map>
-   <key>OBJECT_OWNER</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>6</integer>
-    <key>tooltip</key>
-    <string>Gets an object's owner's key. If id is group owned, a NULL_KEY is returned.</string>
-   </map>
-   <key>OBJECT_PATHFINDING_TYPE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>20</integer>
-    <key>tooltip</key>
-    <string>Returns the pathfinding setting of any object in the region. It returns an integer matching one of the OPT_* constants.</string>
-   </map>
-   <key>OBJECT_PHANTOM</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>22</integer>
-    <key>tooltip</key>
-    <string>Returns boolean, detailing if phantom is enabled or disabled on the object.\nIf id is an avatar or attachment, 0 is returned.</string>
-   </map>
-   <key>OBJECT_PHYSICS</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>21</integer>
-    <key>tooltip</key>
-    <string>Returns boolean, detailing if physics is enabled or disabled on the object.\nIf id is an avatar or attachment, 0 is returned.</string>
-   </map>
-   <key>OBJECT_PHYSICS_COST</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>16</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>OBJECT_POS</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>3</integer>
-    <key>tooltip</key>
-    <string>Gets the object's position in region coordinates.</string>
-   </map>
-   <key>OBJECT_PRIM_EQUIVALENCE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>13</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>OBJECT_RENDER_WEIGHT</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>24</integer>
-    <key>tooltip</key>
-    <string>This is a flag used with llGetObjectDetails to get the Avatar_Rendering_Cost of an avatar, based on values reported by nearby viewers.\nIf no data is available, -1 is returned.\nThe maximum render weight stored by the simulator is 500000. When called against an object, 0 is returned.</string>
-   </map>
-   <key>OBJECT_RETURN_PARCEL</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>OBJECT_RETURN_PARCEL_OWNER</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>2</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>OBJECT_RETURN_REGION</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>4</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>OBJECT_ROOT</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>18</integer>
-    <key>tooltip</key>
-    <string>Gets the id of the root prim of the object requested.\nIf id is an avatar, return the id of the root prim of the linkset the avatar is sitting on (or the avatar's own id if the avatar is not sitting on an object within the region).</string>
-   </map>
-   <key>OBJECT_ROT</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>4</integer>
-    <key>tooltip</key>
-    <string>Gets the object's rotation.</string>
-   </map>
-   <key>OBJECT_RUNNING_SCRIPT_COUNT</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>9</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>OBJECT_SCRIPT_MEMORY</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>11</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>OBJECT_SCRIPT_TIME</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>12</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>OBJECT_SERVER_COST</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>14</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>OBJECT_STREAMING_COST</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>15</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>OBJECT_TEMP_ON_REZ</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>23</integer>
-    <key>tooltip</key>
-    <string>Returns boolean, detailing if temporary is enabled or disabled on the object.</string>
-   </map>
-   <key>OBJECT_TOTAL_SCRIPT_COUNT</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>10</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>OBJECT_UNKNOWN_DETAIL</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>-1</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>OBJECT_VELOCITY</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>5</integer>
-    <key>tooltip</key>
-    <string>Gets the object's velocity.</string>
-   </map>
-   <key>OPT_AVATAR</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1</integer>
-    <key>tooltip</key>
-    <string>Returned for avatars.</string>
-   </map>
-   <key>OPT_CHARACTER</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>2</integer>
-    <key>tooltip</key>
-    <string>Returned for pathfinding characters.</string>
-   </map>
-   <key>OPT_EXCLUSION_VOLUME</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>6</integer>
-    <key>tooltip</key>
-    <string>Returned for exclusion volumes.</string>
-   </map>
-   <key>OPT_LEGACY_LINKSET</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0</integer>
-    <key>tooltip</key>
-    <string>Returned for movable obstacles, movable phantoms, physical, and volumedetect objects.</string>
-   </map>
-   <key>OPT_MATERIAL_VOLUME</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>5</integer>
-    <key>tooltip</key>
-    <string>Returned for material volumes.</string>
-   </map>
-   <key>OPT_OTHER</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>-1</integer>
-    <key>tooltip</key>
-    <string>Returned for attachments, Linden trees, and grass.</string>
-   </map>
-   <key>OPT_STATIC_OBSTACLE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>4</integer>
-    <key>tooltip</key>
-    <string>Returned for static obstacles.</string>
-   </map>
-   <key>OPT_WALKABLE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>3</integer>
-    <key>tooltip</key>
-    <string>Returned for walkable objects.</string>
-   </map>
-   <key>PARCEL_COUNT_GROUP</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>2</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PARCEL_COUNT_OTHER</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>3</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PARCEL_COUNT_OWNER</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PARCEL_COUNT_SELECTED</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>4</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PARCEL_COUNT_TEMP</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>5</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PARCEL_COUNT_TOTAL</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PARCEL_DETAILS_AREA</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>4</integer>
-    <key>tooltip</key>
-    <string>The parcel's area, in square meters. (5 chars.).</string>
-   </map>
-   <key>PARCEL_DETAILS_DESC</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1</integer>
-    <key>tooltip</key>
-    <string>The description of the parcel. (127 chars).</string>
-   </map>
-   <key>PARCEL_DETAILS_GROUP</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>3</integer>
-    <key>tooltip</key>
-    <string>The parcel group's key. (36 chars.).</string>
-   </map>
-   <key>PARCEL_DETAILS_ID</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>5</integer>
-    <key>tooltip</key>
-    <string>The parcel's key. (36 chars.).</string>
-   </map>
-   <key>PARCEL_DETAILS_NAME</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0</integer>
-    <key>tooltip</key>
-    <string>The name of the parcel. (63 chars.).</string>
-   </map>
-   <key>PARCEL_DETAILS_OWNER</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>2</integer>
-    <key>tooltip</key>
-    <string>The parcel owner's key. (36 chars.).</string>
-   </map>
-   <key>PARCEL_DETAILS_SEE_AVATARS</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>6</integer>
-    <key>tooltip</key>
-    <string>The parcel's avatar visibility setting. (1 char.).</string>
-   </map>
-   <key>PARCEL_FLAG_ALLOW_ALL_OBJECT_ENTRY</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x08000000</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PARCEL_FLAG_ALLOW_CREATE_GROUP_OBJECTS</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x4000000</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PARCEL_FLAG_ALLOW_CREATE_OBJECTS</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x40</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PARCEL_FLAG_ALLOW_DAMAGE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x20</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PARCEL_FLAG_ALLOW_FLY</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x1</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PARCEL_FLAG_ALLOW_GROUP_OBJECT_ENTRY</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x10000000</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PARCEL_FLAG_ALLOW_GROUP_SCRIPTS</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x2000000</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PARCEL_FLAG_ALLOW_LANDMARK</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x8</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PARCEL_FLAG_ALLOW_SCRIPTS</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x2</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PARCEL_FLAG_ALLOW_TERRAFORM</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x10</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PARCEL_FLAG_LOCAL_SOUND_ONLY</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x8000</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PARCEL_FLAG_RESTRICT_PUSHOBJECT</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x200000</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PARCEL_FLAG_USE_ACCESS_GROUP</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x100</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PARCEL_FLAG_USE_ACCESS_LIST</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x200</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PARCEL_FLAG_USE_BAN_LIST</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x400</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PARCEL_FLAG_USE_LAND_PASS_LIST</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x800</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PARCEL_MEDIA_COMMAND_AGENT</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>7</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PARCEL_MEDIA_COMMAND_AUTO_ALIGN</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>9</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PARCEL_MEDIA_COMMAND_DESC</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>12</integer>
-    <key>tooltip</key>
-    <string>Use this to get or set the parcel media description.</string>
-   </map>
-   <key>PARCEL_MEDIA_COMMAND_LOOP</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>3</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PARCEL_MEDIA_COMMAND_LOOP_SET</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>13</integer>
-    <key>tooltip</key>
-    <string>Used to get or set the parcel's media looping variable.</string>
-   </map>
-   <key>PARCEL_MEDIA_COMMAND_PAUSE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PARCEL_MEDIA_COMMAND_PLAY</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>2</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PARCEL_MEDIA_COMMAND_SIZE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>11</integer>
-    <key>tooltip</key>
-    <string>Use this to get or set the parcel media pixel resolution.</string>
-   </map>
-   <key>PARCEL_MEDIA_COMMAND_STOP</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PARCEL_MEDIA_COMMAND_TEXTURE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>4</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PARCEL_MEDIA_COMMAND_TIME</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>6</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PARCEL_MEDIA_COMMAND_TYPE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>10</integer>
-    <key>tooltip</key>
-    <string>Use this to get or set the parcel media MIME type (e.g. "text/html").</string>
-   </map>
-   <key>PARCEL_MEDIA_COMMAND_UNLOAD</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>8</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PARCEL_MEDIA_COMMAND_URL</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>5</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PASSIVE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x4</integer>
-    <key>tooltip</key>
-    <string>Static in-world objects.</string>
-   </map>
-   <key>PATROL_PAUSE_AT_WAYPOINTS</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PAY_DEFAULT</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>-2</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PAY_HIDE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>-1</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PAYMENT_INFO_ON_FILE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PAYMENT_INFO_USED</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>2</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PERM_ALL</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x7FFFFFFF</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PERM_COPY</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x8000</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PERM_MODIFY</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x4000</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PERM_MOVE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x80000</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PERM_TRANSFER</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x2000</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PERMISSION_ATTACH</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x20</integer>
-    <key>tooltip</key>
-    <string>If this permission is enabled, the object can successfully call llAttachToAvatar to attach to the given avatar.</string>
-   </map>
-   <key>PERMISSION_CHANGE_JOINTS</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x100</integer>
-    <key>tooltip</key>
-    <string>(not yet implemented)</string>
-   </map>
-   <key>PERMISSION_CHANGE_LINKS</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x80</integer>
-    <key>tooltip</key>
-    <string>If this permission is enabled, the object can successfully call llCreateLink, llBreakLink, and llBreakAllLinks to change links to other objects.</string>
-   </map>
-   <key>PERMISSION_CHANGE_PERMISSIONS</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x200</integer>
-    <key>tooltip</key>
-    <string>(not yet implemented)</string>
-   </map>
-   <key>PERMISSION_CONTROL_CAMERA</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x800</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PERMISSION_DEBIT</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x2</integer>
-    <key>tooltip</key>
-    <string>If this permission is enabled, the object can successfully call llGiveMoney or llTransferLindenDollars to debit the owners account.</string>
-   </map>
-   <key>PERMISSION_OVERRIDE_ANIMATIONS</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x8000</integer>
-    <key>tooltip</key>
-    <string>Permission to override default animations.</string>
-   </map>
-   <key>PERMISSION_RELEASE_OWNERSHIP</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x40</integer>
-    <key>tooltip</key>
-    <string>(not yet implemented)</string>
-   </map>
-   <key>PERMISSION_REMAP_CONTROLS</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x8</integer>
-    <key>tooltip</key>
-    <string>(not yet implemented)</string>
-   </map>
-   <key>PERMISSION_RETURN_OBJECTS</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>65536</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PERMISSION_SILENT_ESTATE_MANAGEMENT</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x4000</integer>
-    <key>tooltip</key>
-    <string>A script with this permission does not notify the object owner when it modifies estate access rules via llManageEstateAccess.</string>
-   </map>
-   <key>PERMISSION_TAKE_CONTROLS</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x4</integer>
-    <key>tooltip</key>
-    <string>If this permission enabled, the object can successfully call the llTakeControls libray call.</string>
-   </map>
-   <key>PERMISSION_TELEPORT</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x1000</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PERMISSION_TRACK_CAMERA</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x400</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PERMISSION_TRIGGER_ANIMATION</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x10</integer>
-    <key>tooltip</key>
-    <string>If this permission is enabled, the object can successfully call llStartAnimation for the avatar that owns this.</string>
-   </map>
-   <key>PI</key>
-   <map>
-    <key>type</key>
-    <string>float</string>
-    <key>value</key>
-    <real>3.14159265</real>
-    <key>tooltip</key>
-    <string>3.14159265 - The number of radians in a semi-circle.</string>
-   </map>
-   <key>PI_BY_TWO</key>
-   <map>
-    <key>type</key>
-    <string>float</string>
-    <key>value</key>
-    <real>1.57079633</real>
-    <key>tooltip</key>
-    <string>1.57079633 - The number of radians in a quarter circle.</string>
-   </map>
-   <key>PING_PONG</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x8</integer>
-    <key>tooltip</key>
-    <string>Play animation going forwards, then backwards.</string>
-   </map>
-   <key>PRIM_BUMP_BARK</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>4</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_BUMP_BLOBS</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>12</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_BUMP_BRICKS</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>5</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_BUMP_BRIGHT</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_BUMP_CHECKER</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>6</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_BUMP_CONCRETE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>7</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_BUMP_DARK</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>2</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_BUMP_DISKS</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>10</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_BUMP_GRAVEL</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>11</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_BUMP_LARGETILE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>14</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_BUMP_NONE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_BUMP_SHINY</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>19</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_BUMP_SIDING</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>13</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_BUMP_STONE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>9</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_BUMP_STUCCO</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>15</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_BUMP_SUCTION</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>16</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_BUMP_TILE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>8</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_BUMP_WEAVE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>17</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_BUMP_WOOD</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>3</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_CAST_SHADOWS</key>
-   <map>
-    <key>deprecated</key>
-    <boolean>true</boolean>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>24</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_COLOR</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>18</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_DESC</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>28</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_FLEXIBLE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>21</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_FULLBRIGHT</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>20</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_GLOW</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>25</integer>
-    <key>tooltip</key>
-    <string>PRIM_GLOW is used to get or set the glow status of the face.</string>
-   </map>
-   <key>PRIM_HOLE_CIRCLE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x10</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_HOLE_DEFAULT</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x00</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_HOLE_SQUARE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x20</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_HOLE_TRIANGLE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x30</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_LINK_TARGET</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>34</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_MATERIAL</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>2</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_MATERIAL_FLESH</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>4</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_MATERIAL_GLASS</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>2</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_MATERIAL_LIGHT</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>7</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_MATERIAL_METAL</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_MATERIAL_PLASTIC</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>5</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_MATERIAL_RUBBER</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>6</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_MATERIAL_STONE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_MATERIAL_WOOD</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>3</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_MEDIA_ALT_IMAGE_ENABLE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0</integer>
-    <key>tooltip</key>
-    <string>Boolean. Gets/Sets the default image state (the image that the user sees before a piece of media is active) for the chosen face. The default image is specified by Second Life's server for that media type.</string>
-   </map>
-   <key>PRIM_MEDIA_AUTO_LOOP</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>4</integer>
-    <key>tooltip</key>
-    <string>Boolean. Gets/Sets whether auto-looping is enabled.</string>
-   </map>
-   <key>PRIM_MEDIA_AUTO_PLAY</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>5</integer>
-    <key>tooltip</key>
-    <string>Boolean. Gets/Sets whether the media auto-plays when a Resident can view it.</string>
-   </map>
-   <key>PRIM_MEDIA_AUTO_SCALE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>6</integer>
-    <key>tooltip</key>
-    <string>Boolean. Gets/Sets whether auto-scaling is enabled. Auto-scaling forces the media to the full size of the texture.</string>
-   </map>
-   <key>PRIM_MEDIA_AUTO_ZOOM</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>7</integer>
-    <key>tooltip</key>
-    <string>Boolean. Gets/Sets whether clicking the media triggers auto-zoom and auto-focus on the media.</string>
-   </map>
-   <key>PRIM_MEDIA_CONTROLS</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1</integer>
-    <key>tooltip</key>
-    <string>Integer. Gets/Sets the style of controls. Can be either PRIM_MEDIA_CONTROLS_STANDARD or PRIM_MEDIA_CONTROLS_MINI.</string>
-   </map>
-   <key>PRIM_MEDIA_CONTROLS_MINI</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1</integer>
-    <key>tooltip</key>
-    <string>Mini web navigation controls; does not include an address bar.</string>
-   </map>
-   <key>PRIM_MEDIA_CONTROLS_STANDARD</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0</integer>
-    <key>tooltip</key>
-    <string>Standard web navigation controls.</string>
-   </map>
-   <key>PRIM_MEDIA_CURRENT_URL</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>2</integer>
-    <key>tooltip</key>
-    <string>String. Gets/Sets the current url displayed on the chosen face. Changing this URL causes navigation. 1024 characters Maximum.</string>
-   </map>
-   <key>PRIM_MEDIA_FIRST_CLICK_INTERACT</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>8</integer>
-    <key>tooltip</key>
-    <string>Boolean. Gets/Sets whether the first click interaction is enabled.</string>
-   </map>
-   <key>PRIM_MEDIA_HEIGHT_PIXELS</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>10</integer>
-    <key>tooltip</key>
-    <string>Integer. Gets/Sets the height of the media in pixels.</string>
-   </map>
-   <key>PRIM_MEDIA_HOME_URL</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>3</integer>
-    <key>tooltip</key>
-    <string>String. Gets/Sets the home URL for the chosen face. 1024 characters maximum.</string>
-   </map>
-   <key>PRIM_MEDIA_MAX_HEIGHT_PIXELS</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>2048</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_MEDIA_MAX_URL_LENGTH</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1024</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_MEDIA_MAX_WHITELIST_COUNT</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>64</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_MEDIA_MAX_WHITELIST_SIZE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1024</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_MEDIA_MAX_WIDTH_PIXELS</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>2048</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_MEDIA_PARAM_MAX</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>14</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_MEDIA_PERM_ANYONE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>4</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_MEDIA_PERM_GROUP</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>2</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_MEDIA_PERM_NONE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_MEDIA_PERM_OWNER</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_MEDIA_PERMS_CONTROL</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>14</integer>
-    <key>tooltip</key>
-    <string>Integer. Gets/Sets the permissions mask that control who can see the media control bar above the object:: PRIM_MEDIA_PERM_ANYONE, PRIM_MEDIA_PERM_GROUP, PRIM_MEDIA_PERM_NONE, PRIM_MEDIA_PERM_OWNER</string>
-   </map>
-   <key>PRIM_MEDIA_PERMS_INTERACT</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>13</integer>
-    <key>tooltip</key>
-    <string>Integer. Gets/Sets the permissions mask that control who can interact with the object: PRIM_MEDIA_PERM_ANYONE, PRIM_MEDIA_PERM_GROUP, PRIM_MEDIA_PERM_NONE, PRIM_MEDIA_PERM_OWNER</string>
-   </map>
-   <key>PRIM_MEDIA_WHITELIST</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>12</integer>
-    <key>tooltip</key>
-    <string>String. Gets/Sets the white-list as a string of escaped, comma-separated URLs. This string can hold up to 64 URLs or 1024 characters, whichever comes first.</string>
-   </map>
-   <key>PRIM_MEDIA_WHITELIST_ENABLE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>11</integer>
-    <key>tooltip</key>
-    <string>Boolean. Gets/Sets whether navigation is restricted to URLs in PRIM_MEDIA_WHITELIST.</string>
-   </map>
-   <key>PRIM_MEDIA_WIDTH_PIXELS</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>9</integer>
-    <key>tooltip</key>
-    <string>Integer. Gets/Sets the width of the media in pixels.</string>
-   </map>
-   <key>PRIM_NAME</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>27</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_OMEGA</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>32</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_PHANTOM</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>5</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_PHYSICS</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>3</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_PHYSICS_SHAPE_CONVEX</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>2</integer>
-    <key>tooltip</key>
-    <string>Use the convex hull of the prim shape for physics (this is the default for mesh objects).</string>
-   </map>
-   <key>PRIM_PHYSICS_SHAPE_NONE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1</integer>
-    <key>tooltip</key>
-    <string>Ignore this prim in the physics shape. NB: This cannot be applied to the root prim.</string>
-   </map>
-   <key>PRIM_PHYSICS_SHAPE_PRIM</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0</integer>
-    <key>tooltip</key>
-    <string>Use the normal prim shape for physics (this is the default for all non-mesh objects).</string>
-   </map>
-   <key>PRIM_PHYSICS_SHAPE_TYPE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>30</integer>
-    <key>tooltip</key>
-    <string>Allows you to set the physics shape type of a prim via lsl. Permitted values are:
-			PRIM_PHYSICS_SHAPE_NONE, PRIM_PHYSICS_SHAPE_PRIM, PRIM_PHYSICS_SHAPE_CONVEX</string>
-   </map>
-   <key>PRIM_POINT_LIGHT</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>23</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_POS_LOCAL</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>33</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_POSITION</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>6</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_ROT_LOCAL</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>29</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_ROTATION</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>8</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_SCULPT_FLAG_INVERT</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>64</integer>
-    <key>tooltip</key>
-    <string>Render inside out (inverts the normals).</string>
-   </map>
-   <key>PRIM_SCULPT_FLAG_MIRROR</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>128</integer>
-    <key>tooltip</key>
-    <string>Render an X axis mirror of the sculpty.</string>
-   </map>
-   <key>PRIM_SCULPT_TYPE_CYLINDER</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>4</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_SCULPT_TYPE_MASK</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>7</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_SCULPT_TYPE_PLANE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>3</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_SCULPT_TYPE_SPHERE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_SCULPT_TYPE_TORUS</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>2</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_SHINY_HIGH</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>3</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_SHINY_LOW</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_SHINY_MEDIUM</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>2</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_SHINY_NONE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_SIZE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>7</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_SLICE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>35</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_TEMP_ON_REZ</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>4</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_TEXGEN</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>22</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_TEXGEN_DEFAULT</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_TEXGEN_PLANAR</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_TEXT</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>26</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_TEXTURE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>17</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_TYPE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>9</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_TYPE_BOX</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_TYPE_CYLINDER</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_TYPE_PRISM</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>2</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_TYPE_RING</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>6</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_TYPE_SCULPT</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>7</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_TYPE_SPHERE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>3</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_TYPE_TORUS</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>4</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PRIM_TYPE_TUBE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>5</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PROFILE_NONE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0</integer>
-    <key>tooltip</key>
-    <string>Disables profiling</string>
-   </map>
-   <key>PROFILE_SCRIPT_MEMORY</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1</integer>
-    <key>tooltip</key>
-    <string>Enables memory profiling</string>
-   </map>
-   <key>PSYS_PART_BF_DEST_COLOR</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>2</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PSYS_PART_BF_ONE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PSYS_PART_BF_ONE_MINUS_DEST_COLOR</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>4</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PSYS_PART_BF_SOURCE_ALPHA</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>7</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PSYS_PART_BF_SOURCE_COLOR</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>3</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PSYS_PART_BF_ZERO</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PSYS_PART_BLEND_FUNC_DEST</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>25</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PSYS_PART_BLEND_FUNC_SOURCE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>24</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PSYS_PART_BOUNCE_MASK</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x4</integer>
-    <key>tooltip</key>
-    <string>Particles bounce off of a plane at the objects Z height.</string>
-   </map>
-   <key>PSYS_PART_EMISSIVE_MASK</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x100</integer>
-    <key>tooltip</key>
-    <string>The particle glows.</string>
-   </map>
-   <key>PSYS_PART_END_ALPHA</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>4</integer>
-    <key>tooltip</key>
-    <string>A float which determines the ending alpha of the object.</string>
-   </map>
-   <key>PSYS_PART_END_COLOR</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>3</integer>
-    <key>tooltip</key>
-    <string>A vector &lt;r, g, b&gt; which determines the ending colour of the object.</string>
-   </map>
-   <key>PSYS_PART_END_GLOW</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>27</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PSYS_PART_END_SCALE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>6</integer>
-    <key>tooltip</key>
-    <string>A vector &lt;sx, sy, z&gt;, which is the ending size of the particle billboard in meters (z is ignored).</string>
-   </map>
-   <key>PSYS_PART_FLAGS</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0</integer>
-    <key>tooltip</key>
-    <string>Each particle that is emitted by the particle system is simulated based on the following flags. To use multiple flags, bitwise or (|) them together.</string>
-   </map>
-   <key>PSYS_PART_FOLLOW_SRC_MASK</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x10</integer>
-    <key>tooltip</key>
-    <string>The particle position is relative to the source objects position.</string>
-   </map>
-   <key>PSYS_PART_FOLLOW_VELOCITY_MASK</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x20</integer>
-    <key>tooltip</key>
-    <string>The particle orientation is rotated so the vertical axis faces towards the particle velocity.</string>
-   </map>
-   <key>PSYS_PART_INTERP_COLOR_MASK</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x1</integer>
-    <key>tooltip</key>
-    <string>Interpolate both the colour and alpha from the start value to the end value.</string>
-   </map>
-   <key>PSYS_PART_INTERP_SCALE_MASK</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x2</integer>
-    <key>tooltip</key>
-    <string>Interpolate the particle scale from the start value to the end value.</string>
-   </map>
-   <key>PSYS_PART_MAX_AGE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>19</integer>
-    <key>tooltip</key>
-    <string>Age in seconds of a particle at which it dies.</string>
-   </map>
-   <key>PSYS_PART_RIBBON_MASK</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1024</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PSYS_PART_START_ALPHA</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>2</integer>
-    <key>tooltip</key>
-    <string>A float which determines the starting alpha of the object.</string>
-   </map>
-   <key>PSYS_PART_START_COLOR</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1</integer>
-    <key>tooltip</key>
-    <string>A vector &lt;r.r, g.g, b.b&gt; which determines the starting colour of the object.</string>
-   </map>
-   <key>PSYS_PART_START_GLOW</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>26</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PSYS_PART_START_SCALE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>5</integer>
-    <key>tooltip</key>
-    <string>A vector &lt;sx, sy, z&gt;, which is the starting size of the particle billboard in meters (z is ignored).</string>
-   </map>
-   <key>PSYS_PART_TARGET_LINEAR_MASK</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x80</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PSYS_PART_TARGET_POS_MASK</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x40</integer>
-    <key>tooltip</key>
-    <string>The particle heads towards the location of the target object as defined by PSYS_SRC_TARGET_KEY.</string>
-   </map>
-   <key>PSYS_PART_WIND_MASK</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x8</integer>
-    <key>tooltip</key>
-    <string>Particles have their velocity damped towards the wind velocity.</string>
-   </map>
-   <key>PSYS_SRC_ACCEL</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>8</integer>
-    <key>tooltip</key>
-    <string>A vector &lt;x, y, z&gt; which is the acceleration to apply on particles.</string>
-   </map>
-   <key>PSYS_SRC_ANGLE_BEGIN</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>22</integer>
-    <key>tooltip</key>
-    <string>Area in radians specifying where particles will NOT be created (for ANGLE patterns)</string>
-   </map>
-   <key>PSYS_SRC_ANGLE_END</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>23</integer>
-    <key>tooltip</key>
-    <string>Area in radians filled with particles (for ANGLE patterns) (if lower than PSYS_SRC_ANGLE_BEGIN, acts as PSYS_SRC_ANGLE_BEGIN itself, and PSYS_SRC_ANGLE_BEGIN acts as PSYS_SRC_ANGLE_END).</string>
-   </map>
-   <key>PSYS_SRC_BURST_PART_COUNT</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>15</integer>
-    <key>tooltip</key>
-    <string>How many particles to release in a burst.</string>
-   </map>
-   <key>PSYS_SRC_BURST_RADIUS</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>16</integer>
-    <key>tooltip</key>
-    <string>What distance from the center of the object to create the particles.</string>
-   </map>
-   <key>PSYS_SRC_BURST_RATE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>13</integer>
-    <key>tooltip</key>
-    <string>How often to release a particle burst (float seconds).</string>
-   </map>
-   <key>PSYS_SRC_BURST_SPEED_MAX</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>18</integer>
-    <key>tooltip</key>
-    <string>Maximum speed that a particle should be moving.</string>
-   </map>
-   <key>PSYS_SRC_BURST_SPEED_MIN</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>17</integer>
-    <key>tooltip</key>
-    <string>Minimum speed that a particle should be moving.</string>
-   </map>
-   <key>PSYS_SRC_INNERANGLE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>10</integer>
-    <key>tooltip</key>
-    <string>Specifies the inner angle of the arc created by the PSYS_SRC_PATTERN_ANGLE or PSYS_SRC_PATTERN_ANGLE_CONE source pattern.
-			The area specified will NOT have particles in it.</string>
-   </map>
-   <key>PSYS_SRC_MAX_AGE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>19</integer>
-    <key>tooltip</key>
-    <string>How long this particle system should last, 0.0 means forever.</string>
-   </map>
-   <key>PSYS_SRC_OMEGA</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>21</integer>
-    <key>tooltip</key>
-    <string>Sets the angular velocity to rotate the axis that SRC_PATTERN_ANGLE and SRC_PATTERN_ANGLE_CONE use.</string>
-   </map>
-   <key>PSYS_SRC_OUTERANGLE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>11</integer>
-    <key>tooltip</key>
-    <string>Specifies the outer angle of the arc created by the PSYS_SRC_PATTERN_ANGLE or PSYS_SRC_PATTERN_ANGLE_CONE source pattern.
-			The area between the outer and inner angle will be filled with particles.</string>
-   </map>
-   <key>PSYS_SRC_PATTERN</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>9</integer>
-    <key>tooltip</key>
-    <string>The pattern which is used to generate particles.
-			Use one of the following values: PSYS_SRC_PATTERN Values.</string>
-   </map>
-   <key>PSYS_SRC_PATTERN_ANGLE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x04</integer>
-    <key>tooltip</key>
-    <string>Shoot particles across a 2 dimensional area defined by the arc created from PSYS_SRC_OUTERANGLE. There will be an open area defined by PSYS_SRC_INNERANGLE within the larger arc.</string>
-   </map>
-   <key>PSYS_SRC_PATTERN_ANGLE_CONE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x08</integer>
-    <key>tooltip</key>
-    <string>Shoot particles out in a 3 dimensional cone with an outer arc of PSYS_SRC_OUTERANGLE and an inner open area defined by PSYS_SRC_INNERANGLE.</string>
-   </map>
-   <key>PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x10</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PSYS_SRC_PATTERN_DROP</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x01</integer>
-    <key>tooltip</key>
-    <string>Drop particles at the source position.</string>
-   </map>
-   <key>PSYS_SRC_PATTERN_EXPLODE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x02</integer>
-    <key>tooltip</key>
-    <string>Shoot particles out in all directions, using the burst parameters.</string>
-   </map>
-   <key>PSYS_SRC_TARGET_KEY</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>20</integer>
-    <key>tooltip</key>
-    <string>The key of a target object to move towards if PSYS_PART_TARGET_POS_MASK is enabled.</string>
-   </map>
-   <key>PSYS_SRC_TEXTURE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>12</integer>
-    <key>tooltip</key>
-    <string>An asset name for the texture to use for the particles.</string>
-   </map>
-   <key>PU_EVADE_HIDDEN</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x07</integer>
-    <key>tooltip</key>
-    <string>Triggered when an llEvade character thinks it has hidden from its pursuer.</string>
-   </map>
-   <key>PU_EVADE_SPOTTED</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x08</integer>
-    <key>tooltip</key>
-    <string>Triggered when an llEvade character switches from hiding to running</string>
-   </map>
-   <key>PU_FAILURE_DYNAMIC_PATHFINDING_DISABLED</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>10</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PU_FAILURE_INVALID_GOAL</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x03</integer>
-    <key>tooltip</key>
-    <string>Goal is not on the navigation-mesh and cannot be reached.</string>
-   </map>
-   <key>PU_FAILURE_INVALID_START</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x02</integer>
-    <key>tooltip</key>
-    <string>Character cannot navigate from the current location - e.g., the character is off the navmesh or too high above it.</string>
-   </map>
-   <key>PU_FAILURE_NO_NAVMESH</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x09</integer>
-    <key>tooltip</key>
-    <string>This is a fatal error reported to a character when there is no navmesh for the region. This usually indicates a server failure and users should file a bug report and include the time and region in which they received this message.</string>
-   </map>
-   <key>PU_FAILURE_NO_VALID_DESTINATION</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x06</integer>
-    <key>tooltip</key>
-    <string>There is no good place for the character to go - e.g., it is patrolling and all the patrol points are now unreachable.</string>
-   </map>
-   <key>PU_FAILURE_OTHER</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1000000</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PU_FAILURE_PARCEL_UNREACHABLE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>11</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PU_FAILURE_TARGET_GONE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x05</integer>
-    <key>tooltip</key>
-    <string>Target (for llPursue or llEvade) can no longer be tracked - e.g., it left the region or is an avatar that is now more than about 30m outside the region.</string>
-   </map>
-   <key>PU_FAILURE_UNREACHABLE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x04</integer>
-    <key>tooltip</key>
-    <string>Goal is no longer reachable for some reason - e.g., an obstacle blocks the path.</string>
-   </map>
-   <key>PU_GOAL_REACHED</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x01</integer>
-    <key>tooltip</key>
-    <string>Character has reached the goal and will stop or choose a new goal (if wandering).</string>
-   </map>
-   <key>PU_SLOWDOWN_DISTANCE_REACHED</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x00</integer>
-    <key>tooltip</key>
-    <string>Character is near current goal.</string>
-   </map>
-   <key>PUBLIC_CHANNEL</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0</integer>
-    <key>tooltip</key>
-    <string>PUBLIC_CHANNEL is an integer constant that, when passed to llSay, llWhisper, or llShout as a channel parameter, will print text to the publicly heard chat channel.</string>
-   </map>
-   <key>PURSUIT_FUZZ_FACTOR</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>3</integer>
-    <key>tooltip</key>
-    <string>Selects a random destination near the offset.</string>
-   </map>
-   <key>PURSUIT_GOAL_TOLERANCE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>5</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>PURSUIT_INTERCEPT</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>4</integer>
-    <key>tooltip</key>
-    <string>Define whether the character attempts to predict the target's location.</string>
-   </map>
-   <key>PURSUIT_OFFSET</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1</integer>
-    <key>tooltip</key>
-    <string>Go to a position offset from the target.</string>
-   </map>
-   <key>RAD_TO_DEG</key>
-   <map>
-    <key>type</key>
-    <string>float</string>
-    <key>value</key>
-    <real>57.2957795</real>
-    <key>tooltip</key>
-    <string>57.2957795 - Number of degrees per radian. You can use this number to convert radians to degrees by multiplying the radians by this number.</string>
-   </map>
-   <key>RC_DATA_FLAGS</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>2</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>RC_DETECT_PHANTOM</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>RC_GET_LINK_NUM</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>4</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>RC_GET_NORMAL</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>RC_GET_ROOT_KEY</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>2</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>RC_MAX_HITS</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>3</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>RC_REJECT_AGENTS</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>RC_REJECT_LAND</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>8</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>RC_REJECT_NONPHYSICAL</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>4</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>RC_REJECT_PHYSICAL</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>2</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>RC_REJECT_TYPES</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>2</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>RCERR_CAST_TIME_EXCEEDED</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>-3</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>RCERR_SIM_PERF_LOW</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>-2</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>RCERR_UNKNOWN</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>-1</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>REGION_FLAG_ALLOW_DAMAGE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x1</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>REGION_FLAG_ALLOW_DIRECT_TELEPORT</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x100000</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>REGION_FLAG_BLOCK_FLY</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x80000</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>REGION_FLAG_BLOCK_TERRAFORM</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x40</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>REGION_FLAG_DISABLE_COLLISIONS</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x1000</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>REGION_FLAG_DISABLE_PHYSICS</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x4000</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>REGION_FLAG_FIXED_SUN</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x10</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>REGION_FLAG_RESTRICT_PUSHOBJECT</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x400000</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>REGION_FLAG_SANDBOX</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x100</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>REMOTE_DATA_CHANNEL</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>REMOTE_DATA_REPLY</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>3</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>REMOTE_DATA_REQUEST</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>2</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>REQUIRE_LINE_OF_SIGHT</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>2</integer>
-    <key>tooltip</key>
-    <string>Define whether the character needs a line-of-sight to give chase.</string>
-   </map>
-   <key>RESTITUTION</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>4</integer>
-    <key>tooltip</key>
-    <string>Used with llSetPhysicsMaterial to enable the density value. Must be between 0.0 and 1.0</string>
-   </map>
-   <key>REVERSE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x4</integer>
-    <key>tooltip</key>
-    <string>Play animation in reverse direction.</string>
-   </map>
-   <key>ROTATE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x20</integer>
-    <key>tooltip</key>
-    <string>Animate texture rotation.</string>
-   </map>
-   <key>SCALE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x40</integer>
-    <key>tooltip</key>
-    <string>Animate the texture scale.</string>
-   </map>
-   <key>SCRIPTED</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x8</integer>
-    <key>tooltip</key>
-    <string>Scripted in-world objects.</string>
-   </map>
-   <key>SIM_STAT_PCT_CHARS_STEPPED</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0</integer>
-    <key>tooltip</key>
-    <string>Returns the % of pathfinding characters skipped each frame, averaged over the last minute.\nThe returned value corresponds to the "Characters Updated" stat in the viewer's Statistics Bar.</string>
-   </map>
-   <key>SMOOTH</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x10</integer>
-    <key>tooltip</key>
-    <string>Slide in the X direction, instead of playing separate frames.</string>
-   </map>
-   <key>SQRT2</key>
-   <map>
-    <key>type</key>
-    <string>float</string>
-    <key>value</key>
-    <real>1.41421356</real>
-    <key>tooltip</key>
-    <string>1.41421356 - The square root of 2.</string>
-   </map>
-   <key>STATUS_BLOCK_GRAB</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>64</integer>
-    <key>tooltip</key>
-    <string>Controls whether the object can be grabbed.\nA grab is the default action when in third person, and is available as the hand tool in build mode. This is useful for physical objects that you don't want other people to be able to trivially disturb. The default is FALSE</string>
-   </map>
-   <key>STATUS_BLOCK_GRAB_OBJECT</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1024</integer>
-    <key>tooltip</key>
-    <string>Prevent click-and-drag movement on all prims in the object.</string>
-   </map>
-   <key>STATUS_BOUNDS_ERROR</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1002</integer>
-    <key>tooltip</key>
-    <string>Argument(s) passed to function had a bounds error.</string>
-   </map>
-   <key>STATUS_CAST_SHADOWS</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x200</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>STATUS_DIE_AT_EDGE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x80</integer>
-    <key>tooltip</key>
-    <string>Controls whether the object is returned to the owners inventory if it wanders off the edge of the world.\nIt is useful to set this status TRUE for things like bullets or rockets. The default is TRUE</string>
-   </map>
-   <key>STATUS_INTERNAL_ERROR</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1999</integer>
-    <key>tooltip</key>
-    <string>An internal error occurred.</string>
-   </map>
-   <key>STATUS_MALFORMED_PARAMS</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1000</integer>
-    <key>tooltip</key>
-    <string>Function was called with malformed parameters.</string>
-   </map>
-   <key>STATUS_NOT_FOUND</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1003</integer>
-    <key>tooltip</key>
-    <string>Object or other item was not found.</string>
-   </map>
-   <key>STATUS_NOT_SUPPORTED</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1004</integer>
-    <key>tooltip</key>
-    <string>Feature not supported.</string>
-   </map>
-   <key>STATUS_OK</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0</integer>
-    <key>tooltip</key>
-    <string>Result of function call was a success.</string>
-   </map>
-   <key>STATUS_PHANTOM</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x10</integer>
-    <key>tooltip</key>
-    <string>Controls/indicates whether the object collides or not.\nSetting the value to TRUE makes the object non-colliding with all objects. It is a good idea to use this for most objects that move or rotate, but are non-physical. It is also useful for simulating volumetric lighting. The default is FALSE.</string>
-   </map>
-   <key>STATUS_PHYSICS</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x1</integer>
-    <key>tooltip</key>
-    <string>Controls/indicates whether the object moves physically.\nThis controls the same flag that the UI check-box for Physical controls. The default is FALSE.</string>
-   </map>
-   <key>STATUS_RETURN_AT_EDGE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x100</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>STATUS_ROTATE_X</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x2</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>STATUS_ROTATE_Y</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x4</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>STATUS_ROTATE_Z</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x8</integer>
-    <key>tooltip</key>
-    <string>Controls/indicates whether the object can physically rotate around
-			the specific axis or not. This flag has no meaning
-			for non-physical objects. Set the value to FALSE
-			if you want to disable rotation around that axis. The
-			default is TRUE for a physical object.
-			A useful example to think about when visualizing
-			the effect is a sit-and-spin device. They spin around the
-			Z axis (up) but not around the X or Y axis.</string>
-   </map>
-   <key>STATUS_SANDBOX</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x20</integer>
-    <key>tooltip</key>
-    <string>Controls/indicates whether the object can cross region boundaries
-			and move more than 20 meters from its creation
-			point. The default if FALSE.</string>
-   </map>
-   <key>STATUS_TYPE_MISMATCH</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1001</integer>
-    <key>tooltip</key>
-    <string>Argument(s) passed to function had a type mismatch.</string>
-   </map>
-   <key>STATUS_WHITELIST_FAILED</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>2001</integer>
-    <key>tooltip</key>
-    <string>Whitelist Failed.</string>
-   </map>
-   <key>STRING_TRIM</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x03</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>STRING_TRIM_HEAD</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x01</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>STRING_TRIM_TAIL</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x02</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>TEXTURE_BLANK</key>
-   <map>
-    <key>type</key>
-    <string>key</string>
-    <key>value</key>
-    <uuid>5748decc-f629-461c-9a36-a35a221fe21f</uuid>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>TEXTURE_DEFAULT</key>
-   <map>
-    <key>type</key>
-    <string>key</string>
-    <key>value</key>
-    <uuid>89556747-24cb-43ed-920b-47caed15465f</uuid>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>TEXTURE_MEDIA</key>
-   <map>
-    <key>type</key>
-    <string>key</string>
-    <key>value</key>
-    <uuid>8b5fec65-8d8d-9dc5-cda8-8fdf2716e361</uuid>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>TEXTURE_PLYWOOD</key>
-   <map>
-    <key>type</key>
-    <string>key</string>
-    <key>value</key>
-    <uuid>89556747-24cb-43ed-920b-47caed15465f</uuid>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>TEXTURE_TRANSPARENT</key>
-   <map>
-    <key>type</key>
-    <string>key</string>
-    <key>value</key>
-    <uuid>8dcd4a48-2d37-4909-9f78-f7a9eb4ef903</uuid>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>TOUCH_INVALID_FACE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0xFFFFFFFF</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>TOUCH_INVALID_TEXCOORD</key>
-   <map>
-    <key>type</key>
-    <string>vector</string>
-    <key>value</key>
-    <array>
-     <map>
-      <key>x</key>
-      <real>-1.0</real>
-     </map>
-     <map>
-      <key>y</key>
-      <real>-1.0</real>
-     </map>
-     <map>
-      <key>z</key>
-      <real>0.0</real>
-     </map>
-    </array>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>TOUCH_INVALID_VECTOR</key>
-   <map>
-    <key>type</key>
-    <string>vector</string>
-    <key>value</key>
-    <array>
-     <map>
-      <key>x</key>
-      <real>0.0</real>
-     </map>
-     <map>
-      <key>y</key>
-      <real>0.0</real>
-     </map>
-     <map>
-      <key>z</key>
-      <real>0.0</real>
-     </map>
-    </array>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>TRAVERSAL_TYPE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>7</integer>
-    <key>tooltip</key>
-    <string>One of TRAVERSAL_TYPE_FAST, TRAVERSAL_TYPE_SLOW, and TRAVERSAL_TYPE_NONE.</string>
-   </map>
-   <key>TRAVERSAL_TYPE_FAST</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>TRAVERSAL_TYPE_NONE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>2</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>TRAVERSAL_TYPE_SLOW</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>TRUE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1</integer>
-    <key>tooltip</key>
-    <string>An integer constant for boolean comparisons. Has the value '1'.</string>
-   </map>
-   <key>TWO_PI</key>
-   <map>
-    <key>type</key>
-    <string>float</string>
-    <key>value</key>
-    <real>6.28318530</real>
-    <key>tooltip</key>
-    <string>6.28318530 - The radians of a circle.</string>
-   </map>
-   <key>TYPE_FLOAT</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>2</integer>
-    <key>tooltip</key>
-    <string>The list entry is a float.</string>
-   </map>
-   <key>TYPE_INTEGER</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1</integer>
-    <key>tooltip</key>
-    <string>The list entry is an integer.</string>
-   </map>
-   <key>TYPE_INVALID</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0</integer>
-    <key>tooltip</key>
-    <string>The list entry is invalid.</string>
-   </map>
-   <key>TYPE_KEY</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>4</integer>
-    <key>tooltip</key>
-    <string>The list entry is a key.</string>
-   </map>
-   <key>TYPE_ROTATION</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>6</integer>
-    <key>tooltip</key>
-    <string>The list entry is a rotation.</string>
-   </map>
-   <key>TYPE_STRING</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>3</integer>
-    <key>tooltip</key>
-    <string>The list entry is a string.</string>
-   </map>
-   <key>TYPE_VECTOR</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>5</integer>
-    <key>tooltip</key>
-    <string>The list entry is a vector.</string>
-   </map>
-   <key>URL_REQUEST_DENIED</key>
-   <map>
-    <key>type</key>
-    <string>string</string>
-    <key>value</key>
-    <string>URL_REQUEST_DENIED</string>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>URL_REQUEST_GRANTED</key>
-   <map>
-    <key>type</key>
-    <string>string</string>
-    <key>value</key>
-    <string>URL_REQUEST_GRANTED</string>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>32</integer>
-    <key>tooltip</key>
-    <string>A slider between minimum (0.0) and maximum (1.0) deflection of angular orientation. That is, its a simple scalar for modulating the strength of angular deflection such that the vehicles preferred axis of motion points toward its real velocity.</string>
-   </map>
-   <key>VEHICLE_ANGULAR_DEFLECTION_TIMESCALE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>33</integer>
-    <key>tooltip</key>
-    <string>The time-scale for exponential success of linear deflection deflection. Its another way to specify the strength of the vehicles tendency to reorient itself so that its preferred axis of motion agrees with its true velocity.</string>
-   </map>
-   <key>VEHICLE_ANGULAR_FRICTION_TIMESCALE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>17</integer>
-    <key>tooltip</key>
-    <string>A vector of timescales for exponential decay of the vehicles angular velocity about its preferred axes of motion (at, left, up).
-			Range = [0.07, inf) seconds for each element of the vector.</string>
-   </map>
-   <key>VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>35</integer>
-    <key>tooltip</key>
-    <string>The timescale for exponential decay of the angular motors magnitude.</string>
-   </map>
-   <key>VEHICLE_ANGULAR_MOTOR_DIRECTION</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>19</integer>
-    <key>tooltip</key>
-    <string>The direction and magnitude (in preferred frame) of the vehicles angular motor.The vehicle will accelerate (or decelerate if necessary) to match its velocity to its motor.</string>
-   </map>
-   <key>VEHICLE_ANGULAR_MOTOR_TIMESCALE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>34</integer>
-    <key>tooltip</key>
-    <string>The timescale for exponential approach to full angular motor velocity.</string>
-   </map>
-   <key>VEHICLE_BANKING_EFFICIENCY</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>38</integer>
-    <key>tooltip</key>
-    <string>A slider between anti (-1.0), none (0.0), and maxmum (1.0) banking strength.</string>
-   </map>
-   <key>VEHICLE_BANKING_MIX</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>39</integer>
-    <key>tooltip</key>
-    <string>A slider between static (0.0) and dynamic (1.0) banking. "Static" means the banking scales only with the angle of roll, whereas "dynamic" is a term that also scales with the vehicles linear speed.</string>
-   </map>
-   <key>VEHICLE_BANKING_TIMESCALE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>40</integer>
-    <key>tooltip</key>
-    <string>The timescale for banking to exponentially approach its maximum effect. This is another way to scale the strength of the banking effect, however it affects the term that is proportional to the difference between what the banking behavior is trying to do, and what the vehicle is actually doing.</string>
-   </map>
-   <key>VEHICLE_BUOYANCY</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>27</integer>
-    <key>tooltip</key>
-    <string>A slider between minimum (0.0) and maximum anti-gravity (1.0).</string>
-   </map>
-   <key>VEHICLE_FLAG_CAMERA_DECOUPLED</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x200</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x10</integer>
-    <key>tooltip</key>
-    <string>Hover at global height.</string>
-   </map>
-   <key>VEHICLE_FLAG_HOVER_TERRAIN_ONLY</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x8</integer>
-    <key>tooltip</key>
-    <string>Ignore water height when hovering.</string>
-   </map>
-   <key>VEHICLE_FLAG_HOVER_UP_ONLY</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x20</integer>
-    <key>tooltip</key>
-    <string>Hover does not push down. Use this flag for hovering vehicles that should be able to jump above their hover height.</string>
-   </map>
-   <key>VEHICLE_FLAG_HOVER_WATER_ONLY</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x4</integer>
-    <key>tooltip</key>
-    <string>Ignore terrain height when hovering.</string>
-   </map>
-   <key>VEHICLE_FLAG_LIMIT_MOTOR_UP</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x40</integer>
-    <key>tooltip</key>
-    <string>Prevents ground vehicles from motoring into the sky.</string>
-   </map>
-   <key>VEHICLE_FLAG_LIMIT_ROLL_ONLY</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x2</integer>
-    <key>tooltip</key>
-    <string>For vehicles with vertical attractor that want to be able to climb/dive, for instance, aeroplanes that want to use the banking feature.</string>
-   </map>
-   <key>VEHICLE_FLAG_MOUSELOOK_BANK</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x100</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>VEHICLE_FLAG_MOUSELOOK_STEER</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x80</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>VEHICLE_FLAG_NO_DEFLECTION_UP</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x1</integer>
-    <key>tooltip</key>
-    <string>This flag prevents linear deflection parallel to world z-axis. This is useful for preventing ground vehicles with large linear deflection, like bumper cars, from climbing their linear deflection into the sky.</string>
-   </map>
-   <key>VEHICLE_FLAG_NO_FLY_UP</key>
-   <map>
-    <key>deprecated</key>
-    <boolean>true</boolean>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0x1</integer>
-    <key>tooltip</key>
-    <string>Old, changed to VEHICLE_FLAG_NO_DEFLECTION_UP</string>
-   </map>
-   <key>VEHICLE_HOVER_EFFICIENCY</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>25</integer>
-    <key>tooltip</key>
-    <string>A slider between minimum (0.0 = bouncy) and maximum (1.0 = fast as possible) damped motion of the hover behavior. </string>
-   </map>
-   <key>VEHICLE_HOVER_HEIGHT</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>24</integer>
-    <key>tooltip</key>
-    <string>The height (above the terrain or water, or global) at which the vehicle will try to hover.</string>
-   </map>
-   <key>VEHICLE_HOVER_TIMESCALE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>26</integer>
-    <key>tooltip</key>
-    <string>Period of time (in seconds) for the vehicle to achieve its hover height.</string>
-   </map>
-   <key>VEHICLE_LINEAR_DEFLECTION_EFFICIENCY</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>28</integer>
-    <key>tooltip</key>
-    <string>A slider between minimum (0.0) and maximum (1.0) deflection of linear velocity. That is, its a simple scalar for modulating the strength of linear deflection.</string>
-   </map>
-   <key>VEHICLE_LINEAR_DEFLECTION_TIMESCALE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>29</integer>
-    <key>tooltip</key>
-    <string>The timescale for exponential success of linear deflection deflection. It is another way to specify how much time it takes for the vehicles linear velocity to be redirected to its preferred axis of motion.</string>
-   </map>
-   <key>VEHICLE_LINEAR_FRICTION_TIMESCALE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>16</integer>
-    <key>tooltip</key>
-    <string>A vector of timescales for exponential decay of the vehicles linear velocity along its preferred axes of motion (at, left, up).
-			Range = [0.07, inf) seconds for each element of the vector.</string>
-   </map>
-   <key>VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>35</integer>
-    <key>tooltip</key>
-    <string>The timescale for exponential decay of the linear motors magnitude.</string>
-   </map>
-   <key>VEHICLE_LINEAR_MOTOR_DIRECTION</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>18</integer>
-    <key>tooltip</key>
-    <string>The direction and magnitude (in preferred frame) of the vehicles linear motor. The vehicle will accelerate (or decelerate if necessary) to match its velocity to its motor.
-			Range of magnitude = [0, 30] meters/second.</string>
-   </map>
-   <key>VEHICLE_LINEAR_MOTOR_OFFSET</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>20</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>VEHICLE_LINEAR_MOTOR_TIMESCALE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>30</integer>
-    <key>tooltip</key>
-    <string>The timescale for exponential approach to full linear motor velocity.</string>
-   </map>
-   <key>VEHICLE_REFERENCE_FRAME</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>44</integer>
-    <key>tooltip</key>
-    <string>A rotation of the vehicles preferred axes of motion and orientation (at, left, up) with respect to the vehicles local frame (x, y, z).</string>
-   </map>
-   <key>VEHICLE_TYPE_AIRPLANE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>4</integer>
-    <key>tooltip</key>
-    <string>Uses linear deflection for lift, no hover, and banking to turn.
-			// very little friction along forward-back axis
-			llSetVehicleVectorParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, &lt;200, 10, 5&gt; );
-			// uniform angular friction
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_FRICTION_TIMESCALE, 20 );
-			// linear motor
-			llSetVehicleVectorParam( VEHICLE_LINEAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
-			llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_TIMESCALE, 2 );
-			llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 60 );
-			// angular motor
-			llSetVehicleVectorParam( VEHICLE_ANGULAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_TIMESCALE, 4 );
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 8 );
-			// no hover
-			llSetVehicleFloatParam( VEHICLE_HOVER_HEIGHT, 0 );
-			llSetVehicleFloatParam( VEHICLE_HOVER_EFFICIENCY, 0.5 );
-			llSetVehicleFloatParam( VEHICLE_HOVER_TIMESCALE, 1000 );
-			llSetVehicleFloatParam( VEHICLE_BUOYANCY, 0 );
-			// linear deflection
-			llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 0.5 );
-			llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 0.5 );
-			// angular deflection
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 1.0 );
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 2.0 );
-			// vertical attractor
-			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 0.9 );
-			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 2 );
-			// banking
-			llSetVehicleFloatParam( VEHICLE_BANKING_EFFICIENCY, 1 );
-			llSetVehicleFloatParam( VEHICLE_BANKING_MIX, 0.7 );
-			llSetVehicleFloatParam( VEHICLE_BANKING_TIMESCALE, 2 );
-			// default rotation of local frame
-			llSetVehicleRotationParam( VEHICLE_REFERENCE_FRAME, &lt;0, 0, 0, 1&gt; );
-			// remove these flags
-			llRemoveVehicleFlags( VEHICLE_FLAG_NO_DEFLECTION_UP
-			| VEHICLE_FLAG_HOVER_WATER_ONLY
-			| VEHICLE_FLAG_HOVER_TERRAIN_ONLY
-			| VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT
-			| VEHICLE_FLAG_HOVER_UP_ONLY
-			| VEHICLE_FLAG_LIMIT_MOTOR_UP );
-			// set these flags
-			llSetVehicleFlags( VEHICLE_FLAG_LIMIT_ROLL_ONLY );</string>
-   </map>
-   <key>VEHICLE_TYPE_BALLOON</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>5</integer>
-    <key>tooltip</key>
-    <string>Hover, and friction, but no deflection.
-			// uniform linear friction
-			llSetVehicleFloatParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, 5 );
-			// uniform angular friction
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_FRICTION_TIMESCALE, 10 );
-			// linear motor
-			llSetVehicleVectorParam( VEHICLE_LINEAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
-			llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_TIMESCALE, 5 );
-			llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 60 );
-			// angular motor
-			llSetVehicleVectorParam( VEHICLE_ANGULAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_TIMESCALE, 6 );
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 10 );
-			// hover
-			llSetVehicleFloatParam( VEHICLE_HOVER_HEIGHT, 5 );
-			llSetVehicleFloatParam( VEHICLE_HOVER_EFFICIENCY, 0.8 );
-			llSetVehicleFloatParam( VEHICLE_HOVER_TIMESCALE, 10 );
-			llSetVehicleFloatParam( VEHICLE_BUOYANCY, 1 );
-			// no linear deflection
-			llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 0 );
-			llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 5 );
-			// no angular deflection
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 0 );
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 5 );
-			// no vertical attractor
-			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 1 );
-			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 1000 );
-			// no banking
-			llSetVehicleFloatParam( VEHICLE_BANKING_EFFICIENCY, 0 );
-			llSetVehicleFloatParam( VEHICLE_BANKING_MIX, 0.7 );
-			llSetVehicleFloatParam( VEHICLE_BANKING_TIMESCALE, 5 );
-			// default rotation of local frame
-			llSetVehicleRotationParam( VEHICLE_REFERENCE_FRAME, &lt;0, 0, 0, 1&gt; );
-			// remove all flags
-			llRemoveVehicleFlags( VEHICLE_FLAG_NO_DEFLECTION_UP
-			| VEHICLE_FLAG_HOVER_WATER_ONLY
-			| VEHICLE_FLAG_LIMIT_ROLL_ONLY
-			| VEHICLE_FLAG_HOVER_TERRAIN_ONLY
-			| VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT
-			| VEHICLE_FLAG_HOVER_UP_ONLY
-			| VEHICLE_FLAG_LIMIT_MOTOR_UP );</string>
-   </map>
-   <key>VEHICLE_TYPE_BOAT</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>3</integer>
-    <key>tooltip</key>
-    <string>Hovers over water with lots of friction and some anglar deflection.
-			// least for forward-back, most friction for up-down
-			llSetVehicleVectorParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, &lt;10, 3, 2&gt; );
-			// uniform angular friction (setting it as a scalar rather than a vector)
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_FRICTION_TIMESCALE, 10 );
-			// linear motor wins after about five seconds, decays after about a minute
-			llSetVehicleVectorParam( VEHICLE_LINEAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
-			llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_TIMESCALE, 5 );
-			llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 60 );
-			// angular motor wins after four seconds, decays in same amount of time
-			llSetVehicleVectorParam( VEHICLE_ANGULAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_TIMESCALE, 4 );
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 4 );
-			// hover
-			llSetVehicleFloatParam( VEHICLE_HOVER_HEIGHT, 0 );
-			llSetVehicleFloatParam( VEHICLE_HOVER_EFFICIENCY, 0.5 );
-			llSetVehicleFloatParam( VEHICLE_HOVER_TIMESCALE, 2.0 );
-			llSetVehicleFloatParam( VEHICLE_BUOYANCY, 1 );
-			// halfway linear deflection with timescale of 3 seconds
-			llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 0.5 );
-			llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 3 );
-			// angular deflection
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 0.5 );
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 5 );
-			// somewhat bounscy vertical attractor
-			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 0.5 );
-			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 5 );
-			// weak negative damped banking
-			llSetVehicleFloatParam( VEHICLE_BANKING_EFFICIENCY, -0.3 );
-			llSetVehicleFloatParam( VEHICLE_BANKING_MIX, 0.8 );
-			llSetVehicleFloatParam( VEHICLE_BANKING_TIMESCALE, 1 );
-			// default rotation of local frame
-			llSetVehicleRotationParam( VEHICLE_REFERENCE_FRAME, &lt;0, 0, 0, 1&gt; );
-			// remove these flags
-			llRemoveVehicleFlags( VEHICLE_FLAG_HOVER_TERRAIN_ONLY
-			| VEHICLE_FLAG_LIMIT_ROLL_ONLY
-			| VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT);
-			// set these flags
-			llSetVehicleFlags( VEHICLE_FLAG_NO_DEFLECTION_UP
-			| VEHICLE_FLAG_HOVER_WATER_ONLY
-			| VEHICLE_FLAG_HOVER_UP_ONLY
-			| VEHICLE_FLAG_LIMIT_MOTOR_UP );</string>
-   </map>
-   <key>VEHICLE_TYPE_CAR</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>2</integer>
-    <key>tooltip</key>
-    <string>Another vehicle that bounces along the ground but needs
-			the motors to be driven from external controls or
-			timer events.
-			// most friction for left-right, least for up-down
-			llSetVehicleVectorParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, &lt;100, 2, 1000&gt; );
-			// no angular friction
-			llSetVehicleVectorParam( VEHICLE_ANGULAR_FRICTION_TIMESCALE, &lt;1000, 1000, 1000&gt; );
-			// linear motor wins after about a second, decays after about a minute
-			llSetVehicleVectorParam( VEHICLE_LINEAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
-			llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_TIMESCALE, 1 );
-			llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 60 );
-			// angular motor wins after a second, decays in less time than that
-			llSetVehicleVectorParam( VEHICLE_ANGULAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_TIMESCALE, 1 );
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 0.8 );
-			// no hover
-			llSetVehicleFloatParam( VEHICLE_HOVER_HEIGHT, 0 );
-			llSetVehicleFloatParam( VEHICLE_HOVER_EFFICIENCY, 0 );
-			llSetVehicleFloatParam( VEHICLE_HOVER_TIMESCALE, 1000 );
-			llSetVehicleFloatParam( VEHICLE_BUOYANCY, 0 );
-			// maximum linear deflection with timescale of 2 seconds
-			llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 1 );
-			llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 2 );
-			// no angular deflection
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 0 );
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 10 );
-			// critically damped vertical attractor
-			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 1 );
-			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 10 );
-			// weak negative critically damped banking
-			llSetVehicleFloatParam( VEHICLE_BANKING_EFFICIENCY, -0.2 );
-			llSetVehicleFloatParam( VEHICLE_BANKING_MIX, 1 );
-			llSetVehicleFloatParam( VEHICLE_BANKING_TIMESCALE, 1 );
-			// default rotation of local frame
-			llSetVehicleRotationParam( VEHICLE_REFERENCE_FRAME, &lt;0, 0, 0, 1&gt; );
-			// remove these flags
-			llRemoveVehicleFlags( VEHICLE_FLAG_HOVER_WATER_ONLY
-			| VEHICLE_FLAG_HOVER_TERRAIN_ONLY
-			| VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT);
-			// set these flags
-			llSetVehicleFlags( VEHICLE_FLAG_NO_DEFLECTION_UP
-			| VEHICLE_FLAG_LIMIT_ROLL_ONLY
-			| VEHICLE_FLAG_HOVER_UP_ONLY
-			| VEHICLE_FLAG_LIMIT_MOTOR_UP );</string>
-   </map>
-   <key>VEHICLE_TYPE_NONE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>VEHICLE_TYPE_SLED</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>1</integer>
-    <key>tooltip</key>
-    <string>Simple vehicle that bumps along the ground,
-			and likes to move along its local x-axis.
-			// most friction for left-right, least for up-down
-			llSetVehicleVectorParam( VEHICLE_LINEAR_FRICTION_TIMESCALE, &lt;30, 1, 1000&gt; );
-			// no angular friction
-			llSetVehicleVectorParam( VEHICLE_ANGULAR_FRICTION_TIMESCALE, &lt;1000, 1000, 1000&gt; );
-			// no linear motor
-			llSetVehicleVectorParam( VEHICLE_LINEAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
-			llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_TIMESCALE, 1000 );
-			llSetVehicleFloatParam( VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE, 120 );
-			// no angular motor
-			llSetVehicleVectorParam( VEHICLE_ANGULAR_MOTOR_DIRECTION, &lt;0, 0, 0&gt; );
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_TIMESCALE, 1000 );
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE, 120 );
-			// no hover (but with timescale of 10 sec if enabled)
-			llSetVehicleFloatParam( VEHICLE_HOVER_HEIGHT, 0 );
-			llSetVehicleFloatParam( VEHICLE_HOVER_EFFICIENCY, 10 );
-			llSetVehicleFloatParam( VEHICLE_HOVER_TIMESCALE, 10 );
-			llSetVehicleFloatParam( VEHICLE_BUOYANCY, 0 );
-			// maximum linear deflection with timescale of 1 second
-			llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_EFFICIENCY, 1 );
-			llSetVehicleFloatParam( VEHICLE_LINEAR_DEFLECTION_TIMESCALE, 1 );
-			// no angular deflection
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY, 0 );
-			llSetVehicleFloatParam( VEHICLE_ANGULAR_DEFLECTION_TIMESCALE, 10 );
-			// no vertical attractor (doesnt mind flipping over)
-			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY, 1 );
-			llSetVehicleFloatParam( VEHICLE_VERTICAL_ATTRACTION_TIMESCALE, 1000 );
-			// no banking
-			llSetVehicleFloatParam( VEHICLE_BANKING_EFFICIENCY, 0 );
-			llSetVehicleFloatParam( VEHICLE_BANKING_MIX, 1 );
-			llSetVehicleFloatParam( VEHICLE_BANKING_TIMESCALE, 10 );
-			// default rotation of local frame
-			llSetVehicleRotationParam( VEHICLE_REFERENCE_FRAME, &lt;0, 0, 0, 1&gt; );
-			// remove these flags
-			llRemoveVehicleFlags( VEHICLE_FLAG_HOVER_WATER_ONLY
-			| VEHICLE_FLAG_HOVER_TERRAIN_ONLY
-			| VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT
-			| VEHICLE_FLAG_HOVER_UP_ONLY );
-			// set these flags (the limit_roll flag will have no effect
-			// until banking is enabled, if ever)
-			llSetVehicleFlags( VEHICLE_FLAG_NO_DEFLECTION_UP
-			| VEHICLE_FLAG_LIMIT_ROLL_ONLY
-			| VEHICLE_FLAG_LIMIT_MOTOR_UP );</string>
-   </map>
-   <key>VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>36</integer>
-    <key>tooltip</key>
-    <string>A slider between minimum (0.0 = wobbly) and maximum (1.0 = firm as possible) stability of the vehicle to keep itself upright.</string>
-   </map>
-   <key>VEHICLE_VERTICAL_ATTRACTION_TIMESCALE</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>37</integer>
-    <key>tooltip</key>
-    <string>The period of wobble, or timescale for exponential approach, of the vehicle to rotate such that its preferred "up" axis is oriented along the worlds "up" axis.</string>
-   </map>
-   <key>VERTICAL</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>WANDER_PAUSE_AT_WAYPOINTS</key>
-   <map>
-    <key>type</key>
-    <string>integer</string>
-    <key>value</key>
-    <integer>0</integer>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>ZERO_ROTATION</key>
-   <map>
-    <key>type</key>
-    <string>rotation</string>
-    <key>value</key>
-    <array>
-     <map>
-      <key>x</key>
-      <real>0.0</real>
-     </map>
-     <map>
-      <key>y</key>
-      <real>0.0</real>
-     </map>
-     <map>
-      <key>z</key>
-      <real>0.0</real>
-     </map>
-     <map>
-      <key>w</key>
-      <real>1.0</real>
-     </map>
-    </array>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>ZERO_VECTOR</key>
-   <map>
-    <key>type</key>
-    <string>vector</string>
-    <key>value</key>
-    <array>
-     <map>
-      <key>x</key>
-      <real>0.0</real>
-     </map>
-     <map>
-      <key>y</key>
-      <real>0.0</real>
-     </map>
-     <map>
-      <key>z</key>
-      <real>0.0</real>
-     </map>
-    </array>
-    <key>tooltip</key>
-    <string/>
-   </map>
-  </map>
-  <key>controls</key>
-  <map>
-   <key>default</key>
-   <map>
-    <key>tooltip</key>
-    <string>All scripts must have a default state, which is the first state entered when the script starts.\nIf another state is defined before the default state, the compiler will report a syntax error.</string>
-   </map>
-   <key>do</key>
-   <map>
-    <key>tooltip</key>
-    <string>do / while loop\ndo {\n...\n} while (&lt;condition&gt;);</string>
-   </map>
-   <key>else</key>
-   <map>
-    <key>tooltip</key>
-    <string>if / else block\nif (&lt;condition&gt;) {\n...\n[} else [if (&lt;condition&gt;) {\n...]]\n}</string>
-   </map>
-   <key>for</key>
-   <map>
-    <key>tooltip</key>
-    <string>for loop\nfor (&lt;initialiser&gt;; &lt;condition&gt;; &lt;post-iteration-statement&gt;)\n{ ...\n}</string>
-   </map>
-   <key>if</key>
-   <map>
-    <key>tooltip</key>
-    <string>if / else block\nif (&lt;condition&gt;) {\n...\n[} else [if (&lt;condition&gt;) {\n...]]\n}</string>
-   </map>
-   <key>jump</key>
-   <map>
-    <key>tooltip</key>
-    <string>jump statement\njump &lt;label&gt;</string>
-   </map>
-   <key>return</key>
-   <map>
-    <key>tooltip</key>
-    <string>Leave current event or function.\nreturn [&lt;variable&gt;];\nOptionally pass back a variable's value, from a function.</string>
-   </map>
-   <key>state</key>
-   <map>
-    <key>tooltip</key>
-    <string>state &lt;target&gt;\nIf the target state is not the same as the current one, change to the target state.</string>
-   </map>
-   <key>while</key>
-   <map>
-    <key>tooltip</key>
-    <string>while loop\nwhile (&lt;condition&gt;) {\n,,,\n}</string>
-   </map>
-  </map>
-  <key>events</key>
-  <map>
-   <key>at_rot_target</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>TargetNumber</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>TargetRotation</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>rotation</string>
-      </map>
-     </map>
-     <map>
-      <key>CurrentRotation</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>rotation</string>
-      </map>
-     </map>
-    </array>
-    <key>tooltip</key>
-    <string>This event is triggered when a script comes within a defined angle of a target rotation. The range and rotation, are set by a call to llRotTarget.</string>
-   </map>
-   <key>at_target</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>TargetNumber</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>TargetPosition</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-     <map>
-      <key>CurrentPosition</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-    </array>
-    <key>tooltip</key>
-    <string>This event is triggered when the scripted object comes within a defined range of the target position, defined by the llTarget function call.</string>
-   </map>
-   <key>attach</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>AvatarID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-    </array>
-    <key>tooltip</key>
-    <string>This event is triggered whenever an object is attached or detached from an avatar. If it is attached, the key of the avatar it is attached to is passed in, otherwise NULL_KEY is.</string>
-   </map>
-   <key>changed</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Changed</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>tooltip</key>
-    <string>Triggered when various events change the object. The change argument will be a bit-field of CHANGED_* constants.</string>
-   </map>
-   <key>collision</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>NumberOfCollisions</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>tooltip</key>
-    <string>This event is raised while another object, or avatar, is colliding with the object the script is attached to.
-			The number of detected objects is passed to the script. Information on those objects may be gathered via the llDetected* functions.</string>
-   </map>
-   <key>collision_end</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>NumberOfCollisions</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>tooltip</key>
-    <string>This event is raised when another object, or avatar, stops colliding with the object the script is attached to.
-			The number of detected objects is passed to the script. Information on those objects may be gathered via the llDetected* library functions.</string>
-   </map>
-   <key>collision_start</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>NumberOfCollisions</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>tooltip</key>
-    <string>This event is raised when another object, or avatar, starts colliding with the object the script is attached to.
-			The number of detected objects is passed to the script. Information on those objects may be gathered via the llDetected* library functions.</string>
-   </map>
-   <key>control</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>AvatarID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-     <map>
-      <key>Levels</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>Edges</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>tooltip</key>
-    <string>Once a script has the ability to grab control inputs from the avatar, this event will be used to pass the commands into the script.
-			The levels and edges are bit-fields of control constants.</string>
-   </map>
-   <key>dataserver</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>RequestID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-     <map>
-      <key>Data</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-    </array>
-    <key>tooltip</key>
-    <string>This event is triggered when the requested data is returned to the script.
-			Data may be requested by the llRequestAgentData, llRequestInventoryData, and llGetNotecardLine function calls, for example.</string>
-   </map>
-   <key>email</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Time</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>Address</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>Subject</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>Body</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>NumberRemaining</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>tooltip</key>
-    <string>This event is triggered when an email sent to this script arrives.
-			The number remaining tells how many more emails are known to be still pending.</string>
-   </map>
-   <key>http_request</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>HTTPRequestID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-     <map>
-      <key>HTTPMethod</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>Body</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-    </array>
-    <key>tooltip</key>
-    <string>Triggered when task receives an HTTP request.</string>
-   </map>
-   <key>http_response</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>HTTPRequestID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-     <map>
-      <key>Status</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>Metadata</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-     <map>
-      <key>Body</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-    </array>
-    <key>tooltip</key>
-    <string>This event handler is invoked when an HTTP response is received for a pending llHTTPRequest request or if a pending request fails or times out.</string>
-   </map>
-   <key>land_collision</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Position</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-    </array>
-    <key>tooltip</key>
-    <string>This event is raised when the object the script is attached to is colliding with the ground.</string>
-   </map>
-   <key>land_collision_end</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Position</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-    </array>
-    <key>tooltip</key>
-    <string>This event is raised when the object the script is attached to stops colliding with the ground.</string>
-   </map>
-   <key>land_collision_start</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Position</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-    </array>
-    <key>tooltip</key>
-    <string>This event is raised when the object the script is attached to begins to collide with the ground.</string>
-   </map>
-   <key>link_message</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>SendersLink</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>Value</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>Text</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>ID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-    </array>
-    <key>tooltip</key>
-    <string>Triggered when object receives a link message via llMessageLinked function call.</string>
-   </map>
-   <key>listen</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Channel</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>Name</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>ID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-     <map>
-      <key>Text</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-    </array>
-    <key>tooltip</key>
-    <string>This event is raised whenever a chat message matching the constraints set in the llListen command is received. The name and ID of the speaker, as well as the message, are passed in as parameters.
-			Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 through 2,147,483,648 are private channels that are not sent to avatars but other scripts can listen on those channels.</string>
-   </map>
-   <key>money</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Payer</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-     <map>
-      <key>Amount</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>tooltip</key>
-    <string>This event is triggered when a resident has given an amount of Linden dollars to the object.</string>
-   </map>
-   <key>moving_end</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>tooltip</key>
-    <string>Triggered whenever an object with this script stops moving.</string>
-   </map>
-   <key>moving_start</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>tooltip</key>
-    <string>Triggered whenever an object with this script starts moving.</string>
-   </map>
-   <key>no_sensor</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>tooltip</key>
-    <string>This event is raised when sensors are active, via the llSensor function call, but are not sensing anything.</string>
-   </map>
-   <key>not_at_rot_target</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>tooltip</key>
-    <string>When a target is set via the llRotTarget function call, but the script is outside the specified angle this event is raised.</string>
-   </map>
-   <key>not_at_target</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>tooltip</key>
-    <string>When a target is set via the llTarget library call, but the script is outside the specified range this event is raised.</string>
-   </map>
-   <key>object_rez</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>RezzedObjectsID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-    </array>
-    <key>tooltip</key>
-    <string>Triggered when an object rezzes another object from its inventory via the llRezObject, or similar, functions. The id is the globally unique key for the object rezzed.</string>
-   </map>
-   <key>on_rez</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>StartParameter</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>tooltip</key>
-    <string>Triggered whenever an object is rezzed from inventory or by another object. The start parameter is passed in from the llRezObject call, or zero if from inventory.</string>
-   </map>
-   <key>path_update</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Type</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>Reserved</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-    </array>
-    <key>tooltip</key>
-    <string>This event is called to inform the script of changes within the object's path-finding status.</string>
-   </map>
-   <key>remote_data</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>EventType</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>ChannelID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-     <map>
-      <key>MessageID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-     <map>
-      <key>Sender</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>Data</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>Data</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-    </array>
-    <key>tooltip</key>
-    <string>Triggered by various XML-RPC calls with event_type specifying the type of data.</string>
-   </map>
-   <key>run_time_permissions</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>PermissionFlags</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>tooltip</key>
-    <string>Scripts need permission from either the owner or the avatar they wish to act on before they may perform certain functions, such as debiting money from their owners account, triggering an animation on an avatar, or capturing control inputs. The llRequestPermissions library function is used to request these permissions and the various permissions integer constants can be supplied.
-			The integer returned to this event handler contains the current set of permissions flags, so if permissions equal 0 then no permissions are set.</string>
-   </map>
-   <key>sensor</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>NumberDetected</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>tooltip</key>
-    <string>This event is raised whenever objects matching the constraints of the llSensor command are detected.
-			The number of detected objects is passed to the script in the parameter. Information on those objects may be gathered via the llDetected* functions.</string>
-   </map>
-   <key>state_entry</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>tooltip</key>
-    <string>The state_entry event occurs whenever a new state is entered, including at program start, and is always the first event handled.</string>
-   </map>
-   <key>state_exit</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>tooltip</key>
-    <string>The state_exit event occurs whenever the state command is used to transition to another state. It is handled before the new states state_entry event.</string>
-   </map>
-   <key>timer</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>tooltip</key>
-    <string>This event is raised at regular intervals set by the llSetTimerEvent library function.</string>
-   </map>
-   <key>touch</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>NumberOfTouches</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>tooltip</key>
-    <string>This event is raised while a user is touching the object the script is attached to.
-			The number of touching objects is passed to the script in the parameter.
-			Information on those objects may be gathered via the llDetected* library functions.</string>
-   </map>
-   <key>touch_end</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>NumberOfTouches</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>tooltip</key>
-    <string>This event is raised when a user stops touching the object the script is attached to. The number of touches is passed to the script in the parameter.
-			Information on those objects may be gathered via the llDetected* library functions.</string>
-   </map>
-   <key>touch_start</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>NumberOfTouches</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>tooltip</key>
-    <string>This event is raised when a user first touches the object the script is attached to. The number of touches is passed to the script in the parameter.
-			Information on those objects may be gathered via the llDetected() library functions.</string>
-   </map>
-   <key>transaction_result</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>RequestID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-     <map>
-      <key>Success</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>Message</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-    </array>
-    <key>tooltip</key>
-    <string>Triggered by llTransferMoney() function.</string>
-   </map>
-  </map>
-  <key>functions</key>
-  <map>
-   <key>llAbs</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Value</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>integer</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the absolute (positive) version of Value.</string>
-   </map>
-   <key>llAcos</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Value</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>float</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the arc-cosine of Value, in radians.</string>
-   </map>
-   <key>llAddToLandBanList</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>ID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-     <map>
-      <key>Hours</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Add avatar ID to the parcel ban list for the specified number of Hours.\nA value of 0 for Hours will add the agent indefinitely.\nThe smallest value that Hours will accept is 0.01; anything smaller will be seen as 0.\nWhen values that small are used, it seems the function bans in approximately 30 second increments (Probably 36 second increments, as 0.01 of an hour is 36 seconds).\nResidents teleporting to a parcel where they are banned will be redirected to a neighbouring parcel.</string>
-   </map>
-   <key>llAddToLandPassList</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>ID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-     <map>
-      <key>Hours</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.1</real>
-    <key>tooltip</key>
-    <string>Add avatar ID to the land pass list, for a duration of Hours.</string>
-   </map>
-   <key>llAdjustSoundVolume</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Volume</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.1</real>
-    <key>tooltip</key>
-    <string>Adjusts the volume (0.0 - 1.0) of the currently playing attached sound started with llPlaySound or llLoopSound.\nAdjusts the volume of the currently playing attached sound started with llPlaySound or llLoopSound.\nThis function has no effect on sounds started with llTriggerSound.</string>
-   </map>
-   <key>llAllowInventoryDrop</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Flag</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>If Flag == TRUE, users without object modify permissions can still drop inventory items into the object.</string>
-   </map>
-   <key>llAngleBetween</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Rot1</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>rotation</string>
-      </map>
-     </map>
-     <map>
-      <key>Rot2</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>rotation</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>float</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the angle, in radians, between rotations Rot1 and Rot2.</string>
-   </map>
-   <key>llApplyImpulse</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Force</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-     <map>
-      <key>Local</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Applies impulse to the object.\nApplies the Force in local coordinates if Local == TRUE. Otherwise the Force is applied in global coordinates.\nThis function only works on physical objects.</string>
-   </map>
-   <key>llApplyRotationalImpulse</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Force</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-     <map>
-      <key>Local</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Applies rotational impulse to the object,\nThe force is in local coordinates, if Local == TRUE, otherwise the impulse is applied in global coordinates.\nThis function only works on physical objects.</string>
-   </map>
-   <key>llAsin</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Value</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>float</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the arc-sine, in radians, of Value.</string>
-   </map>
-   <key>llAtan2</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>y</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-     <map>
-      <key>x</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>float</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the arc-tangent2 of y, x.</string>
-   </map>
-   <key>llAttachToAvatar</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>AttachmentPoint</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Attach to avatar at point AttachmentPoint, if task has permissions to do so.\nAttach to avatar at point iAttachmentPoint.\nRequires the PERMISSION_ATTACH runtime permission.</string>
-   </map>
-   <key>llAttachToAvatarTemp</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>AttachPoint</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0</real>
-    <key>tooltip</key>
-    <string>Follows the same convention as llAttachToAvatar, with the exception that the object will not create new inventory for the user, and will disappear on detach or disconnect.</string>
-   </map>
-   <key>llAvatarOnLinkSitTarget</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>LinkNumber</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>key</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>If an avatar is sitting on the link's sit target, return the avatar's key, NULL_KEY otherwise.\nReturns a key that is the UUID of the user seated on the specified link's prim.</string>
-   </map>
-   <key>llAvatarOnSitTarget</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>key</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>If an avatar is seated on the sit target, returns the avatar's key, otherwise NULL_KEY.\nThis only will detect avatars sitting on sit targets defined with llSitTarget.</string>
-   </map>
-   <key>llAxes2Rot</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Forward</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-     <map>
-      <key>Left</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-     <map>
-      <key>Up</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>rotation</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the rotation represented by coordinate axes Forward, Left, and Up.</string>
-   </map>
-   <key>llAxisAngle2Rot</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Axis</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-     <map>
-      <key>Angle</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>rotation</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the rotation that is a generated Angle about Axis.</string>
-   </map>
-   <key>llBase64ToInteger</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Text</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>integer</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns an integer that is the Text, Base64 decoded as a big endian integer.\nReturns zero if Text is longer then 8 characters. If Text contains fewer then 6 characters, the return value is unpredictable.</string>
-   </map>
-   <key>llBase64ToString</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Text</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>string</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Converts a Base64 string to a conventional string.\nIf the conversion creates any unprintable characters, they are converted to question marks.</string>
-   </map>
-   <key>llBreakAllLinks</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>De-links all prims in the link set (requires permission PERMISSION_CHANGE_LINKS be set).</string>
-   </map>
-   <key>llBreakLink</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>LinkNumber</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>De-links the prim with the given link number (requires permission PERMISSION_CHANGE_LINKS be set).</string>
-   </map>
-   <key>llCastRay</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Start</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-     <map>
-      <key>End</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-     <map>
-      <key>Options</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real/>
-    <key>return</key>
-    <string>list</string>
-    <key>sleep</key>
-    <real/>
-    <key>tooltip</key>
-    <string>Casts a ray into the physics world from 'start' to 'end' and returns data according to details in Options.\nReports collision data for intersections with objects.\nReturn value: [UUID_1, {link_number_1}, hit_position_1, {hit_normal_1}, UUID_2, {link_number_2}, hit_position_2, {hit_normal_2}, ... , status_code] where {} indicates optional data.</string>
-   </map>
-   <key>llCeil</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Value</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>integer</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns smallest integer value &gt;= Value.</string>
-   </map>
-   <key>llClearCameraParams</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Resets all camera parameters to default values and turns off scripted camera control.</string>
-   </map>
-   <key>llClearLinkMedia</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Link</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>Face</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>0.0</real>
-    <key>return</key>
-    <string>integer</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Clears (deletes) the media and all parameters from the given Face on the linked prim.\nReturns an integer that is a STATUS_* flag, which details the success/failure of the operation.</string>
-   </map>
-   <key>llClearPrimMedia</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Face</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>integer</string>
-    <key>sleep</key>
-    <real>0.1</real>
-    <key>tooltip</key>
-    <string>Clears (deletes) the media and all parameters from the given Face.\nReturns an integer that is a STATUS_* flag which details the success/failure of the operation.</string>
-   </map>
-   <key>llCloseRemoteDataChannel</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>ChannelID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>1.0</real>
-    <key>tooltip</key>
-    <string>Closes the specified XML-RPC channel.</string>
-   </map>
-   <key>llCloud</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Offset</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>float</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the cloud density at the object's position + Offset.</string>
-   </map>
-   <key>llCollisionFilter</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>ObjectName</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>ObjectID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-     <map>
-      <key>Accept</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>If Accept == TRUE, only accept collisions with objects Name and ID, otherwise with objects not Name or ID.\nSpecify an empty string or NULL_KEY to not filter on the corresponding parameter.</string>
-   </map>
-   <key>llCollisionSound</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>ImpactSound</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>ImpactVolume</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Suppress default collision sounds, replace default impact sounds with ImpactSound.\nThe ImpactSound must be in the object inventory.\nSupply an empty string to suppress collision sounds.</string>
-   </map>
-   <key>llCollisionSprite</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>ImpactSprite</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Suppress default collision sprites, replace default impact sprite with ImpactSprite; found in the object inventory (empty string to just suppress).</string>
-   </map>
-   <key>llCos</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Theta</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>float</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the cosine of Theta (Theta in radians).</string>
-   </map>
-   <key>llCreateCharacter</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Options</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real/>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real/>
-    <key>tooltip</key>
-    <string>Convert link-set to AI/Physics character.\nCreates a path-finding entity, known as a "character", from the object containing the script. Required to activate use of path-finding functions.\nOptions is a list of key/value pairs.</string>
-   </map>
-   <key>llCreateLink</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>TargetPrim</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-     <map>
-      <key>Parent</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>1.0</real>
-    <key>tooltip</key>
-    <string>Attempt to link the object the script is in, to target (requires permission PERMISSION_CHANGE_LINKS be set).\nIf parent == TRUE, the object the script is attached to is the root.\nRequires permission PERMISSION_CHANGE_LINKS be set.</string>
-   </map>
-   <key>llCSV2List</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Text</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>list</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Create a list from a string of comma separated values specified in Text.</string>
-   </map>
-   <key>llDeleteCharacter</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real/>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real/>
-    <key>tooltip</key>
-    <string>Convert link-set from AI/Physics character to Physics object.\nConvert the current link-set back to a standard object, removing all path-finding properties.</string>
-   </map>
-   <key>llDeleteSubList</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Source</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-     <map>
-      <key>Start</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>End</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>list</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Removes the slice from start to end and returns the remainder of the list.\nRemove a slice from the list and return the remainder, start and end are inclusive.\nUsing negative numbers for start and/or end causes the index to count backwards from the length of the list, so 0, -1 would delete the entire list.\nIf Start is larger than End the list deleted is the exclusion of the entries; so 6, 4 would delete the entire list except for the 5th. list entry.</string>
-   </map>
-   <key>llDeleteSubString</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Source</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>Start</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>End</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>string</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Removes the indicated sub-string and returns the result.\nStart and End are inclusive.\nUsing negative numbers for Start and/or End causes the index to count backwards from the length of the string, so 0, -1 would delete the entire string.\nIf Start is larger than End, the sub-string is the exclusion of the entries; so 6, 4 would delete the entire string except for the 5th. character.</string>
-   </map>
-   <key>llDetachFromAvatar</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Remove the object containing the script from the avatar.</string>
-   </map>
-   <key>llDetectedGrab</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Number</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>vector</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the grab offset of a user touching the object.\nReturns &lt;0.0, 0.0, 0.0&gt; if Number is not a valid object.</string>
-   </map>
-   <key>llDetectedGroup</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Number</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>integer</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns TRUE if detected object or agent Number has the same user group active as this object.\nIt will return FALSE if the object or agent is in the group, but the group is not active.</string>
-   </map>
-   <key>llDetectedKey</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Number</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>key</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the key of detected object or avatar number.\nReturns NULL_KEY if Number is not a valid index.</string>
-   </map>
-   <key>llDetectedLinkNumber</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Number</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>integer</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the link position of the triggered event for touches and collisions only.\n0 for a non-linked object, 1 for the root of a linked object, 2 for the first child, etc.</string>
-   </map>
-   <key>llDetectedName</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Number</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>string</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the name of detected object or avatar number.\nReturns the name of detected object number.\nReturns empty string if Number is not a valid index.</string>
-   </map>
-   <key>llDetectedOwner</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Number</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>key</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the key of detected object's owner.\nReturns invalid key if Number is not a valid index.</string>
-   </map>
-   <key>llDetectedPos</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Number</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>vector</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the position of detected object or avatar number.\nReturns &lt;0.0, 0.0, 0.0&gt; if Number is not a valid index.</string>
-   </map>
-   <key>llDetectedRot</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Number</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>rotation</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the rotation of detected object or avatar number.\nReturns &lt;0.0, 0.0, 0.0, 1.0&gt; if Number is not a valid offset.</string>
-   </map>
-   <key>llDetectedTouchBinormal</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Index</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>vector</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the surface bi-normal for a triggered touch event.\nReturns a vector that is the surface bi-normal (tangent to the surface) where the touch event was triggered.</string>
-   </map>
-   <key>llDetectedTouchFace</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Index</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>integer</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the index of the face where the avatar clicked in a triggered touch event.</string>
-   </map>
-   <key>llDetectedTouchNormal</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Index</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>vector</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the surface normal for a triggered touch event.\nReturns a vector that is the surface normal (perpendicular to the surface) where the touch event was triggered.</string>
-   </map>
-   <key>llDetectedTouchPos</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Index</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>vector</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the position, in region coordinates, where the object was touched in a triggered touch event.\nUnless it is a HUD, in which case it returns the position relative to the attach point.</string>
-   </map>
-   <key>llDetectedTouchST</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Index</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>vector</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns a vector that is the surface coordinates where the prim was touched.\nThe X and Y vector positions contain the horizontal (S) and vertical (T) face coordinates respectively.\nEach component is in the interval [0.0, 1.0].\nTOUCH_INVALID_TEXCOORD is returned if the surface coordinates cannot be determined (e.g. when the viewer does not support this function).</string>
-   </map>
-   <key>llDetectedTouchUV</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Index</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>vector</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns a vector that is the texture coordinates for where the prim was touched.\nThe X and Y vector positions contain the U and V face coordinates respectively.\nTOUCH_INVALID_TEXCOORD is returned if the touch UV coordinates cannot be determined (e.g. when the viewer does not support this function).</string>
-   </map>
-   <key>llDetectedType</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Number</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>integer</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the type (AGENT, ACTIVE, PASSIVE, SCRIPTED) of detected object.\nReturns 0 if number is not a valid index.\nNote that number is a bit-field, so comparisons need to be a bitwise checked. e.g.:\ninteger iType = llDetectedType(0);\n{\n	// ...do stuff with the agent\n}</string>
-   </map>
-   <key>llDetectedVel</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Number</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>vector</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the velocity of the detected object Number.\nReturns&lt;0.0, 0.0, 0.0&gt; if Number is not a valid offset.</string>
-   </map>
-   <key>llDialog</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>AvatarID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-     <map>
-      <key>Text</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>Buttons</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-     <map>
-      <key>Channel</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.1</real>
-    <key>tooltip</key>
-    <string>Shows a dialog box on the avatar's screen with the message.\n
-				Up to 12 strings in the list form buttons.\n
-				If a button is clicked, the name is chatted on Channel.\nOpens a "notify box" in the given avatars screen displaying the message.\n
-			Up to twelve buttons can be specified in a list of strings. When the user clicks a button, the name of the button is said on the specified channel.\n
-			Channels work just like llSay(), so channel 0 can be heard by everyone.\n
-			The chat originates at the object's position, not the avatar's position, even though it is said as the avatar (uses avatar's UUID and Name etc.).\n
-			Examples:\n
-			llDialog(who, "Are you a boy or a girl?", [ "Boy", "Girl" ], -4913);\n
-			llDialog(who, "This shows only an OK button.", [], -192);\n
-			llDialog(who, "This chats so you can 'hear' it.", ["Hooray"], 0);</string>
-   </map>
-   <key>llDie</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>0.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Deletes the object.\nDelete the object which holds the script.</string>
-   </map>
-   <key>llDumpList2String</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Source</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-     <map>
-      <key>Separator</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>string</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the list as a single string, using Separator between the entries.\nWrite the list out as a single string, using Separator between values.</string>
-   </map>
-   <key>llEdgeOfWorld</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Position</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-     <map>
-      <key>Direction</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>integer</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Checks to see whether the border hit by Direction from Position is the edge of the world (has no neighboring region).\nReturns TRUE if the line along Direction from Position hits the edge of the world in the current simulator, returns FALSE if that edge crosses into another simulator.</string>
-   </map>
-   <key>llEjectFromLand</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>AvatarID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Ejects AvatarID from land that you own.\nEjects AvatarID from land that the object owner (group or resident) owns.</string>
-   </map>
-   <key>llEmail</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Address</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>Subject</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>Text</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>20.0</real>
-    <key>tooltip</key>
-    <string>Sends email to Address with Subject and Message.\nSends an email to Address with Subject and Message.</string>
-   </map>
-   <key>llEscapeURL</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>URL</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>string</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns an escaped/encoded version of url, replacing spaces with %20 etc.\nReturns the string that is the URL-escaped version of URL (replacing spaces with %20, etc.).\n
-			This function returns the UTF-8 encoded escape codes for selected characters.</string>
-   </map>
-   <key>llEuler2Rot</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Vector</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>rotation</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the rotation representation of the Euler angles.\nReturns the rotation represented by the Euler Angle.</string>
-   </map>
-   <key>llEvade</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>TargetID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-     <map>
-      <key>Options</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real/>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real/>
-    <key>tooltip</key>
-    <string>Evade a specified target.\nCharacters will (roughly) try to hide from their pursuers if there is a good hiding spot along their fleeing path. Hiding means no direct line of sight from the head of the character (centre of the top of its physics bounding box) to the head of its pursuer and no direct path between the two on the navigation-mesh.</string>
-   </map>
-   <key>llExecCharacterCmd</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Command</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>Options</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real/>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real/>
-    <key>tooltip</key>
-    <string>Execute a character command.\nSend a command to the path system.\n
-			Currently only supports stopping the current path-finding operation or causing the character to jump.</string>
-   </map>
-   <key>llFabs</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Value</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>float</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the positive version of Value.\nReturns the absolute value of Value.</string>
-   </map>
-   <key>llFleeFrom</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Source</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-     <map>
-      <key>Distance</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-     <map>
-      <key>Options</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real/>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real/>
-    <key>tooltip</key>
-    <string>Flee from a point.\nDirects a character (llCreateCharacter) to keep away from a defined position in the region or adjacent regions.</string>
-   </map>
-   <key>llFloor</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Value</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>integer</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns largest integer value &lt;= Value.</string>
-   </map>
-   <key>llForceMouselook</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Enable</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>If Enable is TRUE any avatar that sits on this object is forced into mouse-look mode.\nAfter calling this function with Enable set to TRUE, any agent sitting down on the prim will be forced into mouse-look.\n
-			Just like llSitTarget, this changes a permanent property of the prim (not the object) and needs to be reset by calling this function with Enable set to FALSE in order to disable it.</string>
-   </map>
-   <key>llFrand</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Magnitude</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>float</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns a pseudo random number in the range [0, Magnitude] or [Magnitude, 0].\nReturns a pseudo-random number between [0, Magnitude].</string>
-   </map>
-   <key>llGenerateKey</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>0</real>
-    <key>return</key>
-    <string>key</string>
-    <key>sleep</key>
-    <real>0</real>
-    <key>tooltip</key>
-    <string>Generates a key (SHA-1 hash) using UUID generation to create a unique key.\nAs the UUID produced is versioned, it should never return a value of NULL_KEY.\nThe specific UUID version is an implementation detail that has changed in the past and may change again in the future. Do not depend upon the UUID that is returned to be version 5 SHA-1 hash.</string>
-   </map>
-   <key>llGetAccel</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>vector</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the acceleration of the object relative to the region's axes.\nGets the acceleration of the object.</string>
-   </map>
-   <key>llGetAgentInfo</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>AvatarID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>integer</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns an integer bit-field containing the agent information about id.\n
-				Returns AGENT_FLYING, AGENT_ATTACHMENTS, AGENT_SCRIPTED, AGENT_SITTING, AGENT_ON_OBJECT, AGENT_MOUSELOOK, AGENT_AWAY, AGENT_BUSY, AGENT_TYPING, AGENT_CROUCHING, AGENT_ALWAYS_RUN, AGENT_WALKING and/or AGENT_IN_AIR.\nReturns information about the given agent ID as a bit-field of agent info constants.</string>
-   </map>
-   <key>llGetAgentLanguage</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>AvatarID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>string</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the language code of the preferred interface language of the avatar.\nReturns a string that is the language code of the preferred interface language of the resident.</string>
-   </map>
-   <key>llGetAgentList</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Scope</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>Options</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>list</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Requests a list of agents currently in the region, limited by the scope parameter.\nReturns a list [key UUID-0, key UUID-1, ..., key UUID-n] or [string error_msg] - returns avatar keys for all agents in the region limited to the area(s) specified by scope</string>
-   </map>
-   <key>llGetAgentSize</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>AvatarID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>vector</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>If the avatar is in the same region, returns the size of the bounding box of the requested avatar by id, otherwise returns ZERO_VECTOR.\nIf the agent is in the same region as the object, returns the size of the avatar.</string>
-   </map>
-   <key>llGetAlpha</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Face</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>float</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the alpha value of Face.\nReturns the 'alpha' of the given face. If face is ALL_SIDES the value returned is the mean average of all faces.</string>
-   </map>
-   <key>llGetAndResetTime</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>float</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the script time in seconds and then resets the script timer to zero.\nGets the time in seconds since starting and resets the time to zero.</string>
-   </map>
-   <key>llGetAnimation</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>AvatarID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>string</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the name of the currently playing locomotion animation for the avatar id.\nReturns the currently playing animation for the specified avatar ID.</string>
-   </map>
-   <key>llGetAnimationList</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>AvatarID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>list</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns a list of keys of playing animations for an avatar.\nReturns a list of keys of all playing animations for the specified avatar ID.</string>
-   </map>
-   <key>llGetAnimationOverride</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>AnimationState</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>0</real>
-    <key>return</key>
-    <string>string</string>
-    <key>sleep</key>
-    <real>0</real>
-    <key>tooltip</key>
-    <string>Returns a string that is the name of the animation that is used for the specified animation state\nTo use this function the script must obtain either the PERMISSION_OVERRIDE_ANIMATIONS or PERMISSION_TRIGGER_ANIMATION permission (automatically granted to attached objects).</string>
-   </map>
-   <key>llGetAttached</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>integer</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the object's attachment point, or 0 if not attached.\nReturns the object attachment point, or 0 if not attached.</string>
-   </map>
-   <key>llGetBoundingBox</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>ID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>list</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the bounding box around the object (including any linked prims) relative to its root prim, as a list in the format [ (vector) min_corner, (vector) max_corner ].\nReturns the bounding box around the object or avatar with the specified key (including any linked prims) relative to the\n
-			root prim, as a list: [ (vector) min_corner, (vector) max_corner ]</string>
-   </map>
-   <key>llGetCameraPos</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>vector</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the current camera position for the agent the task has permissions for.\nReturns the position of the camera, of the user that granted the script PERMISSION_TRACK_CAMERA. If no user has granted the permission, it returns ZERO_VECTOR.</string>
-   </map>
-   <key>llGetCameraRot</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>rotation</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the current camera orientation for the agent the task has permissions for.\nReturns the rotation of the camera, of the user who has granted this script PERMISSION_TRACK_CAMERA. If no user has granted the permission, it returns ZERO_ROTATION.\n
-			The key of the user whose camera is being tracked, can be obtained using llGetPermissionsKey.</string>
-   </map>
-   <key>llGetCenterOfMass</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>vector</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the prim's centre of mass (unless called from the root prim, where it returns the object's centre of mass).</string>
-   </map>
-   <key>llGetClosestNavPoint</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Point</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-     <map>
-      <key>Options</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real/>
-    <key>return</key>
-    <string>list</string>
-    <key>sleep</key>
-    <real/>
-    <key>tooltip</key>
-    <string>Get the closest navigable point to the point provided.\nThe function accepts a point in region-local space (like all the other path-finding methods) and returns either an empty list or a list containing a single vector which is the closest point on the navigation-mesh to the point provided.</string>
-   </map>
-   <key>llGetColor</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Face</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>vector</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the color on Face.\nReturns the colour of Face as a vector of red, green, and blue values between 0 and 1. If face is ALL_SIDES the colour returned is the mean average of each channel.</string>
-   </map>
-   <key>llGetCreator</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>key</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns a key for the creator of the prim.\nReturns the key of the object's original creator. Similar to llGetOwner.</string>
-   </map>
-   <key>llGetDate</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>string</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the current date in the UTC time zone in the format YYYY-MM-DD.\nReturns the current UTC date as YYYY-MM-DD.</string>
-   </map>
-   <key>llGetDisplayName</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>AvatarID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>string</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the name of an avatar, if the avatar is in the current region, and the name has been cached, otherwise the same as llGetUsername.	Use llRequestDisplayName if you absolutely must have the display name.\nReturns a string that is the non-unique display name of the avatar specified by AvatarID.\n
-			AvatarID must specify a valid avatar key, present in or otherwise known to the region in which the script is running, otherwise an empty string is returned.\n
-			This function will still return a valid display name if the avatar is a child agent of the region (i.e., in an adjacent region, but presently able to see into the one the script is in), or for a short period after the avatar leaves the region (specifically, when the client completely disconnects from the region, either as a main or child agent).</string>
-   </map>
-   <key>llGetEnergy</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>float</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns how much energy is in the object as a percentage of maximum.</string>
-   </map>
-   <key>llGetEnv</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>DataRequest</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>string</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns a string with the requested data about the region.</string>
-   </map>
-   <key>llGetForce</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>vector</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the force (if the script is physical).\nReturns the current force if the script is physical.</string>
-   </map>
-   <key>llGetFreeMemory</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>integer</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the number of free bytes of memory the script can use.\nReturns the available free space for the current script. This is inaccurate with LSO.</string>
-   </map>
-   <key>llGetFreeURLs</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>integer</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the number of available URLs for the current script.\nReturns an integer that is the number of available URLs.</string>
-   </map>
-   <key>llGetGeometricCenter</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>vector</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the geometric center of the linked set the script is attached to.\nReturns the geometric centre of the linked set the script is in relative to the object's position (the position of the root prim of a linked set).\n
-			To get the object's position, use llGetPos.</string>
-   </map>
-   <key>llGetGMTclock</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>float</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the time in seconds since midnight GMT.\nGets the time in seconds since midnight in GMT/UTC.</string>
-   </map>
-   <key>llGetHTTPHeader</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>HTTPRequestID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-     <map>
-      <key>Header</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>string</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the value for header for request_id.\nReturns a string that is the value of the Header for HTTPRequestID.</string>
-   </map>
-   <key>llGetInventoryCreator</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>InventoryItem</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>key</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns a key for the creator of the inventory item.\nThis function returns the UUID of the creator of item. If item is not found in inventory, the object says "No item named 'name'".</string>
-   </map>
-   <key>llGetInventoryKey</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>InventoryItem</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>key</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the key that is the UUID of the inventory named.\nReturns the key of the inventory named.</string>
-   </map>
-   <key>llGetInventoryName</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>InventoryType</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>Index</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>string</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the name of the inventory item number of a given type.\nGet the name of the inventory Index number of InventoryType.\n
-			Use the inventory constants INVENTORY_* to specify the type.</string>
-   </map>
-   <key>llGetInventoryNumber</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>InventoryType</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>integer</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the number of items of a given type (INVENTORY_* flag) in the prim's inventory.\nGet the number of items of InventoryType in the object inventory.\n
-			Use the inventory constants INVENTORY_* to specify the type.</string>
-   </map>
-   <key>llGetInventoryPermMask</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>InventoryItem</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>BitMask</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>integer</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the requested permission mask for the inventory item.\nReturns the requested permission mask for the inventory item defined by InventoryItem. If item is not in the object's inventory, llGetInventoryPermMask returns FALSE and causes the object to say "No item named '&lt;item&gt;'", where "&lt;item&gt;" is item.\n
-			If this is used to determine whether or not an inventory item exists within the object, it will have the side effect of spamming chat. So please don't ;-)</string>
-   </map>
-   <key>llGetInventoryType</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>InventoryItem</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>integer</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the type of the inventory item named.\nReturns the type of the inventory item named.\n
-			Remember, like all inventory functions, llGetInventoryType is case-sensitive.</string>
-   </map>
-   <key>llGetKey</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>key</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the key of the prim the script is attached to.\nGet the key for the object which has this script.</string>
-   </map>
-   <key>llGetLandOwnerAt</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Position</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>key</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the key of the land owner, returns NULL_KEY if public.\nReturns the key of the land owner at Position, or NULL_KEY if public.</string>
-   </map>
-   <key>llGetLinkKey</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>LinkNumber</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>key</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the key of the linked prim LinkNumber.\nReturns the key of LinkNumber in the link set.</string>
-   </map>
-   <key>llGetLinkMedia</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>LinkNumber</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>Face</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>Parameters</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>0.0</real>
-    <key>return</key>
-    <string>list</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Get the media parameters for a particular face on linked prim, given the desired list of parameter names. Returns a list of values in the order requested.	Returns an empty list if no media exists on the face.\nGet the desired list of named media parameters, for a particular face, of a linked prim.\n
-				Returns a list of values in the order requested.</string>
-   </map>
-   <key>llGetLinkName</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>LinkNumber</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>string</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the name of LinkNumber in a link set.\nReturns the name of LinkNumber the link set.</string>
-   </map>
-   <key>llGetLinkNumber</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>integer</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the link number of the prim containing the script (0 means not linked, 1 the prim is the root, 2 the prim is the first child, etc.).\nReturns the link number of the prim containing the script. 0 means no link, 1 the root, 2 for first child, etc.</string>
-   </map>
-   <key>llGetLinkNumberOfSides</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>LinkNumber</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>integer</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the number of sides of the specified linked prim.\nReturns an integer that is the number of faces (or sides) of the prim link.</string>
-   </map>
-   <key>llGetLinkPrimitiveParams</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>LinkNumber</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>Parameters</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>list</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Get primitive parameters for LinkNumber based on rules.\nIdentical to llGetPrimitiveParams except that it acts on the prim specified by the link number given.\n
-			Returns the list of primitive attributes requested in the Parameters list for link.\n
-			PRIM_* flags can be broken into three categories, face flags, prim flags, and object flags.\n
-			* Supplying a prim or object flag will return that flags attributes.\n
-			* Face flags require the user to also supply a side parameter.</string>
-   </map>
-   <key>llGetListEntryType</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>ListVariable</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-     <map>
-      <key>Index</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>integer</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the type of the index entry in the list (TYPE_INTEGER, TYPE_FLOAT, TYPE_STRING, TYPE_KEY, TYPE_VECTOR, TYPE_ROTATION, or TYPE_INVALID if index is off list).\nReturns the type of the variable at Index in ListVariable.</string>
-   </map>
-   <key>llGetListLength</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>ListVariable</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>integer</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the number of elements in the list.\nReturns the number of elements in ListVariable.</string>
-   </map>
-   <key>llGetLocalPos</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>vector</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the position relative to the root.\nReturns the local position of a child object relative to the root.</string>
-   </map>
-   <key>llGetLocalRot</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>rotation</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the rotation local to the root.\nReturns the local rotation of a child object relative to the root.</string>
-   </map>
-   <key>llGetMass</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>float</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the mass of object that the script is attached to.\nReturns the scripted object's mass. When called from a script in a link-set, the parent will return the sum of the link-set weights, while a child will return just its own mass. When called from a script inside an attachment, this function will return the mass of the avatar it's attached to, not its own.</string>
-   </map>
-   <key>llGetMassMKS</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real/>
-    <key>return</key>
-    <string>float</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Acts as llGetMass(), except that the units of the value returned are Kg.</string>
-   </map>
-   <key>llGetMaxScaleFactor</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>float</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns a float that is the largest scaling factor that can be used with llScaleByFactor to resize the object. This maximum is determined by the Linkability Rules and prim scale limits.</string>
-   </map>
-   <key>llGetMemoryLimit</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real/>
-    <key>return</key>
-    <string>integer</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Get the maximum memory a script can use, in bytes.\nGet the maximum memory a script can use.\n
-			Returns the integer amount of memory the script can use in bytes.</string>
-   </map>
-   <key>llGetMinScaleFactor</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>float</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns a float that is the smallest scaling factor that can be used with llScaleByFactor to resize the object. This minimum is determined by the prim scale limits.</string>
-   </map>
-   <key>llGetNextEmail</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Address</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>Subject</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Get the next waiting email with appropriate address and/or subject (if blank they are ignored).\nGet the next waiting email with appropriate address and/or subject.\n
-				If the parameters are blank, they are not used for filtering.</string>
-   </map>
-   <key>llGetNotecardLine</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>NotecardName</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>LineNumber</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>key</string>
-    <key>sleep</key>
-    <real>0.1</real>
-    <key>tooltip</key>
-    <string>Returns line from NotecardName via the dataserver event.\nThis function fetches LineNumber from NotecardName and returns the data through the dataserver event. The line count starts at zero.\n
-				If the requested line is passed the end of the note-card the dataserver event will return the constant EOF string.\n
-				The key returned by this function is a unique identifier which will be supplied to the dataserver event in the requested parameter.</string>
-   </map>
-   <key>llGetNumberOfNotecardLines</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>NotecardName</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>key</string>
-    <key>sleep</key>
-    <real>0.1</real>
-    <key>tooltip</key>
-    <string>Returns number of lines in NotecardName via the dataserver event (cast return value to integer).\nReturns the number of lines in the note-card sNotecardName via the dataserver event. (Cast the value returned by the dataserver to an integer.)\n
-			The key returned is a query ID for identifying the dataserver reply.</string>
-   </map>
-   <key>llGetNumberOfPrims</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>integer</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the number of prims in a link set the script is attached to.\nReturns the number of prims in (and avatars seated on) the object the script is in.</string>
-   </map>
-   <key>llGetNumberOfSides</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>integer</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the number of faces (or sides) of the prim.\nReturns the number of sides of the prim which has the script.</string>
-   </map>
-   <key>llGetObjectDesc</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>string</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the description of the prim the script is attached to.\nReturns the description of the scripted object/prim. You can set the description using llSetObjectDesc.</string>
-   </map>
-   <key>llGetObjectDetails</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>ID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-     <map>
-      <key>Parameters</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>list</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the object details specified in Parameters for the object with key ID.\n
-				Parameters are OBJECT_NAME, _DESC, _POS, _ROT, _VELOCITY, _OWNER, _GROUP, _CREATOR.\nReturns a list of the details specified in Parameters for the object with key ID.</string>
-   </map>
-   <key>llGetObjectMass</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>ID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>float</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the mass of the avatar or object in the region.\nGets the mass of the object or avatar corresponding to ID.</string>
-   </map>
-   <key>llGetObjectName</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>string</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the name of the prim which the script is attached to.\nReturns the name of the prim (not object) which contains the script.</string>
-   </map>
-   <key>llGetObjectPermMask</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>PermissionMask</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>integer</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the requested permission mask for the root object the task is attached to.</string>
-   </map>
-   <key>llGetObjectPrimCount</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>ObjectID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>integer</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the total number of prims for an object in the region.\nReturns the prim count for any object id in the same region.</string>
-   </map>
-   <key>llGetOmega</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>vector</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the rotation velocity in radians per second.\nReturns a vector that is the rotation velocity of the object in radians per second.</string>
-   </map>
-   <key>llGetOwner</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>key</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the object owner's UUID.\nReturns the key for the owner of the object.</string>
-   </map>
-   <key>llGetOwnerKey</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>ObjectID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>key</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the owner of ObjectID.\nReturns the key for the owner of object ObjectID.</string>
-   </map>
-   <key>llGetParcelDetails</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Position</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-     <map>
-      <key>ParcelDetails</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>list</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the parcel details specified in ParcelDetails for the parcel at Position.\n
- 				Parameters is one or more of: PARCEL_DETAILS_NAME, _DESC, _OWNER, _GROUP, _AREA, _ID, _SEE_AVATARS.\nReturns a list that is the parcel details specified in ParcelDetails (in the same order) for the parcel at Position.</string>
-   </map>
-   <key>llGetParcelFlags</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Position</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>integer</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns a mask of the parcel flags (PARCEL_FLAG_*) for the parcel that includes the point Position.\nReturns a bit-field specifying the parcel flags (PARCEL_FLAG_*) for the parcel at Position.</string>
-   </map>
-   <key>llGetParcelMaxPrims</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Position</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-     <map>
-      <key>SimWide</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>integer</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the maximum number of prims allowed on the parcel at Position.\nReturns an integer that is the maximum number of prims allowed on the parcel at Position.</string>
-   </map>
-   <key>llGetParcelMusicURL</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real/>
-    <key>return</key>
-    <string>string</string>
-    <key>sleep</key>
-    <real/>
-    <key>tooltip</key>
-    <string>Gets the streaming audio URL for the parcel object is on.\nReturns a string containing the parcel streaming audio URL.\n
-				The object owner, avatar or group, must also be the land owner.</string>
-   </map>
-   <key>llGetParcelPrimCount</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Position</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-     <map>
-      <key>Category</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>SimWide</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>integer</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the number of prims on the parcel at Position of the given category.
-				Categories: PARCEL_COUNT_TOTAL, _OWNER, _GROUP, _OTHER, _SELECTED, _TEMP.\nReturns the number of prims used on the parcel at Position which are in Category.\n
-				If SimWide is TRUE, it returns the number of objects for the entire region in the category specified.\n
-				If SimWide is FALSE, it returns the number of objects on this specific parcel in the category specified</string>
-   </map>
-   <key>llGetParcelPrimOwners</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Position</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>list</string>
-    <key>sleep</key>
-    <real>2.0</real>
-    <key>tooltip</key>
-    <string>Returns a list of all residents who own objects on the parcel at Position, with individual prim counts.
-				Requires owner-like permissions for the parcel.\nReturns a strided list of keys and integers of up to 100 agents who own objects in the parcel at Position.\n
-				The list is formatted as [ key agentKey1, integer agentCount1, key agentKey2, integer agentCount2, ... ], sorted by agent key.\n
-				The integers are counts of the number of prims (not objects) owned by the corresponding agents.\n
-				Only works when the object owner is in the region (likely the reason it doesn't work when deeded to group).</string>
-   </map>
-   <key>llGetPermissions</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>integer</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns an integer bit-field with the permissions that have been granted.\nReturns an integer bit-field with the script permissions granted. e.g.:\n
-				integer iPerms = llGetPermissions();\n
-				if (iPerms &amp; PERMISSION_DEBIT) {\n
-					llOwnerSay("Yay, I can steal your money!!");\n
-				} else {\n
-					llOwnerSay("Damn, your money is safe from me!");\n
-				}</string>
-   </map>
-   <key>llGetPermissionsKey</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>key</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the key of the avatar that last granted permissions to the script.\nReturns the key of the avatar that last granted or declined permissions to the script.\n
-				Returns NULL_KEY if permissions were never granted or declined.</string>
-   </map>
-   <key>llGetPhysicsMaterial</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real/>
-    <key>return</key>
-    <string>list</string>
-    <key>sleep</key>
-    <real/>
-    <key>tooltip</key>
-    <string>Returns a list of the form [float gravity_multiplier, float restitution, float friction, float density].</string>
-   </map>
-   <key>llGetPos</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>vector</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the position of the task in region coordinates.\nReturns the vector position of the task in region coordinates.</string>
-   </map>
-   <key>llGetPrimitiveParams</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Parameters</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>list</string>
-    <key>sleep</key>
-    <real>0.2</real>
-    <key>tooltip</key>
-    <string>Returns the primitive parameters specified in the parameters list.\nReturns primitive parameters specified in the Parameters list.</string>
-   </map>
-   <key>llGetPrimMediaParams</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Face</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>Parameters</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>list</string>
-    <key>sleep</key>
-    <real>0.1</real>
-    <key>tooltip</key>
-    <string>Returns the media parameters for a particular face on an object, given the desired list of parameter names, in the order requested. Returns an empty list if no media exists on the face.\nGet the media parameters for a particular face on an object, given the desired list of Parameters.\n
-				Returns a list of values in the order requested.\n
-				Returns an empty list if no media exists on the face.</string>
-   </map>
-   <key>llGetRegionAgentCount</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>integer</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the number of avatars in the region.\nReturns an integer that is the number of avatars in the region.</string>
-   </map>
-   <key>llGetRegionCorner</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>vector</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns a vector, in meters, that is the global location of the south-west corner of the region which the object is in.\nReturns the Region-Corner of the simulator containing the task. The region-corner is a vector (values in meters) representing distance from the first region.</string>
-   </map>
-   <key>llGetRegionFlags</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>integer</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the region flags (REGION_FLAG_*) for the region the object is in.\nReturns a bit-field specifying the region flags (REGION_FLAG_*) for the region the object is in.</string>
-   </map>
-   <key>llGetRegionFPS</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the mean region frames per second.</string>
-   </map>
-   <key>llGetRegionName</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>string</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the current region name.</string>
-   </map>
-   <key>llGetRegionTimeDilation</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>float</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the current time dilation as a float between 0.0 (full dilation) and 1.0 (no dilation).\nReturns the current time dilation as a float between 0.0 and 1.0.</string>
-   </map>
-   <key>llGetRootPosition</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>vector</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the position (in region coordinates) of the root prim of the object which the script is attached to.\nGets the position (in region coordinates) of the root/parent prim of the object containing the script.\n
-			This is used to allow a child prim to determine where the root is.</string>
-   </map>
-   <key>llGetRootRotation</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>rotation</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the rotation (relative to the region) of the root prim of the object which the script is attached to.\nGets the global rotation of the root object of the object script is attached to.</string>
-   </map>
-   <key>llGetRot</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>rotation</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the rotation relative to the region's axes.\nReturns the rotation.</string>
-   </map>
-   <key>llGetScale</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>vector</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the scale of the prim.\nReturns a vector that is the scale (dimensions) of the prim.</string>
-   </map>
-   <key>llGetScriptName</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>string</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the name of the script that this function is used in.\nReturns the name of this script.</string>
-   </map>
-   <key>llGetScriptState</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>ScriptName</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>integer</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns TRUE if the script named is running.\nReturns TRUE if ScriptName is running.</string>
-   </map>
-   <key>llGetSimStats</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>StatType</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>0</real>
-    <key>return</key>
-    <string>float</string>
-    <key>sleep</key>
-    <real>0</real>
-    <key>tooltip</key>
-    <string>Returns a float that is the requested statistic.</string>
-   </map>
-   <key>llGetSimulatorHostname</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>string</string>
-    <key>sleep</key>
-    <real>10.0</real>
-    <key>tooltip</key>
-    <string>Returns the host-name of the machine which the script is running on (same as string in viewer Help dialog).\nReturns the host name (server) of the region in which the scripted object is located.\n
-			For example, "sim225.agni.lindenlab.com".</string>
-   </map>
-   <key>llGetSPMaxMemory</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real/>
-    <key>return</key>
-    <string>integer</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the maximum used memory for the current script. Only valid after using PROFILE_SCRIPT_MEMORY. Non-mono scripts always use 16k.\nReturns the integer of the most bytes used while llScriptProfiler was last active.</string>
-   </map>
-   <key>llGetStartParameter</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>integer</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns an integer that is the script start parameter.\nReturns the start parameter passed to llRezObject.\n
-			If the object was created from agent inventory, this function returns 0.</string>
-   </map>
-   <key>llGetStaticPath</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Start</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-     <map>
-      <key>End</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-     <map>
-      <key>Radius</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-     <map>
-      <key>Parameters</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>list</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string/>
-   </map>
-   <key>llGetStatus</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>StatusFlag</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>integer</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns value of status (STATUS_PHYSICS, STATUS_PHANTOM, STATUS_BLOCK_GRAB, STATUS_ROTATE_X, STATUS_ROTATE_Y, and/or STATUS_ROTATE_Z).\nReturns the value of specified status.</string>
-   </map>
-   <key>llGetSubString</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>String</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>Start</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>End</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>string</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the indicated substring.\nReturns the indicated sub-string from String. The Start and End are inclusive.\n
-				Using negative numbers for Start and/or End causes the index to count backwards from the length of the string, so 0, -1 would capture the entire string.\n
-				If start is larger than end, the sub string is the exclusion of the entries, so 6, 4 would give the entire string except for the 5th. character.</string>
-   </map>
-   <key>llGetSunDirection</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>vector</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns a normalized vector of the direction of the sun in the region.\nReturns the sun's direction on the simulator.</string>
-   </map>
-   <key>llGetTexture</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Face</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>string</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns a string that is the texture on face (the inventory name if it is a texture in the prim's inventory, otherwise the key).\nReturns the texture of a face, if it is found in object inventory, its key otherwise.</string>
-   </map>
-   <key>llGetTextureOffset</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Face</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>vector</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the texture offset of face in the x and y components of a vector.</string>
-   </map>
-   <key>llGetTextureRot</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Face</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>float</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the texture rotation of side.</string>
-   </map>
-   <key>llGetTextureScale</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Face</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>vector</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the texture scale of side in the x and y components of a vector.\nReturns the texture scale of a side in the x and y components of a vector.</string>
-   </map>
-   <key>llGetTime</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>float</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the time in seconds since the last region reset, script reset, or call to either llResetTime or llGetAndResetTime.</string>
-   </map>
-   <key>llGetTimeOfDay</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>float</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the time in seconds since [SECOND_LIFE] server midnight or since region up-time, whichever is smaller.\nGets the time in seconds since midnight in Second Life.</string>
-   </map>
-   <key>llGetTimestamp</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>string</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns a time-stamp (UTC time zone) in the format: YYYY-MM-DDThh:mm:ss.ff..fZ.\nReturns the current time-and-date (a time-stamp) in the format YYYY-MM-DDThh:mm:ss.ff..fZ, for example: 2004-08-27T00:56:21.785886Z\n
-				The letter Z is the zone designator for the zero UTC offset, and is why UTC is sometimes referred to as Zulu time (Zulu being the name of Z in the phonetic alphabet. T is just a separator between date and time.</string>
-   </map>
-   <key>llGetTorque</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>vector</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the torque (if the script is physical).\nReturns a vector that is the torque (if the script is physical).</string>
-   </map>
-   <key>llGetUnixTime</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>integer</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the number of seconds elapsed since 00:00 hours, Jan 1, 1970 UTC from the system clock.\nReturns the number of seconds elapsed since 00:00 hours, Jan 1, 1970 UTC from the system clock.\n
-				In UNIX terms, time_t. This is great for a monotonic source of time that ticks once a second.</string>
-   </map>
-   <key>llGetUsedMemory</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>integer</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the current used memory for the current script. Non-mono scripts always use 16K.\nReturns the integer of the number of bytes of memory currently in use by the script. Non-mono scripts always use 16K.</string>
-   </map>
-   <key>llGetUsername</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>AvatarID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>string</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the single-word user-name of an avatar, if the avatar is in the current region, otherwise the empty string.\nReturns a string that is the unique user-name of the avatar specified.\n
-				AvatarID must specify a valid avatar key present in, or otherwise known to, the region in which the script is running, otherwise an empty string is returned. This function will still return a valid user-name if the avatar is a child agent of the region (i.e., in an adjacent region, but presently able to see into the one the script is in), or for a short period after the avatar leaves the region (specifically, when the client completely disconnects from the region, either as a main or child agent).</string>
-   </map>
-   <key>llGetVel</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>vector</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the velocity of the object.\nReturns a vector that is the velocity of the object.</string>
-   </map>
-   <key>llGetWallclock</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>float</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the time in seconds since midnight California Pacific time (PST/PDT).\nReturns the time in seconds since simulator's time-zone midnight (Pacific Time).</string>
-   </map>
-   <key>llGiveInventory</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>TargetID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-     <map>
-      <key>InventoryItem</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Give InventoryItem to destination represented by TargetID.\nGive the named inventory item to the avatar or object in the same simulator as the giver.\n
-			If the recipient is an avatar, the avatar then follows the normal procedure of accepting or denying the offer. If the recipient is an object, the same permissions apply as if you were dragging inventory onto the object by hand, i.e. if llAllowInventoryDrop has been called with TRUE, any other object can pass objects to its inventory.</string>
-   </map>
-   <key>llGiveInventoryList</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>TargetID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-     <map>
-      <key>FolderName</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>InventoryItems</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>3.0</real>
-    <key>tooltip</key>
-    <string>Give InventoryItems to destination (represented by TargetID) as a new folder of items.\nGive the list of named inventory items to the keyed avatar or object in the same simulator as the giver.\n
-			If the recipient is an avatar, the avatar then follows the normal procedure of accepting or denying the offer. The offered inventory is then placed in a folder named category in the recipients inventory.\n
-			If the recipient is an object, the same permissions apply as if you were dragging inventory onto the object by hand, i.e. if llAllowInventoryDrop has been called with TRUE, any other object can pass objects to its inventory. If the recipient is an object, the sFolderName parameter is ignored.</string>
-   </map>
-   <key>llGiveMoney</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>AvatarID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-     <map>
-      <key>Amount</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Transfers Amount of L from script owner to AvatarID.\nTransfer Amount from the script owner to AvatarID.\n
-				This call will (silently) fail if PERMISSION_DEBIT has not been set.</string>
-   </map>
-   <key>llGodLikeRezObject</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>InventoryItemID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-     <map>
-      <key>Position</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>god-mode</key>
-    <boolean>true</boolean>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Rez directly off of a UUID if owner has dog-bit set.</string>
-   </map>
-   <key>llGround</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Offset</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>float</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the ground height at the object position + offset.\nReturns the ground height at the object's position + Offset.</string>
-   </map>
-   <key>llGroundContour</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Offset</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>vector</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the ground contour direction below the object position + Offset.\nReturns the ground contour at the object's position + Offset.</string>
-   </map>
-   <key>llGroundNormal</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Offset</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>vector</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the ground normal below the object position + offset.\nReturns the ground contour at the object's position + Offset.</string>
-   </map>
-   <key>llGroundRepel</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Height</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-     <map>
-      <key>Water</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>Tau</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Critically damps to height if within height * 0.5 of level (either above ground level or above the higher of land and water if water == TRUE).\nCritically damps to fHeight if within fHeight * 0.5 of ground or water level.\n
-				The height is above ground level if iWater is FALSE or above the higher of land and water if iWater is TRUE.\n
-				Do not use with vehicles. Only works in physics-enabled objects.</string>
-   </map>
-   <key>llGroundSlope</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Offset</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>vector</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the ground slope below the object position + Offset.\nReturns the ground slope at the object position + Offset.</string>
-   </map>
-   <key>llHTTPRequest</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>URL</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>Parameters</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-     <map>
-      <key>Body</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>key</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Sends an HTTP request to the specified URL with the Body of the request and Parameters.\nSends an HTTP request to URL with the specified body and parameters.\n
-				Returns a key that is a handle identifying the HTTP request made.</string>
-   </map>
-   <key>llHTTPResponse</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>HTTPRequestID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-     <map>
-      <key>Status</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>Body</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Responds to HTTPRequestID with Status and Body.\nResponds to HTTPRequestID with Status code and Body.</string>
-   </map>
-   <key>llInsertString</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>TargetVariable</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>Position</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>SourceVariable</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>string</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Inserts SourceVariable into TargetVariable at Position, and returns the result.\nInserts SourceVariable into TargetVariable at Position and returns the result. Note this does not alter TargetVariable.</string>
-   </map>
-   <key>llInstantMessage</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>AvatarID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-     <map>
-      <key>Text</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>2.0</real>
-    <key>tooltip</key>
-    <string>IMs Text to the user identified.\nSend Text to the user as an instant message.</string>
-   </map>
-   <key>llIntegerToBase64</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Value</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>string</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns a string that is a Base64 big endian encode of Value.\nEncodes the Value as an 8-character Base64 string.</string>
-   </map>
-   <key>llJson2List</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>JSON</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>0.0</real>
-    <key>return</key>
-    <string>list</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Converts the top level of the JSON string to a list.</string>
-   </map>
-   <key>llJsonGetValue</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>JSON</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>Specifiers</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>0.0</real>
-    <key>return</key>
-    <string>string</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Gets the value indicated by Specifiers from the JSON string.</string>
-   </map>
-   <key>llJsonSetValue</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>JSON</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>Specifiers</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-     <map>
-      <key>Value</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>0.0</real>
-    <key>return</key>
-    <string>string</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns a new JSON string that is the JSON given with the Value indicated by Specifiers set to Value.</string>
-   </map>
-   <key>llJsonValueType</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>JSON</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>Specifiers</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>0.0</real>
-    <key>return</key>
-    <string>string</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the type constant (JSON_*) for the value in JSON indicated by Specifiers.</string>
-   </map>
-   <key>llKey2Name</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>ID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>string</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the name of the prim or avatar specified by ID. The ID must be a valid rezzed prim or avatar key in the current simulator, otherwise an empty string is returned.\nReturns the name of a rezzed prim or avatar, present in or otherwise known, to the region in which the script is running. If the key is invalid (not in region, or not a prim or avatar's key), returns an empty string.</string>
-   </map>
-   <key>llLinkParticleSystem</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>LinkNumber</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>Rules</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Creates a particle system based on Rules. An empty list removes a particle system from object.\n
-				List format is [ rule-1, data-1, rule-2, data-2 ... rule-n, data-n ].\nA particle system defined by a list of rules is set for the prim(s) link. This is identical to llParticleSystem except that it applies to a specified linked prim and not just the prim the script is in.</string>
-   </map>
-   <key>llLinkSitTarget</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>LinkNumber</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>Offset</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-     <map>
-      <key>Rotation</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>rotation</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Set the sit location for the linked prim(s). If Offset == &lt;0,0,0&gt; clear it.\nSet the sit location for the linked prim(s). The sit location is relative to the prim's position and rotation.</string>
-   </map>
-   <key>llList2CSV</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>ListVariable</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>string</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Creates a string of comma separated values from the list.\nCreate a string of comma separated values from the specified list.</string>
-   </map>
-   <key>llList2Float</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>ListVariable</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-     <map>
-      <key>Index</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>float</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Copies the float at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to a float, then zero is returned.</string>
-   </map>
-   <key>llList2Integer</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>ListVariable</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-     <map>
-      <key>Index</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>integer</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Copies the integer at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to an integer, then zero is returned.</string>
-   </map>
-   <key>llList2Json</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>JsonType</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>Values</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>0</real>
-    <key>return</key>
-    <string>string</string>
-    <key>sleep</key>
-    <real>0</real>
-    <key>tooltip</key>
-    <string>Converts either a strided list of key:value pairs to a JSON_OBJECT, or a list of values to a JSON_ARRAY.</string>
-   </map>
-   <key>llList2Key</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>ListVariable</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-     <map>
-      <key>Index</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>key</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Copies the key at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to a key, then null string is returned.</string>
-   </map>
-   <key>llList2List</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>ListVariable</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-     <map>
-      <key>Start</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>End</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>list</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Copies the slice of the list from Start to End.\nReturns the slice of the list from start to end from the list as a new list. The start and end parameters are inclusive.\n
-				Using negative numbers for start and/or end causes the index to count backwards from the length of the list, so 0, -1 would capture the entire list.\n
-				If start is larger than end the list returned is the exclusion of the entries, so 6, 4 would give the entire list except for the 5th. entry.</string>
-   </map>
-   <key>llList2ListStrided</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>ListVariable</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-     <map>
-      <key>Start</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>End</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>Stride</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>list</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Copies the strided slice of the list from Start to End.\nReturns a copy of the strided slice of the specified list from Start to End.</string>
-   </map>
-   <key>llList2Rot</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>ListVariable</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-     <map>
-      <key>Index</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>rotation</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Copies the rotation at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to rotation, thenZERO_ROTATION is returned.</string>
-   </map>
-   <key>llList2String</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>ListVariable</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-     <map>
-      <key>Index</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>string</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Copies the string at Index in the list.\nReturns the value at Index in the specified list as a string. If Index describes a location not in the list then null string is returned.</string>
-   </map>
-   <key>llList2Vector</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>ListVariable</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-     <map>
-      <key>Index</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>vector</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Copies the vector at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to a vector, then ZERO_VECTOR is returned.</string>
-   </map>
-   <key>llListen</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Channel</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>SpeakersName</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>SpeakersID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-     <map>
-      <key>Text</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>integer</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Sets a callback for Text on Channel from SpeakersName and SpeakersID (SpeakersName, SpeakersID, and/or Text can be empty) and returns an identifier that can be used to deactivate or remove the listen.\nSets a listen event callback on the specified channel. Specifying values for speakername, speakerID, and message will filter the results accordingly, which is advisable or your listen event will respond to every thing said on the channel potentially causing a great deal of lag.\n
-				Returns an identifier that can be used to deactivate or remove the listen. The name, id and/or msg parameters\n
-				Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 to 2,147,483,648 are hidden channels that are not sent to avatars.</string>
-   </map>
-   <key>llListenControl</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>ChannelHandle</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>Active</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Makes a listen event callback active or inactive.\nMake a listen event callback active or inactive. Pass in the value returned from llListen to the iChannelHandle parameter to specify which event you are controlling.\n
-				Use boolean values to specify Active</string>
-   </map>
-   <key>llListenRemove</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>ChannelHandle</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Removes listen event callback number.\nRemoves a listen event callback. Pass in the value returned from llListen to the iChannelHandle parameter to specify which event to remove.</string>
-   </map>
-   <key>llListFindList</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>ListVariable</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-     <map>
-      <key>Find</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>integer</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the index of the first instance of Find in ListVariable. Returns -1 if not found.\nReturns the position of the first instance of the Find list in the ListVariable. Returns -1 if not found.</string>
-   </map>
-   <key>llListInsertList</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Target</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-     <map>
-      <key>ListVariable</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-     <map>
-      <key>Position</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>list</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns a list that contains all the elements from Target but with the elements from ListVariable inserted at Position start.\nReturns a new list, created by inserting ListVariable into the Target list at Position. Note this does not alter the Target.</string>
-   </map>
-   <key>llListRandomize</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>ListVariable</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-     <map>
-      <key>Stride</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>list</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns a randomized list of blocks of size Stride.\nReturns the specified list randomized into blocks of size stride.\n
-				If the remainder from the length of the list, divided by the stride is non-zero, this function does not randomize the list.</string>
-   </map>
-   <key>llListReplaceList</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Target</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-     <map>
-      <key>ListVariable</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-     <map>
-      <key>Start</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>End</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>list</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns a list that is Target with Start through End removed and ListVariable inserted at Start.\nReturns a list replacing the slice of the Target list from Start to End with the specified ListVariable. Start and End are inclusive, so 0, 1 would replace the first two entries and 0, 0 would replace only the first list entry.</string>
-   </map>
-   <key>llListSort</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>ListVariable</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-     <map>
-      <key>Stride</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>Ascending</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>list</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Sorts the list into blocks of stride, in Ascending order if Ascending == TRUE. The sort order is affected by type.\nReturns the specified list, sorted into blocks of stride in ascending order (if Ascending is TRUE, otherwise descending). Note that sort only works if the first entry of each block is the same type.</string>
-   </map>
-   <key>llListStatistics</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Operation</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>ListVariable</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>float</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Performs statistical aggregate functions on ListVariable using LIST_STAT_* Operations.\nThis function allows a script to perform a statistical operation as defined by operation on a list composed of integers and floats.</string>
-   </map>
-   <key>llLoadURL</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>AvatarID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-     <map>
-      <key>Text</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>URL</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>10.0</real>
-    <key>tooltip</key>
-    <string>Shows dialog to avatar AvatarID offering to load web page at URL.	If user clicks yes, launches their web browser.\nllLoadURL displays a dialogue box to the user, offering to load the specified web page using the default web browser.</string>
-   </map>
-   <key>llLog</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Value</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>float</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the natural logarithm of Value. Returns zero if Value &lt;= 0.\nReturns the base e (natural) logarithm of the specified Value.</string>
-   </map>
-   <key>llLog10</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Value</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>float</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the base 10 logarithm of Value. Returns zero if Value &lt;= 0.\nReturns the base 10 (common) logarithm of the specified Value.</string>
-   </map>
-   <key>llLookAt</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Target</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-     <map>
-      <key>Strength</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-     <map>
-      <key>Damping</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Cause object name to point it's forward axis towards Target.\nCause object to point the forward axis toward Target.\n
-				Good Strength values are around half the mass of the object and good Damping values are less than 1/10th of the Strength.\n
-				Asymmetrical shapes require smaller Damping. A Strength of 0.0 cancels the look at.</string>
-   </map>
-   <key>llLoopSound</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Sound</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>Volume</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Plays attached Sound, looping indefinitely, at Volume (0.0 - 1.0).\nSimilar to llPlaySound, this function plays a sound attached to an object, but will continuously repeat that sound until llStopSound or llPlaySound is called.\n
-			Only one sound may be attached to an object at a time. A second call to llLoopSound with the same key will not restart the sound, but the new volume will be used. This allows control over the volume of already playing sounds.\n
-			Setting the volume to 0 is not the same as calling llStopSound; a sound with 0 volume will continue to loop.\n
-			To restart the sound from the beginning, call llStopSound before calling llLoopSound again.</string>
-   </map>
-   <key>llLoopSoundMaster</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Sound</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>Volume</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Plays attached Sound, looping at volume (0.0 - 1.0), and declares it a sync master.\nBehaviour is identical to llLoopSound, with the addition of marking the source as a "Sync Master", causing "Slave" sounds to sync to it. If there are multiple masters within a viewers interest area, the most audible one (a function of both distance and volume) will win out as the master.\n
-				The use of multiple masters within a small area is unlikely to produce the desired effect.</string>
-   </map>
-   <key>llLoopSoundSlave</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Sound</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>Volume</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Plays attached sound looping at volume (0.0 - 1.0), synced to most audible sync master.\nBehaviour is identical to llLoopSound, unless there is a "Sync Master" present.\n
-				If a Sync Master is already playing the Slave sound will begin playing from the same point the master is in its loop synchronizing the loop points of both sounds.\n
-				If a Sync Master is started when the Slave is already playing, the Slave will skip to the correct position to sync with the Master.</string>
-   </map>
-   <key>llMakeExplosion</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Particles</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>Scale</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-     <map>
-      <key>Velocity</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-     <map>
-      <key>Lifetime</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-     <map>
-      <key>Arc</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-     <map>
-      <key>Texture</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>Offset</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-    </array>
-    <key>deprecated</key>
-    <boolean>true</boolean>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.1</real>
-    <key>tooltip</key>
-    <string>Make a round explosion of particles. Deprecated: Use llParticleSystem instead.\nMake a round explosion of particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.</string>
-   </map>
-   <key>llMakeFire</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Particles</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>Scale</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-     <map>
-      <key>Velocity</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-     <map>
-      <key>Lifetime</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-     <map>
-      <key>Arc</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-     <map>
-      <key>Texture</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>Offset</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-    </array>
-    <key>deprecated</key>
-    <boolean>true</boolean>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.1</real>
-    <key>tooltip</key>
-    <string>Make fire like particles. Deprecated: Use llParticleSystem instead.\nMake fire particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.</string>
-   </map>
-   <key>llMakeFountain</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Particles</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>Scale</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-     <map>
-      <key>Velocity</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-     <map>
-      <key>Lifetime</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-     <map>
-      <key>Arc</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-     <map>
-      <key>Texture</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>Offset</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-    </array>
-    <key>deprecated</key>
-    <boolean>true</boolean>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.1</real>
-    <key>tooltip</key>
-    <string>Make a fountain of particles. Deprecated: Use llParticleSystem instead.\nMake a fountain of particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.</string>
-   </map>
-   <key>llMakeSmoke</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Particles</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>Scale</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-     <map>
-      <key>Velocity</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-     <map>
-      <key>Lifetime</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-     <map>
-      <key>Arc</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-     <map>
-      <key>Texture</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>Offset</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-    </array>
-    <key>deprecated</key>
-    <boolean>true</boolean>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.1</real>
-    <key>tooltip</key>
-    <string>Make smoke like particles. Deprecated: Use llParticleSystem instead.\nMake smoky particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.</string>
-   </map>
-   <key>llManageEstateAccess</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Action</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>AvatarID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real/>
-    <key>return</key>
-    <string>integer</string>
-    <key>sleep</key>
-    <real/>
-    <key>tooltip</key>
-    <string>Use to add or remove agents from the estate's agent access or ban lists or groups from the estate's group access list.\nUse to add or remove agents from the estate's agent access or ban lists or groups from the estate's group access list.\n
-			Returns an integer representing a boolean, TRUE if the call was successful; FALSE if throttled, invalid action, invalid or null id or object owner is not allowed to manage the estate.</string>
-   </map>
-   <key>llMapDestination</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>RegionName</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>Position</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-     <map>
-      <key>Direction</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>1.0</real>
-    <key>tooltip</key>
-    <string>Opens world map centred on region with Position highlighted. Only works for scripts attached to avatar, or during touch events. NOTE: Direction currently does nothing.\nShows a given location on the map, opening the map window whenever it is called.\n
-				There is no way to simply set the map position without opening the window.\n
-				Only works in attachments, or during touch events.</string>
-   </map>
-   <key>llMD5String</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Text</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>Nonce</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>string</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns a string of 32 hex characters that is an RSA Data Security Inc., MD5 Message-Digest Algorithm of Text with Nonce.\nPerforms an RSA Data Security, Inc. MD5 Message-Digest Algorithm on the specified string using the nonce (also known as salt).\n
-				Returns a 32-character hex string. (128-bit in binary.)</string>
-   </map>
-   <key>llMessageLinked</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>LinkNumber</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>Number</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>Text</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>ID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Sends Number, Text, and ID to members of the link set identified by LinkNumber (LINK_ROOT sends to root task in a linked set, LINK_SET sends to all tasks, LINK_ALL_OTHERS to all other tasks, LINK_ALL_CHILDREN to all children, LINK_THIS to the task the script it is in).\nSends the specified number, string, and key to members of the link set.\n
-				The LinkNumber parameter is either a linked number available through llGetLinkNumber or a LINK_* constant.</string>
-   </map>
-   <key>llMinEventDelay</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Delay</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Set the minimum time between events being handled.</string>
-   </map>
-   <key>llModifyLand</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Action</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>Area</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Modify land with action (LAND_LEVEL, LAND_RAISE, LAND_LOWER, LAND_SMOOTH, LAND_NOISE, LAND_REVERT) on size (LAND_SMALL_BRUSH, LAND_MEDIUM_BRUSH, LAND_LARGE_BRUSH).\nModify land with action on size area. The parameters can be chosen from the land constants.</string>
-   </map>
-   <key>llModPow</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Value</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>Power</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>Modulus</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>integer</string>
-    <key>sleep</key>
-    <real>1.0</real>
-    <key>tooltip</key>
-    <string>Returns a Value raised to the Power, mod Modulus. ((a**b)%c) b is capped at 0xFFFF (16 bits).\nReturns (Value ^ Power) % Modulus. (Value raised to the Power, Modulus). Value is capped at 0xFFFF (16 bits).</string>
-   </map>
-   <key>llMoveToTarget</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Target</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-     <map>
-      <key>Tau</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Critically damp to Target in Tau seconds (if the script is physical).\nCritically damp to position target in tau-seconds if the script is physical. Good tau-values are greater than 0.2. A tau of 0.0 stops the critical damping.</string>
-   </map>
-   <key>llNavigateTo</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Location</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-     <map>
-      <key>Options</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real/>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real/>
-    <key>tooltip</key>
-    <string>Navigate to destination.\nDirects an object to travel to a defined position in the region or adjacent regions.</string>
-   </map>
-   <key>llOffsetTexture</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>OffsetS</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-     <map>
-      <key>OffsetT</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-     <map>
-      <key>Face</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.2</real>
-    <key>tooltip</key>
-    <string>Sets the texture S and T offsets for the chosen Face.\nSets the texture s and t offsets of face.\n
-			If Face is ALL_SIDES this function sets the texture offsets for all faces.</string>
-   </map>
-   <key>llOpenRemoteDataChannel</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>deprecated</key>
-    <boolean>true</boolean>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>1.0</real>
-    <key>tooltip</key>
-    <string>Requests a channel to listen for XML-RPC calls. Will trigger a remote_data event with channel ID once it is available.\nRequests a channel to listen for XML-RPC calls. (Deprecated: XML-RPC should not be used. Use http-in instead.)\n
-				Will trigger a remote_data event with type = REMOTE_DATA_CHANNEL and a channel ID (key) once it is available.\n
-				This channel ID must be referenced in the XML-RPC call to the script (from the internet) -- so the key must somehow get to the scripter's XML-RPC client, most often via llEmail, llHttpRequest or llLoadUrl.</string>
-   </map>
-   <key>llOverMyLand</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>ID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>integer</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns TRUE if id ID over land owned by the script owner, otherwise FALSE.\nReturns TRUE if key ID is over land owned by the object owner, FALSE otherwise.</string>
-   </map>
-   <key>llOwnerSay</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Text</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>says Text to owner only (if owner is in region).\nSays Text to the owner of the object running the script, if the owner has been within the object's simulator since logging into Second Life, regardless of where they may be in-world.</string>
-   </map>
-   <key>llParcelMediaCommandList</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>CommandList</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>2.0</real>
-    <key>tooltip</key>
-    <string>Sends a list of commands, some with arguments, to a parcel.\nControls the playback of multimedia resources on a parcel or for an agent.</string>
-   </map>
-   <key>llParcelMediaQuery</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>QueryList</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>list</string>
-    <key>sleep</key>
-    <real>2.0</real>
-    <key>tooltip</key>
-    <string>Returns a list containing results of the sent query.\nQueries the texture and/or URL for QuickTime-playable video on the land parcel.\n
-				This function will only work if the script is contained within an object owned by the land-owner (or if the land is owned by a group, only if the object has been deeded to the group). It will not work for group land if the object owner is a member of the group. The object actually has to be owned by the group.</string>
-   </map>
-   <key>llParseString2List</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Text</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>Separators</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-     <map>
-      <key>Spacers</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>list</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Breaks Text into a list, discarding Separators, keeping Spacers (Separators and Spacers must be lists of strings, maximum of 8 each).\nBreaks the Text into a list using Separators and Spacers to delimit entries. Separators are discarded, while Spacers are kept. Any empty entries are ignored.\n
-				The separators and spacers must be lists of strings with a maximum of 8 entries each. So, if you had made the call:\n
-				llParseString2List("Parsethisnow! I dare:you to.", ["this", "!", " "], [":"]);\n
-				You would get the list: ["Parse", "now", "I", "dare", ":", "you", "to"].</string>
-   </map>
-   <key>llParseStringKeepNulls</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Text</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>Separators</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-     <map>
-      <key>Spacers</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>list</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Breaks Text into a list, discarding separators, keeping spacers, keeping any null values generated. (separators and spacers must be lists of strings, maximum of 8 each).\nllParseStringKeepNulls works almost exactly like llParseString2List, except that if a null is found it will add a null-string instead of discarding it like llParseString2List does.</string>
-   </map>
-   <key>llParticleSystem</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Parameters</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Creates a particle system based on Parameters.	An empty list removes particle system from object.
-				List format is [ rule-1, data-1, rule-2, data-2 . . . rule-n, data-n ].\nMakes a particle system based on the parameter list.\n
-				The parameters are specified as an ordered list of parameter and value. Valid parameters and their expected values can be found in the particle system constants.\n
-				Here is a simple example:\n
-				llParticleSystem([PSYS_PART_FLAGS, PSYS_PART_WIND_MASK, PSYS_PART_START_COLOR, &lt;1, 0, 0&gt;, PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_EXPLODE]);</string>
-   </map>
-   <key>llPassCollisions</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Pass</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>If Pass == TRUE, collisions are passed from children on to parents (default is FALSE).\nIf pass is TRUE, land and object collisions are passed from children on to parents.\n
-				The default is FALSE if there is no script to handle the collision events.</string>
-   </map>
-   <key>llPassTouches</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Pass</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>If pass == TRUE, touches are passed from children on to parents (default is FALSE).\nIf pass is TRUE, touches are passed from children on to parents.\n
-				The default is TRUE if there is no script to handle the touch events.</string>
-   </map>
-   <key>llPatrolPoints</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Points</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-     <map>
-      <key>Options</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real/>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real/>
-    <key>tooltip</key>
-    <string>Patrol a list of points.\nSets the points for a character (llCreateCharacter) to patrol along.</string>
-   </map>
-   <key>llPlaySound</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Sound</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>Volume</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Plays attached Sound once, at Volume (0.0 - 1.0).\nPlays a sound once. The sound will be attached to the object and follow object's movement. Only one sound may be attached to an object at a time, and attaching a new sound or calling llStopSound will stop the previously attached sound.\n
-				A second call to llPlaySound with the same sound will not restart the sound, but the new volume will be used, which allows control over the volume of already playing sounds.\n
-				To restart the sound from the beginning, call llStopSound before calling llPlaySound again.</string>
-   </map>
-   <key>llPlaySoundSlave</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Sound</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>Volume</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Plays attached Sound once, at Volume (0.0 - 1.0), synced to next loop of most audible sync master.\nBehaviour is identical to llPlaySound, unless there is a "Sync Master" present. If a Sync Master is already playing, the Slave sound will not be played until the Master hits its loop point and returns to the beginning.\n
-				llPlaySoundSlave will play the sound exactly once; if it is desired to have the sound play every time the Master loops, either use llLoopSoundSlave with extra silence padded on the end of the sound or ensure that llPlaySoundSlave is called at least once per loop of the Master.</string>
-   </map>
-   <key>llPow</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Value</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-     <map>
-      <key>Exponent</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the Value raised to the power Exponent, or returns 0 and triggers Math Error for imaginary results.\nReturns the Value raised to the Exponent.</string>
-   </map>
-   <key>llPreloadSound</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Sound</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>1.0</real>
-    <key>tooltip</key>
-    <string>Preloads a sound on viewers within range.\nCauses nearby viewers to preload the Sound from the object's inventory. This is intended to prevent delays in starting new sounds when called upon.</string>
-   </map>
-   <key>llPursue</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>TargetID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-     <map>
-      <key>Options</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real/>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real/>
-    <key>tooltip</key>
-    <string>Chase after a target.\nCauses the character (llCharacter) to pursue the target defined by TargetID.</string>
-   </map>
-   <key>llPushObject</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>ObjectID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-     <map>
-      <key>Impulse</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-     <map>
-      <key>AngularImpulse</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-     <map>
-      <key>Local</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Applies Impulse and AngularImpulse to ObjectID.\nApplies the supplied impulse and angular impulse to the object specified.</string>
-   </map>
-   <key>llRefreshPrimURL</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>20.0</real>
-    <key>tooltip</key>
-    <string>Reloads the web page shown on the sides of the object.</string>
-   </map>
-   <key>llRegionSay</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Channel</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>Text</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Broadcasts Text to entire region on Channel (not 0.).\nSays the Text on the specified non-zero Channel, so that it can be heard anywhere in the region by a script listening on that channel.</string>
-   </map>
-   <key>llRegionSayTo</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>TargetID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-     <map>
-      <key>Channel</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>Text</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Says Text, on Channel, to avatar or object indicated by TargetID (if within region).\nSays the Text on the supplied channel number, to the object or avatar specified.</string>
-   </map>
-   <key>llReleaseCamera</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>AvatarID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-    </array>
-    <key>deprecated</key>
-    <boolean>true</boolean>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Return camera to agent.\nDeprecated: Use llClearCameraParams instead.</string>
-   </map>
-   <key>llReleaseControls</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Stop taking inputs.\nStop taking inputs from the avatar.</string>
-   </map>
-   <key>llReleaseURL</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>URL</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Releases the specified URL, it will no longer be usable.</string>
-   </map>
-   <key>llRemoteDataReply</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>ChannelID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-     <map>
-      <key>MessageID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-     <map>
-      <key>Data</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>Data</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>deprecated</key>
-    <boolean>true</boolean>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>3.0</real>
-    <key>tooltip</key>
-    <string>Send an XML-RPC reply to MessageID on ChannelID with payload of string sData and integer iData. Deprecated: Use HTTP functions/events instead.\nDeprecated: Use HTTP functions/events instead.\n
-				Send an XML-RPC reply to the request with kMessageID on kChannelID with payload of string sData and integer iData.\n
-				The size of sData is limited to 254 characters.</string>
-   </map>
-   <key>llRemoteDataSetRegion</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>deprecated</key>
-    <boolean>true</boolean>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Deprecated: Use HTTP functions/events instead.\n
-				If an object using remote data channels changes regions, you must call this function to re-register the remote data channels.
-				You do not need to make this call if you don't change regions.\nDeprecated: Use HTTP functions/events instead.\n
-				Does not work! Use llOpenRemoteDataChannel instead.</string>
-   </map>
-   <key>llRemoteLoadScriptPin</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>ObjectID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-     <map>
-      <key>ScriptName</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>PIN</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>Running</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>StartParameter</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>3.0</real>
-    <key>tooltip</key>
-    <string>If the owner of the object this script is attached to can modify ObjectID, they are in the same region, and the matching PIN is used, copy ScriptName into target, if Running == TRUE, start the script with StartParameter.\nIf the owner of the object containing this script can modify the object identified by the specified object key, and if the PIN matches the PIN previously set using llSetRemoteScriptAccessPin (on the target prim), then the script will be copied into target.</string>
-   </map>
-   <key>llRemoveFromLandBanList</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>AvatarID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Remove avatar from the land ban list.\nRemove specified avatar from the land parcel ban list.</string>
-   </map>
-   <key>llRemoveFromLandPassList</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>AvatarID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Remove avatar from the land pass list.\nRemove specified avatar from the land parcel pass list.</string>
-   </map>
-   <key>llRemoveInventory</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>InventoryItem</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Remove the named inventory item.\nRemove the named inventory item from the object inventory.</string>
-   </map>
-   <key>llRemoveVehicleFlags</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Vehiclelags</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Removes the enabled bits in 'flags'.\nSets the vehicle flags to FALSE. Valid parameters can be found in the vehicle flags constants section.</string>
-   </map>
-   <key>llRequestAgentData</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>AvatarID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-     <map>
-      <key>Data</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>key</string>
-    <key>sleep</key>
-    <real>0.1</real>
-    <key>tooltip</key>
-    <string>Requests data about AvatarID. When data is available the dataserver event will be raised.\nThis function requests data about an avatar. If and when the information is collected, the dataserver event is triggered with the key returned from this function passed in the requested parameter. See the agent data constants (DATA_*) for details about valid values of data and what each will return in the dataserver event.</string>
-   </map>
-   <key>llRequestDisplayName</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>AvatarID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>key</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Requests name of an avatar. When data is available, the dataserver event will be raised.\nRequests the Display Name of the agent. When the Display Name is available the dataserver event will be raised.\n
-				The avatar identified does not need to be in the same region or online at the time of the request.\n
-				Returns a key that is used to identify the dataserver event when it is raised.</string>
-   </map>
-   <key>llRequestInventoryData</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>InventoryItem</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>key</string>
-    <key>sleep</key>
-    <real>1.0</real>
-    <key>tooltip</key>
-    <string>Requests data from object's inventory object. When data is available the dataserver event will be raised.\nRequests data for the object inventory item named.\n
-				When data is available the dataserver event will be raised with the key returned from this function in the requested parameter.\n
-				The only request currently implemented is to request data from landmarks, where the data returned is in the form "&lt;float, float, float&gt;" which can be cast to a vector. This position is in region local coordinates.</string>
-   </map>
-   <key>llRequestPermissions</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>AvatarID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-     <map>
-      <key>PermmissionMask</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Ask AvatarID to allow the script to do PermmissionMask (NB: Debit, ownership, link, joint, and permission requests can only go to the task's owner).\nAsk avatar to allow the script to perform certain actions. The permission flag should be one or more PERMISSION_* constants.\n
-				Multiple permissions can be requested simultaneously by ORing the constants together. Many of the permissions requests can only go to object owner.\n
-				This call will not stop script execution. If the avatar grants the requested permissions, the run_time_permissions event will be called.\n
-				Permissions for a single avatar are granted to a script, not to an object. So multiple scripts can hold permissions for multiple avatars.</string>
-   </map>
-   <key>llRequestSecureURL</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>key</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Requests one HTTPS:// (SSL) URL for use by this object. An http_request event is triggered with the results.\nRequests one HTTPS:// (SSL) URL for use by this object. The http_request event is triggered with results.\n
-				Returns a key that is the handle used for identifying the request in the http_request event.</string>
-   </map>
-   <key>llRequestSimulatorData</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>RegionName</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>Data</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>key</string>
-    <key>sleep</key>
-    <real>1.0</real>
-    <key>tooltip</key>
-    <string>Requests data about a simulator. When data is available the dataserver event will be raised.\nRequests data about the region named. Data should use one of the DATA_SIM_* constants.\n
-			Returns a dataserver query ID and triggers the dataserver event when data is found. The region name is usually not case-sensitive, but sometimes will return data for a similarly-named region if the supplied case doesn't match the intended region's actual name.</string>
-   </map>
-   <key>llRequestURL</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>key</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Requests one HTTP:// URL for use by this object. An http_request event is triggered with the results.\nRequests one HTTP:// URL for use by this script. The http_request event is triggered with the result of the request.\n
-				Returns a key that is the handle used for identifying the result in the http_request event.</string>
-   </map>
-   <key>llRequestUsername</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>AvatarID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>key</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Requests single-word user-name of an avatar. When data is available the dataserver event will be raised.\nRequests the user-name of the identified agent. When the user-name is available the dataserver event is raised.\nThe agent identified does not need to be in the same region or online at the time of the request.\nReturns a key that is used to identify the dataserver event when it is raised.</string>
-   </map>
-   <key>llResetAnimationOverride</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>AnimationState</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0</real>
-    <key>tooltip</key>
-    <string>Resets the animation of the specified animation state to the default value.\nIf animation state equals "ALL", then all animation states are reset.</string>
-   </map>
-   <key>llResetLandBanList</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Removes all residents from the land ban list.</string>
-   </map>
-   <key>llResetLandPassList</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Removes all residents from the land access/pass list.</string>
-   </map>
-   <key>llResetOtherScript</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>ScriptName</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Resets the named script.</string>
-   </map>
-   <key>llResetScript</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Resets the script.</string>
-   </map>
-   <key>llResetTime</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Sets the time to zero.\nSets the internal timer to zero.</string>
-   </map>
-   <key>llReturnObjectsByID</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>ObjectIDs</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>integer</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Return objects using their UUIDs</string>
-   </map>
-   <key>llReturnObjectsByOwner</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>ID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-     <map>
-      <key>Scope</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>integer</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Return objects based upon their owner and a scope of parcel, parcel owner, or region.</string>
-   </map>
-   <key>llRezAtRoot</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>InventoryItem</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>Position</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-     <map>
-      <key>Velocity</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-     <map>
-      <key>Rotation</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>rotation</string>
-      </map>
-     </map>
-     <map>
-      <key>StartParameter</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>200.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.1</real>
-    <key>tooltip</key>
-    <string>Instantiate owner's InventoryItem at Position with Velocity, Rotation and with StartParameter. The last selected root object's location will be set to Position.\nCreates object's inventory item at the given Position, with Velocity, Rotation, and StartParameter.</string>
-   </map>
-   <key>llRezObject</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>InventoryItem</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>Position</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-     <map>
-      <key>Velocity</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-     <map>
-      <key>Rotation</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>rotation</string>
-      </map>
-     </map>
-     <map>
-      <key>StartParameter</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>200</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.1</real>
-    <key>tooltip</key>
-    <string>Instantiate owners InventoryItem at Position with Velocity, Rotation and with start StartParameter.\nCreates object's inventory item at Position with Velocity and Rotation supplied. The StartParameter value will be available to the newly created object in the on_rez event or through the llGetStartParameter function.\nThe Velocity parameter is ignored if the rezzed object is not physical.</string>
-   </map>
-   <key>llRot2Angle</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Rotation</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>rotation</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>float</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the rotation angle represented by Rotation.\nReturns the angle represented by the Rotation.</string>
-   </map>
-   <key>llRot2Axis</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Rotation</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>rotation</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>vector</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the rotation axis represented by Rotation.\nReturns the axis represented by the Rotation.</string>
-   </map>
-   <key>llRot2Euler</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Rotation</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>rotation</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>vector</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the Euler representation (roll, pitch, yaw) of Rotation.\nReturns the Euler Angle representation of the Rotation.</string>
-   </map>
-   <key>llRot2Fwd</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Rotation</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>rotation</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>vector</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the forward vector defined by Rotation.\nReturns the forward axis represented by the Rotation.</string>
-   </map>
-   <key>llRot2Left</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Rotation</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>rotation</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>vector</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the left vector defined by Rotation.\nReturns the left axis represented by the Rotation.</string>
-   </map>
-   <key>llRot2Up</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Rotation</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>rotation</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>vector</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the up vector defined by Rotation.\nReturns the up axis represented by the Rotation.</string>
-   </map>
-   <key>llRotateTexture</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Radians</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-     <map>
-      <key>Face</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.2</real>
-    <key>tooltip</key>
-    <string>Sets the texture rotation for the chosen face.\nSets the rotation of the texture on the given side.\n
-				If face is ALL_SIDES, rotates the texture of all sides.</string>
-   </map>
-   <key>llRotBetween</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Vector1</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-     <map>
-      <key>Vector2</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>rotation</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the rotation to rotate Vector1 to Vector2.\nReturns the rotation needed to rotate Vector1 to Vector2.</string>
-   </map>
-   <key>llRotLookAt</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Rotation</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>rotation</string>
-      </map>
-     </map>
-     <map>
-      <key>Strength</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-     <map>
-      <key>Damping</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Cause object to point it's forward axis towards Rotation.\nCause object to rotate to Rotation. Good strength values are around half the mass of the object and good damping values are less than 1/10th of the strength.\n
-				Asymmetrical shapes require smaller damping.\n
-				A strength of 0.0 cancels the look at.</string>
-   </map>
-   <key>llRotTarget</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Rotation</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>rotation</string>
-      </map>
-     </map>
-     <map>
-      <key>LeeWay</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>integer</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Set rotations with error of LeeWay as a rotational target and return an ID for the rotational target.\nSet object rotation within the given lee way of rotation as a rotational target and return an integer number for the target.\n
-				The returned number is a handle that can be used in llRotTargetRemove.</string>
-   </map>
-   <key>llRotTargetRemove</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Handle</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Removes rotational target number.\nRemove rotational target indicated by the handle.</string>
-   </map>
-   <key>llRound</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Value</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>integer</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns Value rounded to the nearest integer.\nReturns the Value rounded to the nearest integer.</string>
-   </map>
-   <key>llSameGroup</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>ID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>integer</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns TRUE if avatar ID is in the same region and has the same active group, otherwise FALSE.\nReturns TRUE if the object or agent identified is in the same simulator and has the same active group as this object. Otherwise, returns FALSE.</string>
-   </map>
-   <key>llSay</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Channel</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>Text</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Says Text on Channel.\nSay Text on channel.\n
-			Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 to 2,147,483,648 are private channels that are not sent to avatars but other scripts can listen for through the llListen/listen event system.</string>
-   </map>
-   <key>llScaleByFactor</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>ScalingFactor</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>integer</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Attempts to resize the entire object by scaling_factor, maintaining the size-position ratios of the prims.\n\nResizing is subject to prim scale limits and linkability limits. This function can not resize the object if the linkset is physical, a pathfinding character, in a keyframed motion, or if resizing would cause the parcel to overflow.\nReturns a boolean (an integer) TRUE if it succeeds, FALSE if it fails.</string>
-   </map>
-   <key>llScaleTexture</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Horizontal</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-     <map>
-      <key>Vertical</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-     <map>
-      <key>Face</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.2</real>
-    <key>tooltip</key>
-    <string>Sets the texture's S and T scales for the chosen Face.\nSets the Horizontal and Vertical repeats per Face on Face.\n
-				If Face == ALL_SIDES, all sides are set in one call.\n
-				Negative values for horizontal and vertical will flip the texture.</string>
-   </map>
-   <key>llScriptDanger</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Position</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>integer</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns TRUE if Position is over public land, sandbox land, land that doesn't allow everyone to edit and build, or land that doesn't allow outside scripts.\nReturns true if the position is over public land, land that doesn't allow everyone to edit and build, or land that doesn't allow outside scripts.</string>
-   </map>
-   <key>llScriptProfiler</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>State</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Enables or disables script profiling options. Currently only supports PROFILE_SCRIPT_MEMORY (Mono only) and PROFILE_NONE.\n
-				MAY SIGNIFICANTLY REDUCE SCRIPT PERFORMANCE!.\nEnables or disables the scripts profiling state.. Currently only supports PROFILE_SCRIPT_MEMORY (Mono only) and PROFILE_NONE.\n
-				MAY SIGNIFICANTLY REDUCE SCRIPT PERFORMANCE!.</string>
-   </map>
-   <key>llSendRemoteData</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>ChannelID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-     <map>
-      <key>Destination</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>Value</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>Text</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-    </array>
-    <key>deprecated</key>
-    <boolean>true</boolean>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>key</string>
-    <key>sleep</key>
-    <real>3.0</real>
-    <key>tooltip</key>
-    <string>Deprecated: use HTTP instead.\n
-				Sends an XML-RPC request to Destination through ChannelID with payload of ChannelID (in a string), integer Value and string Text.
-				Returns a key that is the message_id for the resulting remote_data events.\nSend an XML-RPC request to the Destination (probably an URL) through the ChannelID, with a payload of ChannelID (in a string), integer Value and string Text.</string>
-   </map>
-   <key>llSensor</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Name</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>ID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-     <map>
-      <key>Type</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>Range</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-     <map>
-      <key>Arc</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Performs a single scan for Name and ID with Type (AGENT, ACTIVE, PASSIVE, and/or SCRIPTED) within Range meters and Arc radians of forward vector (Name, ID, and/or Type can be empty or 0).\nPerforms a single scan for Name and ID with Type within Range meters and Arc radians of the forward vector.\n
-				Specifying a blank Name or NULL_KEY ID will prevent filtering results for a particular Name or ID. A range of 0.0 does not perform a scan. The Type parameter should be an object type constant value.</string>
-   </map>
-   <key>llSensorRemove</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>removes sensor.\nRemoves the sensor set by llSensorRepeat.</string>
-   </map>
-   <key>llSensorRepeat</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Name</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>ID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-     <map>
-      <key>Type</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>Range</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-     <map>
-      <key>Arc</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-     <map>
-      <key>Rate</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Sets a callback for Name and ID with Type (AGENT, ACTIVE, PASSIVE, and/or SCRIPTED) within Range meters and Arc radians of forward vector (Name, ID, and/or Type can be empty or 0) and repeats every Rate seconds.\nPerforms a repeating sensor scan for Name and ID with Type within Range meters and Arc radians of the forward vector (Name and/or ID can be empty or NULL_KEY).\n
-				A range of 0.0m does not perform a scan. The parameters have the same function as llSensor, except Rate, which defines the number of seconds between repeated scans and subsequent sensor or no_sensor events.</string>
-   </map>
-   <key>llSetAlpha</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Opacity</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-     <map>
-      <key>Face</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Sets the alpha (opacity) of Face.\nSets the alpha (opacity) value for Face. If Face is ALL_SIDES, sets the alpha for all faces. The alpha value is interpreted as an opacity percentage (1.0 is fully opaque, and 0.2 is mostly transparent). This function will clamp alpha values less than 0.1 to 0.1 and greater than 1.0 to 1.</string>
-   </map>
-   <key>llSetAngularVelocity</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Force</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-     <map>
-      <key>Local</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real/>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Sets an object's angular velocity, in local coordinates if local == TRUE (if the script is physical).\nApplies angular (rotational) velocity to a physical object. Has no effect on non-physical objects.</string>
-   </map>
-   <key>llSetAnimationOverride</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>AnimationState</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>AnimationName</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0</real>
-    <key>tooltip</key>
-    <string>Sets the animation (in object inventory) that will play for the given animation state.\nTo use this function the script must obtain the PERMISSION_OVERRIDE_ANIMATIONS permission.</string>
-   </map>
-   <key>llSetBuoyancy</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Buoyancy</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Set the tasks buoyancy (0 is none, &lt; 1.0 sinks, 1.0 floats, &gt; 1.0 rises).\nSet the object buoyancy. A value of 0 is none, less than 1.0 sinks, 1.0 floats, and greater than 1.0 rises.</string>
-   </map>
-   <key>llSetCameraAtOffset</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Offset</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Sets the camera used in this object, at offset, if an avatar sits on it.\nSets the offset that an avatar's camera will be moved to if the avatar sits on the object.</string>
-   </map>
-   <key>llSetCameraEyeOffset</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Offset</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Sets the camera eye offset used in this object if an avatar sits on it.</string>
-   </map>
-   <key>llSetCameraParams</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Parameters</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Sets multiple camera parameters at once. List format is [ rule-1, data-1, rule-2, data-2 . . . rule-n, data-n ].\nSets multiple camera parameters at once.\n
-				List format is [rule-1, value-1, rule-2, value-2 ... rule-N, value-N]</string>
-   </map>
-   <key>llSetClickAction</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Action</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Sets the action performed when a prim is clicked upon.</string>
-   </map>
-   <key>llSetColor</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Colour</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-     <map>
-      <key>Face</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Sets the color, for the face.\nSets the colour of the side specified. If Face is ALL_SIDES, sets the colour on all faces.</string>
-   </map>
-   <key>llSetContentType</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>HTTPRequestID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-     <map>
-      <key>ContentType</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real/>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real/>
-    <key>tooltip</key>
-    <string>Set the media type of an LSL HTTP server response.</string>
-   </map>
-   <key>llSetDamage</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Damage</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Sets the amount of damage that will be done to an avatar that this task hits.	Task will be killed.\nSets the amount of damage that will be done to an avatar that this object hits. This object will be destroyed on damaging an avatar, and no collision event is triggered.</string>
-   </map>
-   <key>llSetForce</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Force</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-     <map>
-      <key>Local</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Sets Force on object, in local coordinates if Local == TRUE (if the script is physical).\nIf the object is physical, this function sets the force.\n
-				The vector is in local coordinates if local is TRUE, global if FALSE.</string>
-   </map>
-   <key>llSetForceAndTorque</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Force</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-     <map>
-      <key>Torque</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-     <map>
-      <key>Local</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Sets the Force and Torque of object, in local coordinates if Local == TRUE (if the script is physical).\nIf the object is physical, this function sets the Force and Torque. The vectors are in local coordinates if Local is TRUE, global if FALSE.</string>
-   </map>
-   <key>llSetHoverHeight</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Height</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-     <map>
-      <key>Water</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>Tau</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Critically damps to a Height (either above ground level or above the higher of land and water if water == TRUE).\nCritically damps to a Height. The height is above ground and water (which ever is greater) if water is TRUE. Only works with physics-enabled objects.\n
-				Do not use with vehicles. Use llStopHover to stop hovering.</string>
-   </map>
-   <key>llSetInventoryPermMask</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>InventoryItem</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>PermissionFlag</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>PermissionMask</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>god-mode</key>
-    <boolean>true</boolean>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Sets the given permission mask to the new value on the inventory item.</string>
-   </map>
-   <key>llSetKeyframedMotion</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Keyframes</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-     <map>
-      <key>Options</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real/>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real/>
-    <key>tooltip</key>
-    <string>Requests that a non-physical object be key-framed according to key-frame list.\nSpecify a list of times, positions, and orientations to be followed by an object. The object will be smoothly moved between key-frames by the simulator. Collisions with other non-physical or key-framed objects will be ignored (no script events will fire and collision processing will not occur). Collisions with physical objects will be computed and reported, but the key-framed object will be unaffected by those collisions.</string>
-   </map>
-   <key>llSetLinkAlpha</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>LinkNumber</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>Opacity</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-     <map>
-      <key>Face</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>If a prim exists in the link chain at LinkNumber, set Face to Opacity.\nSets the Face, on the linked prim specified, to the Opacity.</string>
-   </map>
-   <key>llSetLinkCamera</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>LinkNumber</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>EyeOffset</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-     <map>
-      <key>LookOffset</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Sets the camera eye offset, and the offset that camera is looking at, for avatars that sit on the linked prim.</string>
-   </map>
-   <key>llSetLinkColor</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>LinkNumber</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>Colour</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-     <map>
-      <key>Face</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>If a task exists in the link chain at LinkNumber, set the Face to color.\nSets the colour of the linked child's side, specified by LinkNumber.</string>
-   </map>
-   <key>llSetLinkMedia</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Link</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>Face</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>Parameters</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>0.0</real>
-    <key>return</key>
-    <string>integer</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Set the media parameters for a particular face on linked prim.	Parameters is a list of name/value pairs (in no particular order). If media is not already on this object, add it. Parameters not specified are unchanged, or if new media is added set to the default specified.\nSet the media parameters for a particular face on the linked prim(s) without a delay.\n
-				Returns an integer that is a STATUS_* flag which details the success/failure of the operation(s).</string>
-   </map>
-   <key>llSetLinkPrimitiveParams</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>LinkNumber</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>Parameters</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.2</real>
-    <key>tooltip</key>
-    <string>Set primitive parameters for LinkNumber based on Parameters.\nSets the parameters (or properties) of any linked prim in one step.</string>
-   </map>
-   <key>llSetLinkPrimitiveParamsFast</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>LinkNumber</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>Parameters</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Set primitive parameters for LinkNumber based on Parameters, without a delay.\nSet parameters for link number, from the list of Parameters, with no built-in script sleep. This function is identical to llSetLinkPrimitiveParams, except without the delay.</string>
-   </map>
-   <key>llSetLinkTexture</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>LinkNumber</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>Texture</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>Face</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.2</real>
-    <key>tooltip</key>
-    <string>Sets the Texture of Face for LinkNumber.\nSets the Texture of linked prims.</string>
-   </map>
-   <key>llSetLinkTextureAnim</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>LinkNumber</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>Mode</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>Face</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>SizeX</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>SizeY</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>Start</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-     <map>
-      <key>Length</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-     <map>
-      <key>Rate</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Animate the texture on the specified prim's face/faces.\nAnimate the texture on the specified face/faces of the specified prim/prims by setting the texture scale and offset.\n
-				Identical to llSetTextureAnim except able to modify any prim in the link set.</string>
-   </map>
-   <key>llSetLocalRot</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Rotation</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>rotation</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.2</real>
-    <key>tooltip</key>
-    <string>Sets the rotation of a child prim relative to the root prim.</string>
-   </map>
-   <key>llSetMemoryLimit</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Limit</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real/>
-    <key>return</key>
-    <string>integer</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Request Limit bytes to be reserved for this script. This function has no effect if the script is running in the LSO VM.\nRequest Limit bytes to be reserved for this script. This function has no effect if the script is running in the LSO VM.\n
-				Return TRUE or FALSE indicating whether the limit was set successfully.</string>
-   </map>
-   <key>llSetObjectDesc</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Description</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Sets the object's description.\nSets the description of the scripted prim. You can get the description using llGetObjectDesc.\n
-				The description is limited to 127 characters.</string>
-   </map>
-   <key>llSetObjectName</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Name</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Sets the object's name.</string>
-   </map>
-   <key>llSetObjectPermMask</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>PermissionFlag</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>PermissionMask</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>god-mode</key>
-    <boolean>true</boolean>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Sets the given permission mask to the new value on the root object the task is attached to.</string>
-   </map>
-   <key>llSetParcelMusicURL</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>URL</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>2.0</real>
-    <key>tooltip</key>
-    <string>Sets the streaming audio URL for the parcel object is on.\nSets the streaming audio URL for the parcel the scripted object is on (the object must be owned by the owner of the parcel, if the parcel is group owned the object must be owned by that group).</string>
-   </map>
-   <key>llSetPayPrice</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Price</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>QuickButtons</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Sets the default amount when someone chooses to pay this object.\nSets the values of the buttons and the text box default for the Pay dialogue, when a user right-clicks on the object and selects "Pay".\n
-				llSetPayPrice will affect what buttons exist, what their values are, and whether or not there is a manual payment text entry box.</string>
-   </map>
-   <key>llSetPhysicsMaterial</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>MaterialBits</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>GravityMultiplier</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-     <map>
-      <key>Restitution</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-     <map>
-      <key>Friction</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-     <map>
-      <key>Density</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real/>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real/>
-    <key>tooltip</key>
-    <string>Sets the requested attributes of the root object's physics material.</string>
-   </map>
-   <key>llSetPos</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Position</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.2</real>
-    <key>tooltip</key>
-    <string>Sets the position (if the script isn't physical).\nIf the object is not physical, this function sets the position in region coordinates. If the object is a child prim, the position is treated as root relative and the link-set is adjusted.</string>
-   </map>
-   <key>llSetPrimitiveParams</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Parameters</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.2</real>
-    <key>tooltip</key>
-    <string>Set primitive parameters.\nThis function changes the many properties (or "parameters") of a prim in one operation. The Parameters are a list of changes.</string>
-   </map>
-   <key>llSetPrimMediaParams</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Face</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>MediaParameters</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>integer</string>
-    <key>sleep</key>
-    <real>0.1</real>
-    <key>tooltip</key>
-    <string>Sets the MediaParameters for a particular Face on an object. If media is not already on this object, add it.
-				MediaParameters is a set of name/value pairs in no particular order. Parameters not specified are unchanged, or if new media is added then set to the default specified.\nSet the MediaParameters for a particular face.\n
-				Returns an integer that is a STATUS_* flag which details the success/failure of the operation(s).</string>
-   </map>
-   <key>llSetPrimURL</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>URL</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-    </array>
-    <key>deprecated</key>
-    <boolean>true</boolean>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>20.0</real>
-    <key>tooltip</key>
-    <string>Deprecated: Use llSetPrimMediaParams instead.\nDeprecated: Use llSetPrimMediaParams instead. Updates the URL for the web page shown on the sides of the object.</string>
-   </map>
-   <key>llSetRegionPos</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Position</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>0.0</real>
-    <key>return</key>
-    <string>integer</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Sets the Position anywhere within the region (if the object isn't physical).\nTries to moves the entire object so that the root prim is within 0.1m of Position.\n
-				Returns an integer boolean, TRUE if the object is successfully placed within 0.1 m of Position, FALSE otherwise.\n
-				The object with the script will move the root prim position to the given location. The position is any position within the region. If the position is below ground, it will be set to the ground level at that x,y location. The function has no delay or throttle.</string>
-   </map>
-   <key>llSetRemoteScriptAccessPin</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>PIN</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.2</real>
-    <key>tooltip</key>
-    <string>If PIN is set to a non-zero number, the task will accept remote script loads via llRemoteLoadScriptPin if it passes in the correct PIN. Othersise, llRemoteLoadScriptPin is ignored.\nIf PIN is set to a non-zero number, the task will accept remote script loads via llRemoteLoadScriptPin if passed the matching PIN. Otherwise llRemoteLoadScriptPin is ignored</string>
-   </map>
-   <key>llSetRot</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Rotation</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>rotation</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.2</real>
-    <key>tooltip</key>
-    <string>Sets the rotation (if the script isn't physical).\nIf the object is not physical, this function sets the rotation.\n
-				If the script is in a child prim, the position is treated as root relative and the linked set is adjusted.</string>
-   </map>
-   <key>llSetScale</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Scale</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Sets the scale.\nSets the prim's scale (size).</string>
-   </map>
-   <key>llSetScriptState</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>ScriptName</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>Running</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Control the state of a named script.\nControl the state of a script in the prim.</string>
-   </map>
-   <key>llSetSitText</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Text</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Displays Text rather than "Sit" in context menu.\nDisplays Text rather than 'Sit' in the viewer's menu.</string>
-   </map>
-   <key>llSetSoundQueueing</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>QueueEnable</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Determines whether attached sound calls wait for the current sound to finish (0 = no [default], non-zero = yes).\nSets whether successive calls to llPlaySound, llLoopSound, etc., (attached sounds) interrupt the playing sound.\n
-				The default for objects is FALSE. Setting this value to TRUE will make the sound wait until the current playing sound reaches its end. The queue is one level deep.</string>
-   </map>
-   <key>llSetSoundRadius</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Radius</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Establishes a hard cut-off radius for audibility of scripted sounds (both attached and triggered).</string>
-   </map>
-   <key>llSetStatus</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Status</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>Value</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Sets status (STATUS_PHYSICS, STATUS_PHANTOM, STATUS_BLOCK_GRAB, STATUS_ROTATE_X, STATUS_ROTATE_Y, and/or STATUS_ROTATE_Z) to value.\nSets the Status to Value. Use STATUS_* constants for the values of status.</string>
-   </map>
-   <key>llSetText</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Text</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>Colour</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-     <map>
-      <key>Opacity</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Set text floating over object.\nSets the text that floats above the object, using the specified colour and opacity level.</string>
-   </map>
-   <key>llSetTexture</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Texture</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>Face</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.2</real>
-    <key>tooltip</key>
-    <string>Sets the Texture of Face.\nSets the Texture of Face. If Face is ALL_SIDES, set the texture on all faces.</string>
-   </map>
-   <key>llSetTextureAnim</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Mode</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>Face</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>SizeX</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>SizeY</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>Start</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-     <map>
-      <key>Length</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-     <map>
-      <key>Rate</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Animate the texture on the specified face/faces.\nAnimates a texture by setting the texture scale and offset.</string>
-   </map>
-   <key>llSetTimerEvent</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Rate</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Cause the timer event to be triggered every Rate seconds.\nSets the timer event to be triggered at the specified Rate, in seconds.\n
-				Passing in 0.0 stops further timer events.</string>
-   </map>
-   <key>llSetTorque</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Torque</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-     <map>
-      <key>Local</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Sets the Torque of object, in local coordinates if Local == TRUE (if the script is physical).\nIf the object is physical, this function sets the torque.\n
-			The vector is in local coordinates if Local is TRUE, global if FALSE.</string>
-   </map>
-   <key>llSetTouchText</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Text</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Displays Text in the menu that acts on a touch.\nDisplays Text in the viewer context menu that acts on a touch.</string>
-   </map>
-   <key>llSetVehicleFlags</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Flags</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Sets the enabled bits in 'flags'.\nSets the vehicle flags to TRUE.\nValid parameters can be found in the vehicle flags constants section.</string>
-   </map>
-   <key>llSetVehicleFloatParam</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>ParameterName</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>ParameterValue</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Sets the specified vehicle float parameter.\nSets the vehicle floating point parameter.\n
-				Valid parameters and their expected values can be found in the vehicle parameter constants section.</string>
-   </map>
-   <key>llSetVehicleRotationParam</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>ParameterName</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>ParameterValue</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Sets the specified vehicle rotation parameter.\nSets the vehicle rotation parameter.\n
-				Valid parameters can be found in the vehicle parameter constants section.</string>
-   </map>
-   <key>llSetVehicleType</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Type</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Sets vehicle to one of the default types.\nActivates the vehicle action and choose vehicle Type.\n
-				Valid Types and an explanation of their characteristics can be found in the vehicle type constants section.</string>
-   </map>
-   <key>llSetVehicleVectorParam</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>ParameterName</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>ParameterValue</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Sets the specified vehicle vector parameter.\nSets the vehicle vector parameter.\nValid parameters can be found in the vehicle parameter constants section.</string>
-   </map>
-   <key>llSetVelocity</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Force</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-     <map>
-      <key>Local</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real/>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Sets an objects velocity, in local coordinates if Local == TRUE (if the script is physical).\nApplies Force to a physical object.</string>
-   </map>
-   <key>llSHA1String</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Text</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>string</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns a string of 40 hex characters that is the SHA1 security Hash of Text.\nReturns a string of 40 hex characters that is the SHA1 security hash of the supplied string.</string>
-   </map>
-   <key>llShout</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Channel</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>Text</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>shouts Text on Channel.\nShout Text on Channel. Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 to 2,147,483,648 are private channels that are not sent to avatars but other scripts can listen for through the llListen function.</string>
-   </map>
-   <key>llSin</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Theta</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>float</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the sine of Theta (Theta in radians).\nReturns the sine of Theta in radians.</string>
-   </map>
-   <key>llSitTarget</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Offset</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-     <map>
-      <key>Rotation</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>rotation</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Set the sit location for this object (if offset == &lt;0,0,0&gt; clear it).\nSet the sit location for this object. If offset == ZERO_VECTOR, clears the sit target.</string>
-   </map>
-   <key>llSleep</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Time</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Put script to sleep for Time seconds.\nPuts the script to sleep for time specified, in seconds.</string>
-   </map>
-   <key>llSound</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Sound</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>Volume</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-     <map>
-      <key>Queue</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>Loop</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>deprecated</key>
-    <boolean>true</boolean>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Deprecated: Use llPlaySound instead.\nDeprecated: Use llPlaySound instead.\nPlays Sound at Volume and specifies whether it should loop or not.</string>
-   </map>
-   <key>llSoundPreload</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Sound</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-    </array>
-    <key>deprecated</key>
-    <boolean>true</boolean>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Deprecated: Use llPreloadSound instead.\nDeprecated: Use llPreloadSound instead.\nPreloads a sound on viewers within range.</string>
-   </map>
-   <key>llSqrt</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Value</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>float</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the square root of Value, or returns 0 and triggers a Math Error for imaginary results.\nReturns the square root of the value. If the value is less than 0.0, this function returns 0.0 and raises a maths runtime error.</string>
-   </map>
-   <key>llStartAnimation</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Animation</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Start Animation for agent that owns object.\nThis function starts the animation for the last avatar that granted the object PERMISSION_TRIGGER_ANIMATION permission.</string>
-   </map>
-   <key>llStopAnimation</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Animation</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Stop Animation for agent that owns object.\nThis function stops the animation for the last avatar that granted the object PERMISSION_TRIGGER_ANIMATION permission.</string>
-   </map>
-   <key>llStopHover</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Stop hovering to a height.\nStop hovering at a height.</string>
-   </map>
-   <key>llStopLookAt</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Stop causing object to point at a target.\nStop causing object to look at target.</string>
-   </map>
-   <key>llStopMoveToTarget</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Stops critically damped motion.</string>
-   </map>
-   <key>llStopSound</key>
-   <map>
-    <key>arguments</key>
-    <undef/>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Stops currently attached sound.\nStops the currently playing attached sound started with llPlaySound or llLoopSound. Has no effect on sounds started with llTriggerSound.</string>
-   </map>
-   <key>llStringLength</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Text</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>integer</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the length of string.\nReturns the number of characters in the specified text.</string>
-   </map>
-   <key>llStringToBase64</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Text</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>string</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Converts a string to the Base64 representation of the string.\nConverts a string to the Base 64 representation of the string.</string>
-   </map>
-   <key>llStringTrim</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Text</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>TrimType</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>string</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Trims the leading and/or trailing white spaces from a string.\n
-				TrimType can be STRING_TRIM, STRING_TRIM_HEAD or STRING_TRIM_TAIL.\nOutputs a string, eliminating white-space from the start and/or end of the specified string.\n
-				Constants for trim_type:\n
-				STRING_TRIM_HEAD: trim all leading spaces in text\n
-				STRING_TRIM_TAIL: trim all trailing spaces in text\n
-				STRING_TRIM: trim all leading and trailing spaces in text</string>
-   </map>
-   <key>llSubStringIndex</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Text</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>Sequence</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>integer</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns an integer that is the index in source where pattern first appears. Returns -1 if not found.\nReturns an index of the text where the sequence of characters first appears.\n
-				Returns -1 if no match is found.</string>
-   </map>
-   <key>llTakeCamera</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>AvatarID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-    </array>
-    <key>deprecated</key>
-    <boolean>true</boolean>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Deprecated: Use llSetCameraParams instead.\nDeprecated: Use llSetCameraParams instead. Move avatar's viewpoint to task.</string>
-   </map>
-   <key>llTakeControls</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Controls</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>Accept</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>PassOn</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Take controls from agent task has permissions for.	If (Accept == (controls &amp; input)), send input to task.	If PassOn send to agent also.\nRequires the PERMISSION_TAKE_CONTROLS permission to run.</string>
-   </map>
-   <key>llTan</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Theta</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>float</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the tangent of Theta (Theta in radians).\nReturns the tangent of Theta radians.</string>
-   </map>
-   <key>llTarget</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Position</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-     <map>
-      <key>Range</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>integer</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Sets positions within range of position as a target and return an ID for the target.\nSet object position, within range of position, as a target and returns an integer ID for the target.</string>
-   </map>
-   <key>llTargetOmega</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Axis</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-     <map>
-      <key>SpinRate</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-     <map>
-      <key>Gain</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Attempt to spin at SpinRate with strength Gain.\nAttempt to spin at SpinRate with strength Gain on axis.\n
-			A spin-rate of 0.0 cancels the spin. This function always works in object local coordinates.</string>
-   </map>
-   <key>llTargetRemove</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Target</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Removes target number.\nRemove target number.</string>
-   </map>
-   <key>llTeleportAgent</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>AvatarID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-     <map>
-      <key>LandmarkName</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>Position</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-     <map>
-      <key>LookAtPoint</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0</real>
-    <key>tooltip</key>
-    <string>Requests a teleport of avatar to a landmark stored in the object's inventory. If no landmark is provided (an empty string), the avatar is teleported to the location position in the current region. In either case, the avatar is turned to face the position given by look_at in local coordinates.
+      <key>controls</key>
+      <map>
+         <key>default</key>
+         <map>
+            <key>tooltip</key>
+            <string>All scripts must have a default state, which is the first state entered when the script starts.</string>
+         </map>
+         <key>do</key>
+         <map>
+            <key>tooltip</key>
+            <string>do / while loop</string>
+         </map>
+         <key>else</key>
+         <map>
+            <key>tooltip</key>
+            <string>if / else block</string>
+         </map>
+         <key>for</key>
+         <map>
+            <key>tooltip</key>
+            <string>for loop</string>
+         </map>
+         <key>if</key>
+         <map>
+            <key>tooltip</key>
+            <string>if / else block</string>
+         </map>
+         <key>jump</key>
+         <map>
+            <key>tooltip</key>
+            <string>jump statement\njump &lt;label&gt;</string>
+         </map>
+         <key>return</key>
+         <map>
+            <key>tooltip</key>
+            <string>Leave current event or function.</string>
+         </map>
+         <key>state</key>
+         <map>
+            <key>tooltip</key>
+            <string>state &lt;target&gt;\nIf the target state is not the same as the current one, change to the target state.</string>
+         </map>
+         <key>while</key>
+         <map>
+            <key>tooltip</key>
+            <string>while loop\nwhile (&lt;condition&gt;) {\n,,,\n}</string>
+         </map>
+      </map>
+      <key>types</key>
+      <map>
+         <key>float</key>
+         <map>
+            <key>tooltip</key>
+            <string>32 bit floating point value.\nThe range is 1.175494351E-38 to 3.402823466E+38.</string>
+         </map>
+         <key>integer</key>
+         <map>
+            <key>tooltip</key>
+            <string>32 bit integer value.\n−2,147,483,648 and +2,147,483,647 (that is 0x80000000 to 0x7FFFFFFF in hex).</string>
+         </map>
+         <key>key</key>
+         <map>
+            <key>tooltip</key>
+            <string>A 128 bit unique identifier (UUID).</string>
+         </map>
+         <key>list</key>
+         <map>
+            <key>tooltip</key>
+            <string>A collection of other data types.</string>
+         </map>
+         <key>quaternion</key>
+         <map>
+            <key>tooltip</key>
+            <string>The quaternion type is a left over from way back when LSL was created. It was later renamed to &lt;rotation&gt; to make it more user friendly, but it appears someone forgot to remove it ;-)</string>
+         </map>
+         <key>rotation</key>
+         <map>
+            <key>tooltip</key>
+            <string>The rotation type is one of several ways to represent an orientation in 3D.</string>
+         </map>
+         <key>string</key>
+         <map>
+            <key>tooltip</key>
+            <string>Text data.</string>
+         </map>
+         <key>vector</key>
+         <map>
+            <key>tooltip</key>
+            <string>A vector is a data type that contains a set of three float values.</string>
+         </map>
+      </map>
+      <key>constants</key>
+      <map>
+         <key>ACTIVE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x2</string>
+            <key>tooltip</key>
+            <string>Objects in world that are running a script or currently physically moving.</string>
+         </map>
+         <key>AGENT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x1</string>
+            <key>tooltip</key>
+            <string>Objects in world that are agents.</string>
+         </map>
+         <key>AGENT_ALWAYS_RUN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x1000</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>AGENT_ATTACHMENTS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x2</string>
+            <key>tooltip</key>
+            <string>The agent has attachments.</string>
+         </map>
+         <key>AGENT_AUTOPILOT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x2000</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>AGENT_AWAY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x40</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>AGENT_BUSY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x800</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>AGENT_BY_LEGACY_NAME</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x1</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>AGENT_BY_USERNAME</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x10</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>AGENT_CROUCHING</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x400</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>AGENT_FLYING</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x1</string>
+            <key>tooltip</key>
+            <string>The agent is flying.</string>
+         </map>
+         <key>AGENT_IN_AIR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x100</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>AGENT_LIST_PARCEL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>Agents on the same parcel where the script is running.</string>
+         </map>
+         <key>AGENT_LIST_PARCEL_OWNER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>Agents on any parcel in the region where the parcel owner is the same as the owner of the parcel under the scripted object.</string>
+         </map>
+         <key>AGENT_LIST_REGION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string>All agents in the region.</string>
+         </map>
+         <key>AGENT_MOUSELOOK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x8</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>AGENT_ON_OBJECT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x20</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>AGENT_SCRIPTED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x4</string>
+            <key>tooltip</key>
+            <string>The agent has scripted attachments.</string>
+         </map>
+         <key>AGENT_SITTING</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x10</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>AGENT_TYPING</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x200</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>AGENT_WALKING</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x80</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>ALL_SIDES</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>ANIM_ON</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x1</string>
+            <key>tooltip</key>
+            <string>Texture animation is on.</string>
+         </map>
+         <key>ATTACH_AVATAR_CENTER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>40</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's geometric centre.</string>
+         </map>
+         <key>ATTACH_BACK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>9</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's back.</string>
+         </map>
+         <key>ATTACH_BELLY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>28</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's belly.</string>
+         </map>
+         <key>ATTACH_CHEST</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's chest.</string>
+         </map>
+         <key>ATTACH_CHIN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>12</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's chin.</string>
+         </map>
+         <key>ATTACH_HEAD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's head.</string>
+         </map>
+         <key>ATTACH_HUD_BOTTOM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>37</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>ATTACH_HUD_BOTTOM_LEFT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>36</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>ATTACH_HUD_BOTTOM_RIGHT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>38</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>ATTACH_HUD_CENTER_1</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>35</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>ATTACH_HUD_CENTER_2</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>31</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>ATTACH_HUD_TOP_CENTER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>33</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>ATTACH_HUD_TOP_LEFT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>34</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>ATTACH_HUD_TOP_RIGHT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>32</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>ATTACH_LEAR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>13</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's left ear.</string>
+         </map>
+         <key>ATTACH_LEFT_PEC</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>29</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's left pectoral.</string>
+         </map>
+         <key>ATTACH_LEYE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>15</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's left eye.</string>
+         </map>
+         <key>ATTACH_LFOOT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>7</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's left foot.</string>
+         </map>
+         <key>ATTACH_LHAND</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's left hand.</string>
+         </map>
+         <key>ATTACH_LHIP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>25</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's left hip.</string>
+         </map>
+         <key>ATTACH_LLARM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>21</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's left lower arm.</string>
+         </map>
+         <key>ATTACH_LLLEG</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>27</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's lower left leg.</string>
+         </map>
+         <key>ATTACH_LPEC</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>30</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's right pectoral. (Deprecated, use ATTACH_RIGHT_PEC)</string>
+         </map>
+         <key>ATTACH_LSHOULDER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's left shoulder.</string>
+         </map>
+         <key>ATTACH_LUARM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>20</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's left upper arm.</string>
+         </map>
+         <key>ATTACH_LULEG</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>27</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's lower upper leg.</string>
+         </map>
+         <key>ATTACH_MOUTH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>11</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's mouth.</string>
+         </map>
+         <key>ATTACH_NECK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>39</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's neck.</string>
+         </map>
+         <key>ATTACH_NOSE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>17</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's nose.</string>
+         </map>
+         <key>ATTACH_PELVIS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>10</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's pelvis.</string>
+         </map>
+         <key>ATTACH_REAR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>14</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's right ear.</string>
+         </map>
+         <key>ATTACH_REYE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>16</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's right eye.</string>
+         </map>
+         <key>ATTACH_RFOOT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>8</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's right foot.</string>
+         </map>
+         <key>ATTACH_RHAND</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's right hand.</string>
+         </map>
+         <key>ATTACH_RHIP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>22</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's right hip.</string>
+         </map>
+         <key>ATTACH_RIGHT_PEC</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>30</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's right pectoral.</string>
+         </map>
+         <key>ATTACH_RLARM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>19</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's right lower arm.</string>
+         </map>
+         <key>ATTACH_RLLEG</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>24</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's right lower leg.</string>
+         </map>
+         <key>ATTACH_RPEC</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>29</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's left pectoral. (deprecated, use ATTACH_LEFT_PEC)</string>
+         </map>
+         <key>ATTACH_RSHOULDER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's right shoulder.</string>
+         </map>
+         <key>ATTACH_RUARM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>18</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's right upper arm.</string>
+         </map>
+         <key>ATTACH_RULEG</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>23</integer>
+            <key>tooltip</key>
+            <string>Attach to the avatar's right upper leg.</string>
+         </map>
+         <key>AVOID_CHARACTERS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>AVOID_DYNAMIC_OBSTACLES</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>AVOID_NONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CAMERA_ACTIVE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>12</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CAMERA_BEHINDNESS_ANGLE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>8</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CAMERA_BEHINDNESS_LAG</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>9</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CAMERA_DISTANCE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>7</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CAMERA_FOCUS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>17</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CAMERA_FOCUS_LAG</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CAMERA_FOCUS_LOCKED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>22</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CAMERA_FOCUS_OFFSET</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CAMERA_FOCUS_THRESHOLD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>11</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CAMERA_PITCH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CAMERA_POSITION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>13</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CAMERA_POSITION_LAG</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CAMERA_POSITION_LOCKED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>22</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CAMERA_POSITION_THRESHOLD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>10</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CHANGED_ALLOWED_DROP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x40</string>
+            <key>tooltip</key>
+            <string>The object inventory has changed because an item was added through the llAllowInventoryDrop interface.</string>
+         </map>
+         <key>CHANGED_COLOR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x2</string>
+            <key>tooltip</key>
+            <string>The object colour has changed.</string>
+         </map>
+         <key>CHANGED_INVENTORY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x1</string>
+            <key>tooltip</key>
+            <string>The object inventory has changed.</string>
+         </map>
+         <key>CHANGED_LINK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x20</string>
+            <key>tooltip</key>
+            <string>The object has linked or its links were broken.</string>
+         </map>
+         <key>CHANGED_MEDIA</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2048</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CHANGED_OWNER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x80</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CHANGED_REGION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x100</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CHANGED_REGION_START</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x400</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CHANGED_SCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x8</string>
+            <key>tooltip</key>
+            <string>The object scale (size) has changed.</string>
+         </map>
+         <key>CHANGED_SHAPE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x4</string>
+            <key>tooltip</key>
+            <string>The object base shape has changed, e.g., a box to a cylinder.</string>
+         </map>
+         <key>CHANGED_TELEPORT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x200</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CHANGED_TEXTURE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x10</string>
+            <key>tooltip</key>
+            <string>The texture offset, scale rotation, or simply the object texture has changed.</string>
+         </map>
+         <key>CHARACTER_ACCOUNT_FOR_SKIPPED_FRAMES</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>14</integer>
+            <key>tooltip</key>
+            <string>If set to false, character will not attempt to catch up on lost time when pathfinding performance is low, potentially providing more reliable movement (albeit while potentially appearing to be more stuttery). Default is true to match pre-existing behavior.</string>
+         </map>
+         <key>CHARACTER_AVOIDANCE_MODE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string>Allows you to specify that a character should not try to avoid other characters, should not try to avoid dynamic obstacles (relatively fast moving objects and avatars), or both.</string>
+         </map>
+         <key>CHARACTER_CMD_JUMP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x01</string>
+            <key>tooltip</key>
+            <string>Makes the character jump. Requires an additional parameter, the height to jump, between 0.1m and 2.0m. This must be provided as the first element of the llExecCharacterCmd option list.</string>
+         </map>
+         <key>CHARACTER_CMD_SMOOTH_STOP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CHARACTER_CMD_STOP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x00</string>
+            <key>tooltip</key>
+            <string>Stops any current pathfinding operation.</string>
+         </map>
+         <key>CHARACTER_DESIRED_SPEED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>Speed of pursuit in meters per second.</string>
+         </map>
+         <key>CHARACTER_DESIRED_TURN_SPEED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>12</integer>
+            <key>tooltip</key>
+            <string>The character's maximum speed while turning about the Z axis. - Note that this is only loosely enforced.</string>
+         </map>
+         <key>CHARACTER_LENGTH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string>Set collision capsule length - cannot be less than two times the radius.</string>
+         </map>
+         <key>CHARACTER_MAX_ACCEL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>8</integer>
+            <key>tooltip</key>
+            <string>The character's maximum acceleration rate.</string>
+         </map>
+         <key>CHARACTER_MAX_DECEL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>9</integer>
+            <key>tooltip</key>
+            <string>The character's maximum deceleration rate.</string>
+         </map>
+         <key>CHARACTER_MAX_SPEED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>13</integer>
+            <key>tooltip</key>
+            <string>The character's maximum speed.</string>
+         </map>
+         <key>CHARACTER_MAX_TURN_RADIUS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>10</integer>
+            <key>tooltip</key>
+            <string>The character's turn radius when travelling at CHARACTER_MAX_TURN_SPEED.</string>
+         </map>
+         <key>CHARACTER_ORIENTATION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string>Valid options are: VERTICAL, HORIZONTAL.</string>
+         </map>
+         <key>CHARACTER_RADIUS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>Set collision capsule radius.</string>
+         </map>
+         <key>CHARACTER_STAY_WITHIN_PARCEL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>15</integer>
+            <key>tooltip</key>
+            <string>Determines whether a character can leave its starting parcel.\nTakes a boolean parameter. If TRUE, the character cannot voluntarilly leave the parcel, but can return to it.</string>
+         </map>
+         <key>CHARACTER_TYPE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string>Specifies which walk-ability coefficient will be used by this character.</string>
+         </map>
+         <key>CHARACTER_TYPE_A</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CHARACTER_TYPE_B</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CHARACTER_TYPE_C</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CHARACTER_TYPE_D</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CHARACTER_TYPE_NONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>CLICK_ACTION_BUY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>When the prim is clicked, the buy dialog is opened.</string>
+         </map>
+         <key>CLICK_ACTION_NONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string>Performs the default action: when the prim is clicked, touch events are triggered.</string>
+         </map>
+         <key>CLICK_ACTION_OPEN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string>When the prim is clicked, the object inventory dialog is opened.</string>
+         </map>
+         <key>CLICK_ACTION_OPEN_MEDIA</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string>When the prim is touched, the web media dialog is opened.</string>
+         </map>
+         <key>CLICK_ACTION_PAY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string>When the prim is clicked, the pay dialog is opened.</string>
+         </map>
+         <key>CLICK_ACTION_PLAY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string>When the prim is clicked, html-on-a-prim is enabled?</string>
+         </map>
+         <key>CLICK_ACTION_SIT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>When the prim is clicked, the avatar sits upon it.</string>
+         </map>
+         <key>CLICK_ACTION_TOUCH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string>When the prim is clicked, touch events are triggered.</string>
+         </map>
+         <key>CONTENT_TYPE_ATOM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string>"application/atom+xml"</string>
+         </map>
+         <key>CONTENT_TYPE_FORM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>7</integer>
+            <key>tooltip</key>
+            <string>"application/x-www-form-urlencoded"</string>
+         </map>
+         <key>CONTENT_TYPE_HTML</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>"text/html", only valid for embedded browsers on content owned by the person viewing. Falls back to "text/plain" otherwise.</string>
+         </map>
+         <key>CONTENT_TYPE_JSON</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string>"application/json"</string>
+         </map>
+         <key>CONTENT_TYPE_LLSD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string>"application/llsd+xml"</string>
+         </map>
+         <key>CONTENT_TYPE_RSS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>8</integer>
+            <key>tooltip</key>
+            <string>"application/rss+xml"</string>
+         </map>
+         <key>CONTENT_TYPE_TEXT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string>"text/plain"</string>
+         </map>
+         <key>CONTENT_TYPE_XHTML</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string>"application/xhtml+xml"</string>
+         </map>
+         <key>CONTENT_TYPE_XML</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>"application/xml"</string>
+         </map>
+         <key>CONTROL_BACK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x2</string>
+            <key>tooltip</key>
+            <string>Test for the avatar move back control.</string>
+         </map>
+         <key>CONTROL_DOWN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x20</string>
+            <key>tooltip</key>
+            <string>Test for the avatar move down control.</string>
+         </map>
+         <key>CONTROL_FWD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x1</string>
+            <key>tooltip</key>
+            <string>Test for the avatar move forward control.</string>
+         </map>
+         <key>CONTROL_LBUTTON</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x10000000</string>
+            <key>tooltip</key>
+            <string>Test for the avatar left button control.</string>
+         </map>
+         <key>CONTROL_LEFT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x4</string>
+            <key>tooltip</key>
+            <string>Test for the avatar move left control.</string>
+         </map>
+         <key>CONTROL_ML_LBUTTON</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x40000000</string>
+            <key>tooltip</key>
+            <string>Test for the avatar left button control while in mouse look.</string>
+         </map>
+         <key>CONTROL_RIGHT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x8</string>
+            <key>tooltip</key>
+            <string>Test for the avatar move right control.</string>
+         </map>
+         <key>CONTROL_ROT_LEFT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x100</string>
+            <key>tooltip</key>
+            <string>Test for the avatar rotate left control.</string>
+         </map>
+         <key>CONTROL_ROT_RIGHT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x200</string>
+            <key>tooltip</key>
+            <string>Test for the avatar rotate right control.</string>
+         </map>
+         <key>CONTROL_UP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x10</string>
+            <key>tooltip</key>
+            <string>Test for the avatar move up control.</string>
+         </map>
+         <key>DATA_BORN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string>The date the agent was born, returned in ISO 8601 format of YYYY-MM-DD.</string>
+         </map>
+         <key>DATA_NAME</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>The name of the agent.</string>
+         </map>
+         <key>DATA_ONLINE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>TRUE for online, FALSE for offline.</string>
+         </map>
+         <key>DATA_PAYINFO</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>8</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>DATA_RATING</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string>Returns the agent ratings as a comma separated string of six integers. They are:
+			1) Positive rated behaviour
+			2) Negative rated behaviour
+			3) Positive rated appearance
+			4) Negative rated appearance
+			5) Positive rated building
+			6) Negative rated building</string>
+         </map>
+         <key>DATA_SIM_POS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>DATA_SIM_RATING</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>7</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>DATA_SIM_STATUS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>DEBUG_CHANNEL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2147483647</integer>
+            <key>tooltip</key>
+            <string>DEBUG_CHANNEL is an integer constant that, when passed to llSay, llWhisper, or llShout as a channel parameter, will print text to the Script Warning/Error Window.</string>
+         </map>
+         <key>DEG_TO_RAD</key>
+         <map>
+            <key>type</key>
+            <string>float</string>
+            <key>value</key>
+            <real>0.01745329</real>
+            <key>tooltip</key>
+            <string>0.01745329 - Number of radians per degree.
+			You can use this to convert degrees to radians by multiplying the degrees by this number.</string>
+         </map>
+         <key>DENSITY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>Used with llSetPhysicsMaterial to enable the density value. Must be between 1.0 and 22587.0 (in Kg/m^3 -- see if you can figure out what 22587 represents)</string>
+         </map>
+         <key>EOF</key>
+         <map>
+            <key>type</key>
+            <string>string</string>
+            <key>value</key>
+            <string>0x0A0x0A0x0A</string>
+            <key>tooltip</key>
+            <string>Indicates the last line of a notecard was read.</string>
+         </map>
+         <key>ERR_GENERIC</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>ERR_MALFORMED_PARAMS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-3</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>ERR_PARCEL_PERMISSIONS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>ERR_RUNTIME_PERMISSIONS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-4</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>ERR_THROTTLED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-5</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>ESTATE_ACCESS_ALLOWED_AGENT_ADD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string>Add the agent to this estate's Allowed Residents list.</string>
+         </map>
+         <key>ESTATE_ACCESS_ALLOWED_AGENT_REMOVE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>8</integer>
+            <key>tooltip</key>
+            <string>Remove the agent from this estate's Allowed Residents list.</string>
+         </map>
+         <key>ESTATE_ACCESS_ALLOWED_GROUP_ADD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>16</integer>
+            <key>tooltip</key>
+            <string>Add the group to this estate's Allowed groups list.</string>
+         </map>
+         <key>ESTATE_ACCESS_ALLOWED_GROUP_REMOVE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>32</integer>
+            <key>tooltip</key>
+            <string>Remove the group from this estate's Allowed groups list.</string>
+         </map>
+         <key>ESTATE_ACCESS_BANNED_AGENT_ADD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>64</integer>
+            <key>tooltip</key>
+            <string>Add the agent to this estate's Banned residents list.</string>
+         </map>
+         <key>ESTATE_ACCESS_BANNED_AGENT_REMOVE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>128</integer>
+            <key>tooltip</key>
+            <string>Remove the agent from this estate's Banned residents list.</string>
+         </map>
+         <key>FALSE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string>An integer constant for boolean comparisons. Has the value '0'.</string>
+         </map>
+         <key>FORCE_DIRECT_PATH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>Makes character navigate in a straight line toward position. May be set to TRUE or FALSE.</string>
+         </map>
+         <key>FRICTION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>Used with llSetPhysicsMaterial to enable the friction value. Must be between 0.0 and 255.0</string>
+         </map>
+         <key>GCNP_RADIUS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>GCNP_STATIC</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>GRAVITY_MULTIPLIER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>8</integer>
+            <key>tooltip</key>
+            <string>Used with llSetPhysicsMaterial to enable the gravity multiplier value. Must be between -1.0 and +28.0</string>
+         </map>
+         <key>HORIZONTAL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>HTTP_BODY_MAXLENGTH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>HTTP_BODY_TRUNCATED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>HTTP_CUSTOM_HEADER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string>Add an extra custom HTTP header to the request. The first string is the name of the parameter to change, e.g. "Pragma", and the second string is the value, e.g. "no-cache". Up to 8 custom headers may be configured per request. Note that certain headers, such as the default headers, are blocked for security reasons.</string>
+         </map>
+         <key>HTTP_METHOD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>HTTP_MIMETYPE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>HTTP_PRAGMA_NO_CACHE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string>Allows enabling/disbling of the "Pragma: no-cache" header.</string>
+         </map>
+         <key>HTTP_VERBOSE_THROTTLE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>HTTP_VERIFY_CERT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>INVENTORY_ALL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>INVENTORY_ANIMATION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>20</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>INVENTORY_BODYPART</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>13</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>INVENTORY_CLOTHING</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>INVENTORY_GESTURE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>21</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>INVENTORY_LANDMARK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>INVENTORY_NONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>INVENTORY_NOTECARD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>7</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>INVENTORY_OBJECT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>INVENTORY_SCRIPT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>10</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>INVENTORY_SOUND</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>INVENTORY_TEXTURE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>JSON_APPEND</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>JSON_ARRAY</key>
+         <map>
+            <key>type</key>
+            <string>string</string>
+            <key>value</key>
+            <string>U+FDD2</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>JSON_DELETE</key>
+         <map>
+            <key>type</key>
+            <string>string</string>
+            <key>value</key>
+            <string>U+FDD8</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>JSON_FALSE</key>
+         <map>
+            <key>type</key>
+            <string>string</string>
+            <key>value</key>
+            <string>U+FDD7</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>JSON_INVALID</key>
+         <map>
+            <key>type</key>
+            <string>string</string>
+            <key>value</key>
+            <string>U+FDD0</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>JSON_NULL</key>
+         <map>
+            <key>type</key>
+            <string>string</string>
+            <key>value</key>
+            <string>U+FDD5</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>JSON_NUMBER</key>
+         <map>
+            <key>type</key>
+            <string>string</string>
+            <key>value</key>
+            <string>U+FDD3</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>JSON_OBJECT</key>
+         <map>
+            <key>type</key>
+            <string>string</string>
+            <key>value</key>
+            <string>U+FDD1</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>JSON_STRING</key>
+         <map>
+            <key>type</key>
+            <string>string</string>
+            <key>value</key>
+            <string>U+FDD4</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>JSON_TRUE</key>
+         <map>
+            <key>type</key>
+            <string>string</string>
+            <key>value</key>
+            <string>U+FDD6</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>KFM_CMD_PAUSE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>For use with KFM_COMMAND.</string>
+         </map>
+         <key>KFM_CMD_PLAY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string>For use with KFM_COMMAND.</string>
+         </map>
+         <key>KFM_CMD_SET_MODE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>KFM_CMD_STOP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>For use with KFM_COMMAND.</string>
+         </map>
+         <key>KFM_COMMAND</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>KFM_DATA</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>KFM_FORWARD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string>For use with KFM_MODE.</string>
+         </map>
+         <key>KFM_LOOP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>For use with KFM_MODE.</string>
+         </map>
+         <key>KFM_MODE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>KFM_PING_PONG</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>For use with KFM_MODE.</string>
+         </map>
+         <key>KFM_REVERSE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string>For use with KFM_MODE.</string>
+         </map>
+         <key>KFM_ROTATION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>For use with KFM_DATA.</string>
+         </map>
+         <key>KFM_TRANSLATION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>For use with KFM_DATA.</string>
+         </map>
+         <key>LAND_LARGE_BRUSH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string>Use a large brush size.\nNOTE: This value is incorrect, a large brush should be 2.</string>
+         </map>
+         <key>LAND_LEVEL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string>Action to level the land.</string>
+         </map>
+         <key>LAND_LOWER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>Action to lower the land.</string>
+         </map>
+         <key>LAND_MEDIUM_BRUSH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>Use a medium brush size.\nNOTE: This value is incorrect, a medium brush should be 1.</string>
+         </map>
+         <key>LAND_NOISE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>LAND_RAISE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>Action to raise the land.</string>
+         </map>
+         <key>LAND_REVERT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>LAND_SMALL_BRUSH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>Use a small brush size.\nNOTE: This value is incorrect, a small brush should be 0.</string>
+         </map>
+         <key>LAND_SMOOTH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>LINK_ALL_CHILDREN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-3</integer>
+            <key>tooltip</key>
+            <string>This targets every object except the root in the linked set.</string>
+         </map>
+         <key>LINK_ALL_OTHERS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-2</integer>
+            <key>tooltip</key>
+            <string>This targets every object in the linked set except the object with the script.</string>
+         </map>
+         <key>LINK_ROOT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>This targets the root of the linked set.</string>
+         </map>
+         <key>LINK_SET</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-1</integer>
+            <key>tooltip</key>
+            <string>This targets every object in the linked set.</string>
+         </map>
+         <key>LINK_THIS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-4</integer>
+            <key>tooltip</key>
+            <string>The link number of the prim containing the script.</string>
+         </map>
+         <key>LIST_STAT_GEOMETRIC_MEAN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>9</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>LIST_STAT_MAX</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>LIST_STAT_MEAN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>LIST_STAT_MEDIAN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>LIST_STAT_MIN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>LIST_STAT_NUM_COUNT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>8</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>LIST_STAT_RANGE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>LIST_STAT_STD_DEV</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>LIST_STAT_SUM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>LIST_STAT_SUM_SQUARES</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>7</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>LOOP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x2</string>
+            <key>tooltip</key>
+            <string>Loop the texture animation.</string>
+         </map>
+         <key>MASK_BASE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>MASK_EVERYONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>MASK_GROUP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>MASK_NEXT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>MASK_OWNER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>NULL_KEY</key>
+         <map>
+            <key>type</key>
+            <string>key</string>
+            <key>value</key>
+            <uuid>00000000-0000-0000-0000-000000000000</uuid>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>OBJECT_ATTACHED_POINT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>19</integer>
+            <key>tooltip</key>
+            <string>Gets the attachment point to which the object is attached.</string>
+         </map>
+         <key>OBJECT_CHARACTER_TIME</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>17</integer>
+            <key>tooltip</key>
+            <string>Units in seconds</string>
+         </map>
+         <key>OBJECT_CREATOR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>8</integer>
+            <key>tooltip</key>
+            <string>Gets the object's creator key. If id is an avatar, a NULL_KEY is returned.</string>
+         </map>
+         <key>OBJECT_DESC</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>Gets the object's description. If id is an avatar, an empty string is returned.</string>
+         </map>
+         <key>OBJECT_GROUP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>7</integer>
+            <key>tooltip</key>
+            <string>Gets the prims's group key. If id is an avatar, a NULL_KEY is returned.</string>
+         </map>
+         <key>OBJECT_NAME</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>Gets the object's name.</string>
+         </map>
+         <key>OBJECT_OWNER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string>Gets an object's owner's key. If id is group owned, a NULL_KEY is returned.</string>
+         </map>
+         <key>OBJECT_PATHFINDING_TYPE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>20</integer>
+            <key>tooltip</key>
+            <string>Returns the pathfinding setting of any object in the region. It returns an integer matching one of the OPT_* constants.</string>
+         </map>
+         <key>OBJECT_PHANTOM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>22</integer>
+            <key>tooltip</key>
+            <string>Returns boolean, detailing if phantom is enabled or disabled on the object.\nIf id is an avatar or attachment, 0 is returned.</string>
+         </map>
+         <key>OBJECT_PHYSICS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>21</integer>
+            <key>tooltip</key>
+            <string>Returns boolean, detailing if physics is enabled or disabled on the object.\nIf id is an avatar or attachment, 0 is returned.</string>
+         </map>
+         <key>OBJECT_PHYSICS_COST</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>16</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>OBJECT_POS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string>Gets the object's position in region coordinates.</string>
+         </map>
+         <key>OBJECT_PRIM_EQUIVALENCE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>13</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>OBJECT_RENDER_WEIGHT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>24</integer>
+            <key>tooltip</key>
+            <string>This is a flag used with llGetObjectDetails to get the Avatar_Rendering_Cost of an avatar, based on values reported by nearby viewers.\nIf no data is available, -1 is returned.\nThe maximum render weight stored by the simulator is 500000. When called against an object, 0 is returned.</string>
+         </map>
+         <key>OBJECT_RETURN_PARCEL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>OBJECT_RETURN_PARCEL_OWNER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>OBJECT_RETURN_REGION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>OBJECT_ROOT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>18</integer>
+            <key>tooltip</key>
+            <string>Gets the id of the root prim of the object requested.</string>
+         </map>
+         <key>OBJECT_ROT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string>Gets the object's rotation.</string>
+         </map>
+         <key>OBJECT_RUNNING_SCRIPT_COUNT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>9</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>OBJECT_SCRIPT_MEMORY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>11</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>OBJECT_SCRIPT_TIME</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>12</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>OBJECT_SERVER_COST</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>14</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>OBJECT_STREAMING_COST</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>15</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>OBJECT_TEMP_ON_REZ</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>23</integer>
+            <key>tooltip</key>
+            <string>Returns boolean, detailing if temporary is enabled or disabled on the object.</string>
+         </map>
+         <key>OBJECT_TOTAL_SCRIPT_COUNT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>10</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>OBJECT_UNKNOWN_DETAIL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>OBJECT_VELOCITY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string>Gets the object's velocity.</string>
+         </map>
+         <key>OPT_AVATAR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>Returned for avatars.</string>
+         </map>
+         <key>OPT_CHARACTER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>Returned for pathfinding characters.</string>
+         </map>
+         <key>OPT_EXCLUSION_VOLUME</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string>Returned for exclusion volumes.</string>
+         </map>
+         <key>OPT_LEGACY_LINKSET</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string>Returned for movable obstacles, movable phantoms, physical, and volumedetect objects.</string>
+         </map>
+         <key>OPT_MATERIAL_VOLUME</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string>Returned for material volumes.</string>
+         </map>
+         <key>OPT_OTHER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-1</integer>
+            <key>tooltip</key>
+            <string>Returned for attachments, Linden trees, and grass.</string>
+         </map>
+         <key>OPT_STATIC_OBSTACLE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string>Returned for static obstacles.</string>
+         </map>
+         <key>OPT_WALKABLE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string>Returned for walkable objects.</string>
+         </map>
+         <key>PARCEL_COUNT_GROUP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_COUNT_OTHER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_COUNT_OWNER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_COUNT_SELECTED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_COUNT_TEMP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_COUNT_TOTAL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_DETAILS_AREA</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string>The parcel's area, in square meters. (5 chars.).</string>
+         </map>
+         <key>PARCEL_DETAILS_DESC</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>The description of the parcel. (127 chars).</string>
+         </map>
+         <key>PARCEL_DETAILS_GROUP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string>The parcel group's key. (36 chars.).</string>
+         </map>
+         <key>PARCEL_DETAILS_ID</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string>The parcel's key. (36 chars.).</string>
+         </map>
+         <key>PARCEL_DETAILS_NAME</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string>The name of the parcel. (63 chars.).</string>
+         </map>
+         <key>PARCEL_DETAILS_OWNER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>The parcel owner's key. (36 chars.).</string>
+         </map>
+         <key>PARCEL_DETAILS_SEE_AVATARS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string>The parcel's avatar visibility setting. (1 char.).</string>
+         </map>
+         <key>PARCEL_FLAG_ALLOW_ALL_OBJECT_ENTRY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x08000000</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_FLAG_ALLOW_CREATE_GROUP_OBJECTS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x4000000</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_FLAG_ALLOW_CREATE_OBJECTS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x40</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_FLAG_ALLOW_DAMAGE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x20</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_FLAG_ALLOW_FLY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x1</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_FLAG_ALLOW_GROUP_OBJECT_ENTRY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x10000000</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_FLAG_ALLOW_GROUP_SCRIPTS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x2000000</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_FLAG_ALLOW_LANDMARK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x8</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_FLAG_ALLOW_SCRIPTS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x2</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_FLAG_ALLOW_TERRAFORM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x10</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_FLAG_LOCAL_SOUND_ONLY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x8000</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_FLAG_RESTRICT_PUSHOBJECT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x200000</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_FLAG_USE_ACCESS_GROUP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x100</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_FLAG_USE_ACCESS_LIST</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x200</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_FLAG_USE_BAN_LIST</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x400</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_FLAG_USE_LAND_PASS_LIST</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x800</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_MEDIA_COMMAND_AGENT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>7</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_MEDIA_COMMAND_AUTO_ALIGN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>9</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_MEDIA_COMMAND_DESC</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>12</integer>
+            <key>tooltip</key>
+            <string>Use this to get or set the parcel media description.</string>
+         </map>
+         <key>PARCEL_MEDIA_COMMAND_LOOP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_MEDIA_COMMAND_LOOP_SET</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>13</integer>
+            <key>tooltip</key>
+            <string>Used to get or set the parcel's media looping variable.</string>
+         </map>
+         <key>PARCEL_MEDIA_COMMAND_PAUSE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_MEDIA_COMMAND_PLAY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_MEDIA_COMMAND_SIZE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>11</integer>
+            <key>tooltip</key>
+            <string>Use this to get or set the parcel media pixel resolution.</string>
+         </map>
+         <key>PARCEL_MEDIA_COMMAND_STOP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_MEDIA_COMMAND_TEXTURE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_MEDIA_COMMAND_TIME</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_MEDIA_COMMAND_TYPE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>10</integer>
+            <key>tooltip</key>
+            <string>Use this to get or set the parcel media MIME type (e.g. "text/html").</string>
+         </map>
+         <key>PARCEL_MEDIA_COMMAND_UNLOAD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>8</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PARCEL_MEDIA_COMMAND_URL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PASSIVE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x4</string>
+            <key>tooltip</key>
+            <string>Static in-world objects.</string>
+         </map>
+         <key>PATROL_PAUSE_AT_WAYPOINTS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PAY_DEFAULT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PAY_HIDE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PAYMENT_INFO_ON_FILE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PAYMENT_INFO_USED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PERM_ALL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x7FFFFFFF</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PERM_COPY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x8000</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PERM_MODIFY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x4000</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PERM_MOVE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x80000</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PERM_TRANSFER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x2000</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PERMISSION_ATTACH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x20</string>
+            <key>tooltip</key>
+            <string>If this permission is enabled, the object can successfully call llAttachToAvatar to attach to the given avatar.</string>
+         </map>
+         <key>PERMISSION_CHANGE_JOINTS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x100</string>
+            <key>tooltip</key>
+            <string>(not yet implemented)</string>
+         </map>
+         <key>PERMISSION_CHANGE_LINKS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x80</string>
+            <key>tooltip</key>
+            <string>If this permission is enabled, the object can successfully call llCreateLink, llBreakLink, and llBreakAllLinks to change links to other objects.</string>
+         </map>
+         <key>PERMISSION_CHANGE_PERMISSIONS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x200</string>
+            <key>tooltip</key>
+            <string>(not yet implemented)</string>
+         </map>
+         <key>PERMISSION_CONTROL_CAMERA</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x800</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PERMISSION_DEBIT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x2</string>
+            <key>tooltip</key>
+            <string>If this permission is enabled, the object can successfully call llGiveMoney or llTransferLindenDollars to debit the owners account.</string>
+         </map>
+         <key>PERMISSION_OVERRIDE_ANIMATIONS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x8000</string>
+            <key>tooltip</key>
+            <string>Permission to override default animations.</string>
+         </map>
+         <key>PERMISSION_RELEASE_OWNERSHIP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x40</string>
+            <key>tooltip</key>
+            <string>(not yet implemented)</string>
+         </map>
+         <key>PERMISSION_REMAP_CONTROLS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x8</string>
+            <key>tooltip</key>
+            <string>(not yet implemented)</string>
+         </map>
+         <key>PERMISSION_RETURN_OBJECTS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>65536</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PERMISSION_SILENT_ESTATE_MANAGEMENT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x4000</string>
+            <key>tooltip</key>
+            <string>A script with this permission does not notify the object owner when it modifies estate access rules via llManageEstateAccess.</string>
+         </map>
+         <key>PERMISSION_TAKE_CONTROLS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x4</string>
+            <key>tooltip</key>
+            <string>If this permission enabled, the object can successfully call the llTakeControls libray call.</string>
+         </map>
+         <key>PERMISSION_TELEPORT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x1000</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PERMISSION_TRACK_CAMERA</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x400</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PERMISSION_TRIGGER_ANIMATION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x10</string>
+            <key>tooltip</key>
+            <string>If this permission is enabled, the object can successfully call llStartAnimation for the avatar that owns this.</string>
+         </map>
+         <key>PI</key>
+         <map>
+            <key>type</key>
+            <string>float</string>
+            <key>value</key>
+            <real>3.14159265</real>
+            <key>tooltip</key>
+            <string>3.14159265 - The number of radians in a semi-circle.</string>
+         </map>
+         <key>PI_BY_TWO</key>
+         <map>
+            <key>type</key>
+            <string>float</string>
+            <key>value</key>
+            <real>1.57079633</real>
+            <key>tooltip</key>
+            <string>1.57079633 - The number of radians in a quarter circle.</string>
+         </map>
+         <key>PING_PONG</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x8</string>
+            <key>tooltip</key>
+            <string>Play animation going forwards, then backwards.</string>
+         </map>
+         <key>PRIM_BUMP_BARK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_BLOBS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>12</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_BRICKS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_BRIGHT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_CHECKER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_CONCRETE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>7</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_DARK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_DISKS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>10</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_GRAVEL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>11</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_LARGETILE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>14</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_NONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_SHINY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>19</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_SIDING</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>13</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_STONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>9</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_STUCCO</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>15</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_SUCTION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>16</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_TILE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>8</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_WEAVE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>17</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_BUMP_WOOD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_CAST_SHADOWS</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>24</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_COLOR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>18</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_DESC</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>28</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_FLEXIBLE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>21</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_FULLBRIGHT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>20</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_GLOW</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>25</integer>
+            <key>tooltip</key>
+            <string>PRIM_GLOW is used to get or set the glow status of the face.</string>
+         </map>
+         <key>PRIM_HOLE_CIRCLE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x10</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_HOLE_DEFAULT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x00</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_HOLE_SQUARE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x20</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_HOLE_TRIANGLE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x30</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_LINK_TARGET</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>34</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_MATERIAL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_MATERIAL_FLESH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_MATERIAL_GLASS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_MATERIAL_LIGHT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>7</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_MATERIAL_METAL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_MATERIAL_PLASTIC</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_MATERIAL_RUBBER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_MATERIAL_STONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_MATERIAL_WOOD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_MEDIA_ALT_IMAGE_ENABLE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string>Boolean. Gets/Sets the default image state (the image that the user sees before a piece of media is active) for the chosen face. The default image is specified by Second Life's server for that media type.</string>
+         </map>
+         <key>PRIM_MEDIA_AUTO_LOOP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string>Boolean. Gets/Sets whether auto-looping is enabled.</string>
+         </map>
+         <key>PRIM_MEDIA_AUTO_PLAY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string>Boolean. Gets/Sets whether the media auto-plays when a Resident can view it.</string>
+         </map>
+         <key>PRIM_MEDIA_AUTO_SCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string>Boolean. Gets/Sets whether auto-scaling is enabled. Auto-scaling forces the media to the full size of the texture.</string>
+         </map>
+         <key>PRIM_MEDIA_AUTO_ZOOM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>7</integer>
+            <key>tooltip</key>
+            <string>Boolean. Gets/Sets whether clicking the media triggers auto-zoom and auto-focus on the media.</string>
+         </map>
+         <key>PRIM_MEDIA_CONTROLS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>Integer. Gets/Sets the style of controls. Can be either PRIM_MEDIA_CONTROLS_STANDARD or PRIM_MEDIA_CONTROLS_MINI.</string>
+         </map>
+         <key>PRIM_MEDIA_CONTROLS_MINI</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>Mini web navigation controls; does not include an address bar.</string>
+         </map>
+         <key>PRIM_MEDIA_CONTROLS_STANDARD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string>Standard web navigation controls.</string>
+         </map>
+         <key>PRIM_MEDIA_CURRENT_URL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>String. Gets/Sets the current url displayed on the chosen face. Changing this URL causes navigation. 1024 characters Maximum.</string>
+         </map>
+         <key>PRIM_MEDIA_FIRST_CLICK_INTERACT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>8</integer>
+            <key>tooltip</key>
+            <string>Boolean. Gets/Sets whether the first click interaction is enabled.</string>
+         </map>
+         <key>PRIM_MEDIA_HEIGHT_PIXELS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>10</integer>
+            <key>tooltip</key>
+            <string>Integer. Gets/Sets the height of the media in pixels.</string>
+         </map>
+         <key>PRIM_MEDIA_HOME_URL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string>String. Gets/Sets the home URL for the chosen face. 1024 characters maximum.</string>
+         </map>
+         <key>PRIM_MEDIA_MAX_HEIGHT_PIXELS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2048</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_MEDIA_MAX_URL_LENGTH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1024</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_MEDIA_MAX_WHITELIST_COUNT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>64</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_MEDIA_MAX_WHITELIST_SIZE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1024</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_MEDIA_MAX_WIDTH_PIXELS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2048</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_MEDIA_PARAM_MAX</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>14</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_MEDIA_PERM_ANYONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_MEDIA_PERM_GROUP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_MEDIA_PERM_NONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_MEDIA_PERM_OWNER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_MEDIA_PERMS_CONTROL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>14</integer>
+            <key>tooltip</key>
+            <string>Integer. Gets/Sets the permissions mask that control who can see the media control bar above the object:: PRIM_MEDIA_PERM_ANYONE, PRIM_MEDIA_PERM_GROUP, PRIM_MEDIA_PERM_NONE, PRIM_MEDIA_PERM_OWNER</string>
+         </map>
+         <key>PRIM_MEDIA_PERMS_INTERACT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>13</integer>
+            <key>tooltip</key>
+            <string>Integer. Gets/Sets the permissions mask that control who can interact with the object: PRIM_MEDIA_PERM_ANYONE, PRIM_MEDIA_PERM_GROUP, PRIM_MEDIA_PERM_NONE, PRIM_MEDIA_PERM_OWNER</string>
+         </map>
+         <key>PRIM_MEDIA_WHITELIST</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>12</integer>
+            <key>tooltip</key>
+            <string>String. Gets/Sets the white-list as a string of escaped, comma-separated URLs. This string can hold up to 64 URLs or 1024 characters, whichever comes first.</string>
+         </map>
+         <key>PRIM_MEDIA_WHITELIST_ENABLE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>11</integer>
+            <key>tooltip</key>
+            <string>Boolean. Gets/Sets whether navigation is restricted to URLs in PRIM_MEDIA_WHITELIST.</string>
+         </map>
+         <key>PRIM_MEDIA_WIDTH_PIXELS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>9</integer>
+            <key>tooltip</key>
+            <string>Integer. Gets/Sets the width of the media in pixels.</string>
+         </map>
+         <key>PRIM_NAME</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>27</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_OMEGA</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>32</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_PHANTOM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_PHYSICS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_PHYSICS_SHAPE_CONVEX</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>Use the convex hull of the prim shape for physics (this is the default for mesh objects).</string>
+         </map>
+         <key>PRIM_PHYSICS_SHAPE_NONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>Ignore this prim in the physics shape. NB: This cannot be applied to the root prim.</string>
+         </map>
+         <key>PRIM_PHYSICS_SHAPE_PRIM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string>Use the normal prim shape for physics (this is the default for all non-mesh objects).</string>
+         </map>
+         <key>PRIM_PHYSICS_SHAPE_TYPE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>30</integer>
+            <key>tooltip</key>
+            <string>Allows you to set the physics shape type of a prim via lsl. Permitted values are:
+			PRIM_PHYSICS_SHAPE_NONE, PRIM_PHYSICS_SHAPE_PRIM, PRIM_PHYSICS_SHAPE_CONVEX</string>
+         </map>
+         <key>PRIM_POINT_LIGHT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>23</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_POS_LOCAL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>33</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_POSITION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_ROT_LOCAL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>29</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_ROTATION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>8</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_SCULPT_FLAG_INVERT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>64</integer>
+            <key>tooltip</key>
+            <string>Render inside out (inverts the normals).</string>
+         </map>
+         <key>PRIM_SCULPT_FLAG_MIRROR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>128</integer>
+            <key>tooltip</key>
+            <string>Render an X axis mirror of the sculpty.</string>
+         </map>
+         <key>PRIM_SCULPT_TYPE_CYLINDER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_SCULPT_TYPE_MASK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>7</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_SCULPT_TYPE_PLANE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_SCULPT_TYPE_SPHERE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_SCULPT_TYPE_TORUS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_SHINY_HIGH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_SHINY_LOW</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_SHINY_MEDIUM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_SHINY_NONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_SIZE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>7</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_SLICE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>35</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_TEMP_ON_REZ</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_TEXGEN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>22</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_TEXGEN_DEFAULT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_TEXGEN_PLANAR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_TEXT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>26</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_TEXTURE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>17</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_TYPE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>9</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_TYPE_BOX</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_TYPE_CYLINDER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_TYPE_PRISM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_TYPE_RING</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_TYPE_SCULPT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>7</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_TYPE_SPHERE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_TYPE_TORUS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PRIM_TYPE_TUBE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PROFILE_NONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string>Disables profiling</string>
+         </map>
+         <key>PROFILE_SCRIPT_MEMORY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>Enables memory profiling</string>
+         </map>
+         <key>PSYS_PART_BF_DEST_COLOR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PSYS_PART_BF_ONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PSYS_PART_BF_ONE_MINUS_DEST_COLOR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PSYS_PART_BF_SOURCE_ALPHA</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>7</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PSYS_PART_BF_SOURCE_COLOR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PSYS_PART_BF_ZERO</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PSYS_PART_BLEND_FUNC_DEST</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>25</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PSYS_PART_BLEND_FUNC_SOURCE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>24</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PSYS_PART_BOUNCE_MASK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x4</string>
+            <key>tooltip</key>
+            <string>Particles bounce off of a plane at the objects Z height.</string>
+         </map>
+         <key>PSYS_PART_EMISSIVE_MASK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x100</string>
+            <key>tooltip</key>
+            <string>The particle glows.</string>
+         </map>
+         <key>PSYS_PART_END_ALPHA</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string>A float which determines the ending alpha of the object.</string>
+         </map>
+         <key>PSYS_PART_END_COLOR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string>A vector &lt;r, g, b&gt; which determines the ending colour of the object.</string>
+         </map>
+         <key>PSYS_PART_END_GLOW</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>27</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PSYS_PART_END_SCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string>A vector &lt;sx, sy, z&gt;, which is the ending size of the particle billboard in meters (z is ignored).</string>
+         </map>
+         <key>PSYS_PART_FLAGS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string>Each particle that is emitted by the particle system is simulated based on the following flags. To use multiple flags, bitwise or (|) them together.</string>
+         </map>
+         <key>PSYS_PART_FOLLOW_SRC_MASK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x10</string>
+            <key>tooltip</key>
+            <string>The particle position is relative to the source objects position.</string>
+         </map>
+         <key>PSYS_PART_FOLLOW_VELOCITY_MASK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x20</string>
+            <key>tooltip</key>
+            <string>The particle orientation is rotated so the vertical axis faces towards the particle velocity.</string>
+         </map>
+         <key>PSYS_PART_INTERP_COLOR_MASK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x1</string>
+            <key>tooltip</key>
+            <string>Interpolate both the colour and alpha from the start value to the end value.</string>
+         </map>
+         <key>PSYS_PART_INTERP_SCALE_MASK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x2</string>
+            <key>tooltip</key>
+            <string>Interpolate the particle scale from the start value to the end value.</string>
+         </map>
+         <key>PSYS_PART_MAX_AGE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>19</integer>
+            <key>tooltip</key>
+            <string>Age in seconds of a particle at which it dies.</string>
+         </map>
+         <key>PSYS_PART_RIBBON_MASK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1024</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PSYS_PART_START_ALPHA</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>A float which determines the starting alpha of the object.</string>
+         </map>
+         <key>PSYS_PART_START_COLOR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>A vector &lt;r.r, g.g, b.b&gt; which determines the starting colour of the object.</string>
+         </map>
+         <key>PSYS_PART_START_GLOW</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>26</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PSYS_PART_START_SCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string>A vector &lt;sx, sy, z&gt;, which is the starting size of the particle billboard in meters (z is ignored).</string>
+         </map>
+         <key>PSYS_PART_TARGET_LINEAR_MASK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x80</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PSYS_PART_TARGET_POS_MASK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x40</string>
+            <key>tooltip</key>
+            <string>The particle heads towards the location of the target object as defined by PSYS_SRC_TARGET_KEY.</string>
+         </map>
+         <key>PSYS_PART_WIND_MASK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x8</string>
+            <key>tooltip</key>
+            <string>Particles have their velocity damped towards the wind velocity.</string>
+         </map>
+         <key>PSYS_SRC_ACCEL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>8</integer>
+            <key>tooltip</key>
+            <string>A vector &lt;x, y, z&gt; which is the acceleration to apply on particles.</string>
+         </map>
+         <key>PSYS_SRC_ANGLE_BEGIN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>22</integer>
+            <key>tooltip</key>
+            <string>Area in radians specifying where particles will NOT be created (for ANGLE patterns)</string>
+         </map>
+         <key>PSYS_SRC_ANGLE_END</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>23</integer>
+            <key>tooltip</key>
+            <string>Area in radians filled with particles (for ANGLE patterns) (if lower than PSYS_SRC_ANGLE_BEGIN, acts as PSYS_SRC_ANGLE_BEGIN itself, and PSYS_SRC_ANGLE_BEGIN acts as PSYS_SRC_ANGLE_END).</string>
+         </map>
+         <key>PSYS_SRC_BURST_PART_COUNT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>15</integer>
+            <key>tooltip</key>
+            <string>How many particles to release in a burst.</string>
+         </map>
+         <key>PSYS_SRC_BURST_RADIUS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>16</integer>
+            <key>tooltip</key>
+            <string>What distance from the center of the object to create the particles.</string>
+         </map>
+         <key>PSYS_SRC_BURST_RATE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>13</integer>
+            <key>tooltip</key>
+            <string>How often to release a particle burst (float seconds).</string>
+         </map>
+         <key>PSYS_SRC_BURST_SPEED_MAX</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>18</integer>
+            <key>tooltip</key>
+            <string>Maximum speed that a particle should be moving.</string>
+         </map>
+         <key>PSYS_SRC_BURST_SPEED_MIN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>17</integer>
+            <key>tooltip</key>
+            <string>Minimum speed that a particle should be moving.</string>
+         </map>
+         <key>PSYS_SRC_INNERANGLE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>10</integer>
+            <key>tooltip</key>
+            <string>Specifies the inner angle of the arc created by the PSYS_SRC_PATTERN_ANGLE or PSYS_SRC_PATTERN_ANGLE_CONE source pattern.
+			The area specified will NOT have particles in it.</string>
+         </map>
+         <key>PSYS_SRC_MAX_AGE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>19</integer>
+            <key>tooltip</key>
+            <string>How long this particle system should last, 0.0 means forever.</string>
+         </map>
+         <key>PSYS_SRC_OMEGA</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>21</integer>
+            <key>tooltip</key>
+            <string>Sets the angular velocity to rotate the axis that SRC_PATTERN_ANGLE and SRC_PATTERN_ANGLE_CONE use.</string>
+         </map>
+         <key>PSYS_SRC_OUTERANGLE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>11</integer>
+            <key>tooltip</key>
+            <string>Specifies the outer angle of the arc created by the PSYS_SRC_PATTERN_ANGLE or PSYS_SRC_PATTERN_ANGLE_CONE source pattern.
+			The area between the outer and inner angle will be filled with particles.</string>
+         </map>
+         <key>PSYS_SRC_PATTERN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>9</integer>
+            <key>tooltip</key>
+            <string>The pattern which is used to generate particles.
+			Use one of the following values: PSYS_SRC_PATTERN Values.</string>
+         </map>
+         <key>PSYS_SRC_PATTERN_ANGLE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x04</string>
+            <key>tooltip</key>
+            <string>Shoot particles across a 2 dimensional area defined by the arc created from PSYS_SRC_OUTERANGLE. There will be an open area defined by PSYS_SRC_INNERANGLE within the larger arc.</string>
+         </map>
+         <key>PSYS_SRC_PATTERN_ANGLE_CONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x08</string>
+            <key>tooltip</key>
+            <string>Shoot particles out in a 3 dimensional cone with an outer arc of PSYS_SRC_OUTERANGLE and an inner open area defined by PSYS_SRC_INNERANGLE.</string>
+         </map>
+         <key>PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x10</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PSYS_SRC_PATTERN_DROP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x01</string>
+            <key>tooltip</key>
+            <string>Drop particles at the source position.</string>
+         </map>
+         <key>PSYS_SRC_PATTERN_EXPLODE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x02</string>
+            <key>tooltip</key>
+            <string>Shoot particles out in all directions, using the burst parameters.</string>
+         </map>
+         <key>PSYS_SRC_TARGET_KEY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>20</integer>
+            <key>tooltip</key>
+            <string>The key of a target object to move towards if PSYS_PART_TARGET_POS_MASK is enabled.</string>
+         </map>
+         <key>PSYS_SRC_TEXTURE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>12</integer>
+            <key>tooltip</key>
+            <string>An asset name for the texture to use for the particles.</string>
+         </map>
+         <key>PU_EVADE_HIDDEN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x07</string>
+            <key>tooltip</key>
+            <string>Triggered when an llEvade character thinks it has hidden from its pursuer.</string>
+         </map>
+         <key>PU_EVADE_SPOTTED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x08</string>
+            <key>tooltip</key>
+            <string>Triggered when an llEvade character switches from hiding to running</string>
+         </map>
+         <key>PU_FAILURE_DYNAMIC_PATHFINDING_DISABLED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>10</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PU_FAILURE_INVALID_GOAL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x03</string>
+            <key>tooltip</key>
+            <string>Goal is not on the navigation-mesh and cannot be reached.</string>
+         </map>
+         <key>PU_FAILURE_INVALID_START</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x02</string>
+            <key>tooltip</key>
+            <string>Character cannot navigate from the current location - e.g., the character is off the navmesh or too high above it.</string>
+         </map>
+         <key>PU_FAILURE_NO_NAVMESH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x09</string>
+            <key>tooltip</key>
+            <string>This is a fatal error reported to a character when there is no navmesh for the region. This usually indicates a server failure and users should file a bug report and include the time and region in which they received this message.</string>
+         </map>
+         <key>PU_FAILURE_NO_VALID_DESTINATION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x06</string>
+            <key>tooltip</key>
+            <string>There is no good place for the character to go - e.g., it is patrolling and all the patrol points are now unreachable.</string>
+         </map>
+         <key>PU_FAILURE_OTHER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1000000</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PU_FAILURE_PARCEL_UNREACHABLE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>11</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PU_FAILURE_TARGET_GONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x05</string>
+            <key>tooltip</key>
+            <string>Target (for llPursue or llEvade) can no longer be tracked - e.g., it left the region or is an avatar that is now more than about 30m outside the region.</string>
+         </map>
+         <key>PU_FAILURE_UNREACHABLE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x04</string>
+            <key>tooltip</key>
+            <string>Goal is no longer reachable for some reason - e.g., an obstacle blocks the path.</string>
+         </map>
+         <key>PU_GOAL_REACHED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x01</string>
+            <key>tooltip</key>
+            <string>Character has reached the goal and will stop or choose a new goal (if wandering).</string>
+         </map>
+         <key>PU_SLOWDOWN_DISTANCE_REACHED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x00</string>
+            <key>tooltip</key>
+            <string>Character is near current goal.</string>
+         </map>
+         <key>PUBLIC_CHANNEL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string>PUBLIC_CHANNEL is an integer constant that, when passed to llSay, llWhisper, or llShout as a channel parameter, will print text to the publicly heard chat channel.</string>
+         </map>
+         <key>PURSUIT_FUZZ_FACTOR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string>Selects a random destination near the offset.</string>
+         </map>
+         <key>PURSUIT_GOAL_TOLERANCE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>PURSUIT_INTERCEPT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string>Define whether the character attempts to predict the target's location.</string>
+         </map>
+         <key>PURSUIT_OFFSET</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>Go to a position offset from the target.</string>
+         </map>
+         <key>RAD_TO_DEG</key>
+         <map>
+            <key>type</key>
+            <string>float</string>
+            <key>value</key>
+            <real>57.2957795</real>
+            <key>tooltip</key>
+            <string>57.2957795 - Number of degrees per radian. You can use this number to convert radians to degrees by multiplying the radians by this number.</string>
+         </map>
+         <key>RC_DATA_FLAGS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>RC_DETECT_PHANTOM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>RC_GET_LINK_NUM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>RC_GET_NORMAL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>RC_GET_ROOT_KEY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>RC_MAX_HITS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>RC_REJECT_AGENTS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>RC_REJECT_LAND</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>8</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>RC_REJECT_NONPHYSICAL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>RC_REJECT_PHYSICAL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>RC_REJECT_TYPES</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>RCERR_CAST_TIME_EXCEEDED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-3</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>RCERR_SIM_PERF_LOW</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>RCERR_UNKNOWN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>-1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>REGION_FLAG_ALLOW_DAMAGE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x1</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>REGION_FLAG_ALLOW_DIRECT_TELEPORT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x100000</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>REGION_FLAG_BLOCK_FLY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x80000</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>REGION_FLAG_BLOCK_TERRAFORM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x40</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>REGION_FLAG_DISABLE_COLLISIONS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x1000</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>REGION_FLAG_DISABLE_PHYSICS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x4000</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>REGION_FLAG_FIXED_SUN</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x10</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>REGION_FLAG_RESTRICT_PUSHOBJECT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x400000</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>REGION_FLAG_SANDBOX</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x100</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>REMOTE_DATA_CHANNEL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>REMOTE_DATA_REPLY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>REMOTE_DATA_REQUEST</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>REQUIRE_LINE_OF_SIGHT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>Define whether the character needs a line-of-sight to give chase.</string>
+         </map>
+         <key>RESTITUTION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string>Used with llSetPhysicsMaterial to enable the density value. Must be between 0.0 and 1.0</string>
+         </map>
+         <key>REVERSE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x4</string>
+            <key>tooltip</key>
+            <string>Play animation in reverse direction.</string>
+         </map>
+         <key>ROTATE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x20</string>
+            <key>tooltip</key>
+            <string>Animate texture rotation.</string>
+         </map>
+         <key>SCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x40</string>
+            <key>tooltip</key>
+            <string>Animate the texture scale.</string>
+         </map>
+         <key>SCRIPTED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x8</string>
+            <key>tooltip</key>
+            <string>Scripted in-world objects.</string>
+         </map>
+         <key>SIM_STAT_PCT_CHARS_STEPPED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string>Returns the % of pathfinding characters skipped each frame, averaged over the last minute.</string>
+         </map>
+         <key>SMOOTH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x10</string>
+            <key>tooltip</key>
+            <string>Slide in the X direction, instead of playing separate frames.</string>
+         </map>
+         <key>SQRT2</key>
+         <map>
+            <key>type</key>
+            <string>float</string>
+            <key>value</key>
+            <real>1.41421356</real>
+            <key>tooltip</key>
+            <string>1.41421356 - The square root of 2.</string>
+         </map>
+         <key>STATUS_BLOCK_GRAB</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>64</integer>
+            <key>tooltip</key>
+            <string>Controls whether the object can be grabbed.</string>
+         </map>
+         <key>STATUS_BLOCK_GRAB_OBJECT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1024</integer>
+            <key>tooltip</key>
+            <string>Prevent click-and-drag movement on all prims in the object.</string>
+         </map>
+         <key>STATUS_BOUNDS_ERROR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1002</integer>
+            <key>tooltip</key>
+            <string>Argument(s) passed to function had a bounds error.</string>
+         </map>
+         <key>STATUS_CAST_SHADOWS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x200</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>STATUS_DIE_AT_EDGE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x80</string>
+            <key>tooltip</key>
+            <string>Controls whether the object is returned to the owners inventory if it wanders off the edge of the world.</string>
+         </map>
+         <key>STATUS_INTERNAL_ERROR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1999</integer>
+            <key>tooltip</key>
+            <string>An internal error occurred.</string>
+         </map>
+         <key>STATUS_MALFORMED_PARAMS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1000</integer>
+            <key>tooltip</key>
+            <string>Function was called with malformed parameters.</string>
+         </map>
+         <key>STATUS_NOT_FOUND</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1003</integer>
+            <key>tooltip</key>
+            <string>Object or other item was not found.</string>
+         </map>
+         <key>STATUS_NOT_SUPPORTED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1004</integer>
+            <key>tooltip</key>
+            <string>Feature not supported.</string>
+         </map>
+         <key>STATUS_OK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string>Result of function call was a success.</string>
+         </map>
+         <key>STATUS_PHANTOM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x10</string>
+            <key>tooltip</key>
+            <string>Controls/indicates whether the object collides or not.</string>
+         </map>
+         <key>STATUS_PHYSICS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x1</string>
+            <key>tooltip</key>
+            <string>Controls/indicates whether the object moves physically.</string>
+         </map>
+         <key>STATUS_RETURN_AT_EDGE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x100</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>STATUS_ROTATE_X</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x2</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>STATUS_ROTATE_Y</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x4</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>STATUS_ROTATE_Z</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x8</string>
+            <key>tooltip</key>
+            <string>Controls/indicates whether the object can physically rotate around
+			the specific axis or not. This flag has no meaning
+			for non-physical objects. Set the value to FALSE
+			if you want to disable rotation around that axis. The
+			default is TRUE for a physical object.
+			A useful example to think about when visualizing
+			the effect is a sit-and-spin device. They spin around the
+			Z axis (up) but not around the X or Y axis.</string>
+         </map>
+         <key>STATUS_SANDBOX</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x20</string>
+            <key>tooltip</key>
+            <string>Controls/indicates whether the object can cross region boundaries
+			and move more than 20 meters from its creation
+			point. The default if FALSE.</string>
+         </map>
+         <key>STATUS_TYPE_MISMATCH</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1001</integer>
+            <key>tooltip</key>
+            <string>Argument(s) passed to function had a type mismatch.</string>
+         </map>
+         <key>STATUS_WHITELIST_FAILED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2001</integer>
+            <key>tooltip</key>
+            <string>Whitelist Failed.</string>
+         </map>
+         <key>STRING_TRIM</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x03</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>STRING_TRIM_HEAD</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x01</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>STRING_TRIM_TAIL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x02</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>TEXTURE_BLANK</key>
+         <map>
+            <key>type</key>
+            <string>key</string>
+            <key>value</key>
+            <uuid>5748decc-f629-461c-9a36-a35a221fe21f</uuid>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>TEXTURE_DEFAULT</key>
+         <map>
+            <key>type</key>
+            <string>key</string>
+            <key>value</key>
+            <uuid>89556747-24cb-43ed-920b-47caed15465f</uuid>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>TEXTURE_MEDIA</key>
+         <map>
+            <key>type</key>
+            <string>key</string>
+            <key>value</key>
+            <uuid>8b5fec65-8d8d-9dc5-cda8-8fdf2716e361</uuid>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>TEXTURE_PLYWOOD</key>
+         <map>
+            <key>type</key>
+            <string>key</string>
+            <key>value</key>
+            <uuid>89556747-24cb-43ed-920b-47caed15465f</uuid>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>TEXTURE_TRANSPARENT</key>
+         <map>
+            <key>type</key>
+            <string>key</string>
+            <key>value</key>
+            <uuid>8dcd4a48-2d37-4909-9f78-f7a9eb4ef903</uuid>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>TOUCH_INVALID_FACE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0xFFFFFFFF</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>TOUCH_INVALID_TEXCOORD</key>
+         <map>
+            <key>type</key>
+            <string>vector</string>
+            <key>value</key>
+            <string>&lt;-1.0, -1.0, 0.0&gt;</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>TOUCH_INVALID_VECTOR</key>
+         <map>
+            <key>type</key>
+            <string>vector</string>
+            <key>value</key>
+            <string>&lt;0.0, 0.0, 0.0&gt;</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>TRAVERSAL_TYPE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>7</integer>
+            <key>tooltip</key>
+            <string>One of TRAVERSAL_TYPE_FAST, TRAVERSAL_TYPE_SLOW, and TRAVERSAL_TYPE_NONE.</string>
+         </map>
+         <key>TRAVERSAL_TYPE_FAST</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>TRAVERSAL_TYPE_NONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>TRAVERSAL_TYPE_SLOW</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>TRUE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>An integer constant for boolean comparisons. Has the value '1'.</string>
+         </map>
+         <key>TWO_PI</key>
+         <map>
+            <key>type</key>
+            <string>float</string>
+            <key>value</key>
+            <real>6.28318530</real>
+            <key>tooltip</key>
+            <string>6.28318530 - The radians of a circle.</string>
+         </map>
+         <key>TYPE_FLOAT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>The list entry is a float.</string>
+         </map>
+         <key>TYPE_INTEGER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>The list entry is an integer.</string>
+         </map>
+         <key>TYPE_INVALID</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string>The list entry is invalid.</string>
+         </map>
+         <key>TYPE_KEY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string>The list entry is a key.</string>
+         </map>
+         <key>TYPE_ROTATION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>6</integer>
+            <key>tooltip</key>
+            <string>The list entry is a rotation.</string>
+         </map>
+         <key>TYPE_STRING</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string>The list entry is a string.</string>
+         </map>
+         <key>TYPE_VECTOR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string>The list entry is a vector.</string>
+         </map>
+         <key>URL_REQUEST_DENIED</key>
+         <map>
+            <key>type</key>
+            <string>string</string>
+            <key>value</key>
+            <string>URL_REQUEST_DENIED</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>URL_REQUEST_GRANTED</key>
+         <map>
+            <key>type</key>
+            <string>string</string>
+            <key>value</key>
+            <string>URL_REQUEST_GRANTED</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>32</integer>
+            <key>tooltip</key>
+            <string>A slider between minimum (0.0) and maximum (1.0) deflection of angular orientation. That is, it's a simple scalar for modulating the strength of angular deflection such that the vehicles preferred axis of motion points toward its real velocity.</string>
+         </map>
+         <key>VEHICLE_ANGULAR_DEFLECTION_TIMESCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>33</integer>
+            <key>tooltip</key>
+            <string>The time-scale for exponential success of linear deflection deflection. Its another way to specify the strength of the vehicles tendency to reorient itself so that its preferred axis of motion agrees with its true velocity.</string>
+         </map>
+         <key>VEHICLE_ANGULAR_FRICTION_TIMESCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>17</integer>
+            <key>tooltip</key>
+            <string>A vector of timescales for exponential decay of the vehicles angular velocity about its preferred axes of motion (at, left, up).
+			Range = [0.07, inf) seconds for each element of the vector.</string>
+         </map>
+         <key>VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>35</integer>
+            <key>tooltip</key>
+            <string>The timescale for exponential decay of the angular motors magnitude.</string>
+         </map>
+         <key>VEHICLE_ANGULAR_MOTOR_DIRECTION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>19</integer>
+            <key>tooltip</key>
+            <string>The direction and magnitude (in preferred frame) of the vehicles angular motor.The vehicle will accelerate (or decelerate if necessary) to match its velocity to its motor.</string>
+         </map>
+         <key>VEHICLE_ANGULAR_MOTOR_TIMESCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>34</integer>
+            <key>tooltip</key>
+            <string>The timescale for exponential approach to full angular motor velocity.</string>
+         </map>
+         <key>VEHICLE_BANKING_EFFICIENCY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>38</integer>
+            <key>tooltip</key>
+            <string>A slider between anti (-1.0), none (0.0), and maxmum (1.0) banking strength.</string>
+         </map>
+         <key>VEHICLE_BANKING_MIX</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>39</integer>
+            <key>tooltip</key>
+            <string>A slider between static (0.0) and dynamic (1.0) banking. "Static" means the banking scales only with the angle of roll, whereas "dynamic" is a term that also scales with the vehicles linear speed.</string>
+         </map>
+         <key>VEHICLE_BANKING_TIMESCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>40</integer>
+            <key>tooltip</key>
+            <string>The timescale for banking to exponentially approach its maximum effect. This is another way to scale the strength of the banking effect, however it affects the term that is proportional to the difference between what the banking behavior is trying to do, and what the vehicle is actually doing.</string>
+         </map>
+         <key>VEHICLE_BUOYANCY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>27</integer>
+            <key>tooltip</key>
+            <string>A slider between minimum (0.0) and maximum anti-gravity (1.0).</string>
+         </map>
+         <key>VEHICLE_FLAG_CAMERA_DECOUPLED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x200</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x10</string>
+            <key>tooltip</key>
+            <string>Hover at global height.</string>
+         </map>
+         <key>VEHICLE_FLAG_HOVER_TERRAIN_ONLY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x8</string>
+            <key>tooltip</key>
+            <string>Ignore water height when hovering.</string>
+         </map>
+         <key>VEHICLE_FLAG_HOVER_UP_ONLY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x20</string>
+            <key>tooltip</key>
+            <string>Hover does not push down. Use this flag for hovering vehicles that should be able to jump above their hover height.</string>
+         </map>
+         <key>VEHICLE_FLAG_HOVER_WATER_ONLY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x4</string>
+            <key>tooltip</key>
+            <string>Ignore terrain height when hovering.</string>
+         </map>
+         <key>VEHICLE_FLAG_LIMIT_MOTOR_UP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x40</string>
+            <key>tooltip</key>
+            <string>Prevents ground vehicles from motoring into the sky.</string>
+         </map>
+         <key>VEHICLE_FLAG_LIMIT_ROLL_ONLY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x2</string>
+            <key>tooltip</key>
+            <string>For vehicles with vertical attractor that want to be able to climb/dive, for instance, aeroplanes that want to use the banking feature.</string>
+         </map>
+         <key>VEHICLE_FLAG_MOUSELOOK_BANK</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x100</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>VEHICLE_FLAG_MOUSELOOK_STEER</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x80</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>VEHICLE_FLAG_NO_DEFLECTION_UP</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x1</string>
+            <key>tooltip</key>
+            <string>This flag prevents linear deflection parallel to world z-axis. This is useful for preventing ground vehicles with large linear deflection, like bumper cars, from climbing their linear deflection into the sky.</string>
+         </map>
+         <key>VEHICLE_FLAG_NO_FLY_UP</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <string>0x1</string>
+            <key>tooltip</key>
+            <string>Old, changed to VEHICLE_FLAG_NO_DEFLECTION_UP</string>
+         </map>
+         <key>VEHICLE_HOVER_EFFICIENCY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>25</integer>
+            <key>tooltip</key>
+            <string>A slider between minimum (0.0 = bouncy) and maximum (1.0 = fast as possible) damped motion of the hover behavior. </string>
+         </map>
+         <key>VEHICLE_HOVER_HEIGHT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>24</integer>
+            <key>tooltip</key>
+            <string>The height (above the terrain or water, or global) at which the vehicle will try to hover.</string>
+         </map>
+         <key>VEHICLE_HOVER_TIMESCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>26</integer>
+            <key>tooltip</key>
+            <string>Period of time (in seconds) for the vehicle to achieve its hover height.</string>
+         </map>
+         <key>VEHICLE_LINEAR_DEFLECTION_EFFICIENCY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>28</integer>
+            <key>tooltip</key>
+            <string>A slider between minimum (0.0) and maximum (1.0) deflection of linear velocity. That is, its a simple scalar for modulating the strength of linear deflection.</string>
+         </map>
+         <key>VEHICLE_LINEAR_DEFLECTION_TIMESCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>29</integer>
+            <key>tooltip</key>
+            <string>The timescale for exponential success of linear deflection deflection. It is another way to specify how much time it takes for the vehicles linear velocity to be redirected to its preferred axis of motion.</string>
+         </map>
+         <key>VEHICLE_LINEAR_FRICTION_TIMESCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>16</integer>
+            <key>tooltip</key>
+            <string>A vector of timescales for exponential decay of the vehicles linear velocity along its preferred axes of motion (at, left, up).
+			Range = [0.07, inf) seconds for each element of the vector.</string>
+         </map>
+         <key>VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>35</integer>
+            <key>tooltip</key>
+            <string>The timescale for exponential decay of the linear motors magnitude.</string>
+         </map>
+         <key>VEHICLE_LINEAR_MOTOR_DIRECTION</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>18</integer>
+            <key>tooltip</key>
+            <string>The direction and magnitude (in preferred frame) of the vehicles linear motor. The vehicle will accelerate (or decelerate if necessary) to match its velocity to its motor.
+			Range of magnitude = [0, 30] meters/second.</string>
+         </map>
+         <key>VEHICLE_LINEAR_MOTOR_OFFSET</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>20</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>VEHICLE_LINEAR_MOTOR_TIMESCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>30</integer>
+            <key>tooltip</key>
+            <string>The timescale for exponential approach to full linear motor velocity.</string>
+         </map>
+         <key>VEHICLE_REFERENCE_FRAME</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>44</integer>
+            <key>tooltip</key>
+            <string>A rotation of the vehicles preferred axes of motion and orientation (at, left, up) with respect to the vehicles local frame (x, y, z).</string>
+         </map>
+         <key>VEHICLE_TYPE_AIRPLANE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>4</integer>
+            <key>tooltip</key>
+            <string>Uses linear deflection for lift, no hover, and banking to turn.\nSee http://wiki.secondlife.com/wiki/VEHICLE_TYPE_AIRPLANE</string>
+         </map>
+         <key>VEHICLE_TYPE_BALLOON</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>5</integer>
+            <key>tooltip</key>
+            <string>Hover, and friction, but no deflection.\nSee http://wiki.secondlife.com/wiki/VEHICLE_TYPE_BALLOON</string>
+         </map>
+         <key>VEHICLE_TYPE_BOAT</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>3</integer>
+            <key>tooltip</key>
+            <string>Hovers over water with lots of friction and some anglar deflection.\nSee http://wiki.secondlife.com/wiki/VEHICLE_TYPE_BOAT</string>
+         </map>
+         <key>VEHICLE_TYPE_CAR</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>2</integer>
+            <key>tooltip</key>
+            <string>Another vehicle that bounces along the ground but needs the motors to be driven from external controls or timer events.\nSee http://wiki.secondlife.com/wiki/VEHICLE_TYPE_CAR</string>
+         </map>
+         <key>VEHICLE_TYPE_NONE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>VEHICLE_TYPE_SLED</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>1</integer>
+            <key>tooltip</key>
+            <string>Simple vehicle that bumps along the ground, and likes to move along its local x-axis.\nSee http://wiki.secondlife.com/wiki/VEHICLE_TYPE_SLED</string>
+         </map>
+         <key>VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>36</integer>
+            <key>tooltip</key>
+            <string>A slider between minimum (0.0 = wobbly) and maximum (1.0 = firm as possible) stability of the vehicle to keep itself upright.</string>
+         </map>
+         <key>VEHICLE_VERTICAL_ATTRACTION_TIMESCALE</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>37</integer>
+            <key>tooltip</key>
+            <string>The period of wobble, or timescale for exponential approach, of the vehicle to rotate such that its preferred "up" axis is oriented along the worlds "up" axis.</string>
+         </map>
+         <key>VERTICAL</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>WANDER_PAUSE_AT_WAYPOINTS</key>
+         <map>
+            <key>type</key>
+            <string>integer</string>
+            <key>value</key>
+            <integer>0</integer>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>ZERO_ROTATION</key>
+         <map>
+            <key>type</key>
+            <string>rotation</string>
+            <key>value</key>
+            <string>&lt;0.0, 0.0, 0.0, 1.0&gt;</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>ZERO_VECTOR</key>
+         <map>
+            <key>type</key>
+            <string>vector</string>
+            <key>value</key>
+            <string>&lt;0.0, 0.0, 0.0&gt;</string>
+            <key>tooltip</key>
+            <string/>
+         </map>
+      </map>
+      <key>events</key>
+      <map>
+         <key>at_rot_target</key>
+         <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>TargetNumber</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>TargetRotation</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>rotation</string>
+                  </map>
+               </map>
+               <map>
+                  <key>CurrentRotation</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>rotation</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>This event is triggered when a script comes within a defined angle of a target rotation. The range and rotation, are set by a call to llRotTarget.</string>
+         </map>
+         <key>at_target</key>
+         <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>TargetNumber</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>TargetPosition</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+               <map>
+                  <key>CurrentPosition</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>This event is triggered when the scripted object comes within a defined range of the target position, defined by the llTarget function call.</string>
+         </map>
+         <key>attach</key>
+         <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>AvatarID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>This event is triggered whenever an object is attached or detached from an avatar. If it is attached, the key of the avatar it is attached to is passed in, otherwise NULL_KEY is.</string>
+         </map>
+         <key>changed</key>
+         <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Changed</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Triggered when various events change the object. The change argument will be a bit-field of CHANGED_* constants.</string>
+         </map>
+         <key>collision</key>
+         <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>NumberOfCollisions</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>This event is raised while another object, or avatar, is colliding with the object the script is attached to.
+			The number of detected objects is passed to the script. Information on those objects may be gathered via the llDetected* functions.</string>
+         </map>
+         <key>collision_end</key>
+         <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>NumberOfCollisions</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>This event is raised when another object, or avatar, stops colliding with the object the script is attached to.
+			The number of detected objects is passed to the script. Information on those objects may be gathered via the llDetected* library functions.</string>
+         </map>
+         <key>collision_start</key>
+         <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>NumberOfCollisions</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>This event is raised when another object, or avatar, starts colliding with the object the script is attached to.
+			The number of detected objects is passed to the script. Information on those objects may be gathered via the llDetected* library functions.</string>
+         </map>
+         <key>control</key>
+         <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>AvatarID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Levels</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Edges</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Once a script has the ability to grab control inputs from the avatar, this event will be used to pass the commands into the script.
+			The levels and edges are bit-fields of control constants.</string>
+         </map>
+         <key>dataserver</key>
+         <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>RequestID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Data</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>This event is triggered when the requested data is returned to the script.
+			Data may be requested by the llRequestAgentData, llRequestInventoryData, and llGetNotecardLine function calls, for example.</string>
+         </map>
+         <key>email</key>
+         <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Time</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Address</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Subject</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Body</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>NumberRemaining</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>This event is triggered when an email sent to this script arrives.
+			The number remaining tells how many more emails are known to be still pending.</string>
+         </map>
+         <key>http_request</key>
+         <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>HTTPRequestID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+               <map>
+                  <key>HTTPMethod</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Body</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Triggered when task receives an HTTP request.</string>
+         </map>
+         <key>http_response</key>
+         <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>HTTPRequestID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Status</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Metadata</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Body</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>This event handler is invoked when an HTTP response is received for a pending llHTTPRequest request or if a pending request fails or times out.</string>
+         </map>
+         <key>land_collision</key>
+         <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Position</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>This event is raised when the object the script is attached to is colliding with the ground.</string>
+         </map>
+         <key>land_collision_end</key>
+         <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Position</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>This event is raised when the object the script is attached to stops colliding with the ground.</string>
+         </map>
+         <key>land_collision_start</key>
+         <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Position</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>This event is raised when the object the script is attached to begins to collide with the ground.</string>
+         </map>
+         <key>link_message</key>
+         <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>SendersLink</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Value</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>ID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Triggered when object receives a link message via llMessageLinked function call.</string>
+         </map>
+         <key>listen</key>
+         <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Channel</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Name</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>ID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>This event is raised whenever a chat message matching the constraints set in the llListen command is received. The name and ID of the speaker, as well as the message, are passed in as parameters.
+			Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 through 2,147,483,648 are private channels that are not sent to avatars but other scripts can listen on those channels.</string>
+         </map>
+         <key>money</key>
+         <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Payer</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Amount</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>This event is triggered when a resident has given an amount of Linden dollars to the object.</string>
+         </map>
+         <key>moving_end</key>
+         <map>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Triggered whenever an object with this script stops moving.</string>
+         </map>
+         <key>moving_start</key>
+         <map>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Triggered whenever an object with this script starts moving.</string>
+         </map>
+         <key>no_sensor</key>
+         <map>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>This event is raised when sensors are active, via the llSensor function call, but are not sensing anything.</string>
+         </map>
+         <key>not_at_rot_target</key>
+         <map>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>When a target is set via the llRotTarget function call, but the script is outside the specified angle this event is raised.</string>
+         </map>
+         <key>not_at_target</key>
+         <map>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>When a target is set via the llTarget library call, but the script is outside the specified range this event is raised.</string>
+         </map>
+         <key>object_rez</key>
+         <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>RezzedObjectsID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Triggered when an object rezzes another object from its inventory via the llRezObject, or similar, functions. The id is the globally unique key for the object rezzed.</string>
+         </map>
+         <key>on_rez</key>
+         <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>StartParameter</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Triggered whenever an object is rezzed from inventory or by another object. The start parameter is passed in from the llRezObject call, or zero if from inventory.</string>
+         </map>
+         <key>path_update</key>
+         <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Type</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Reserved</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>This event is called to inform the script of changes within the object's path-finding status.</string>
+         </map>
+         <key>remote_data</key>
+         <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>EventType</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>ChannelID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+               <map>
+                  <key>MessageID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Sender</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Data</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Data</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Triggered by various XML-RPC calls with event_type specifying the type of data.</string>
+         </map>
+         <key>run_time_permissions</key>
+         <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>PermissionFlags</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Scripts need permission from either the owner or the avatar they wish to act on before they may perform certain functions, such as debiting money from their owners account, triggering an animation on an avatar, or capturing control inputs. The llRequestPermissions library function is used to request these permissions and the various permissions integer constants can be supplied.
+			The integer returned to this event handler contains the current set of permissions flags, so if permissions equal 0 then no permissions are set.</string>
+         </map>
+         <key>sensor</key>
+         <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>NumberDetected</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>This event is raised whenever objects matching the constraints of the llSensor command are detected.
+			The number of detected objects is passed to the script in the parameter. Information on those objects may be gathered via the llDetected* functions.</string>
+         </map>
+         <key>state_entry</key>
+         <map>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>The state_entry event occurs whenever a new state is entered, including at program start, and is always the first event handled.</string>
+         </map>
+         <key>state_exit</key>
+         <map>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>The state_exit event occurs whenever the state command is used to transition to another state. It is handled before the new states state_entry event.</string>
+         </map>
+         <key>timer</key>
+         <map>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>This event is raised at regular intervals set by the llSetTimerEvent library function.</string>
+         </map>
+         <key>touch</key>
+         <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>NumberOfTouches</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>This event is raised while a user is touching the object the script is attached to.
+			The number of touching objects is passed to the script in the parameter.
+			Information on those objects may be gathered via the llDetected* library functions.</string>
+         </map>
+         <key>touch_end</key>
+         <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>NumberOfTouches</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>This event is raised when a user stops touching the object the script is attached to. The number of touches is passed to the script in the parameter.
+			Information on those objects may be gathered via the llDetected* library functions.</string>
+         </map>
+         <key>touch_start</key>
+         <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>NumberOfTouches</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>This event is raised when a user first touches the object the script is attached to. The number of touches is passed to the script in the parameter.
+			Information on those objects may be gathered via the llDetected() library functions.</string>
+         </map>
+         <key>transaction_result</key>
+         <map>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>RequestID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Success</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Message</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Triggered by llTransferMoney() function.</string>
+         </map>
+      </map>
+      <key>functions</key>
+      <map>
+         <key>llAbs</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Value</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>An integer value.</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the absolute (positive) version of Value.</string>
+         </map>
+         <key>llAcos</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Value</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>A floating-point value.</string>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the arc-cosine of Value, in radians.</string>
+         </map>
+         <key>llAddToLandBanList</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>ID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Agent UUID to add to ban-list.</string>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Hours</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Period, in hours, to ban the avatar for.</string>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Add avatar ID to the parcel ban list for the specified number of Hours.</string>
+         </map>
+         <key>llAddToLandPassList</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.1</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>ID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Agent UUID to add to pass-list.</string>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Hours</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Period, in hours, to allow the avatar for.</string>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Add avatar ID to the land pass list, for a duration of Hours.</string>
+         </map>
+         <key>llAdjustSoundVolume</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.1</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Volume</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>The volume to set.</string>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Adjusts the volume (0.0 - 1.0) of the currently playing attached sound.\nThis function has no effect on sounds started with llTriggerSound.</string>
+         </map>
+         <key>llAllowInventoryDrop</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Flag</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Boolean, If TRUE allows anyone to drop inventory on prim, FALSE revokes.</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>If Flag == TRUE, users without object modify permissions can still drop inventory items into the object.</string>
+         </map>
+         <key>llAngleBetween</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Rot1</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>First rotation.</string>
+                     <key>type</key>
+                     <string>rotation</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Rot2</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Second rotation.</string>
+                     <key>type</key>
+                     <string>rotation</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the angle, in radians, between rotations Rot1 and Rot2.</string>
+         </map>
+         <key>llApplyImpulse</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Force</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Amount of impulse force to apply.</string>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Local</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Boolean, if TRUE, force is treated as a local directional vector instead of region directional vector.</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Applies impulse to the object.\nIf Local == TRUE, apply the Force in local coordinates; otherwise, apply the Force in global coordinates.\nThis function only works on physical objects.</string>
+         </map>
+         <key>llApplyRotationalImpulse</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Force</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Amount of impulse force to apply.</string>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Local</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Boolean, if TRUE, uses local axis, if FALSE, uses region axis.</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Applies rotational impulse to the object.\nIf Local == TRUE, apply the Force in local coordinates; otherwise, apply the Force in global coordinates.\nThis function only works on physical objects.</string>
+         </map>
+         <key>llAsin</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Value</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>A floating-point value.</string>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the arc-sine, in radians, of Value.</string>
+         </map>
+         <key>llAtan2</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>y</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>A floating-point value.</string>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+               <map>
+                  <key>x</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>A floating-point value.</string>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the arc-tangent2 of y, x.</string>
+         </map>
+         <key>llAttachToAvatar</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>AttachmentPoint</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Attach to avatar at point AttachmentPoint.\nRequires the PERMISSION_ATTACH runtime permission.</string>
+         </map>
+         <key>llAttachToAvatarTemp</key>
+         <map>
+            <key>energy</key>
+            <real>0</real>
+            <key>sleep</key>
+            <real>0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>AttachPoint</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Valid attachment poit or ATTACH_* constant.</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Follows the same convention as llAttachToAvatar, with the exception that the object will not create new inventory for the user, and will disappear on detach or disconnect.</string>
+         </map>
+         <key>llAvatarOnLinkSitTarget</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>LinkNumber</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag.</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>If an avatar is sitting on the link's sit target, return the avatar's key, NULL_KEY otherwise.</string>
+         </map>
+         <key>llAvatarOnSitTarget</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>If an avatar is seated on the sit target, returns the avatar's key, otherwise NULL_KEY.</string>
+         </map>
+         <key>llAxes2Rot</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>rotation</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Forward</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Forward/Back part of rotation.</string>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Left</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Left/Right part of rotation.</string>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Up</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Up/Down part of rotation.</string>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the rotation represented by coordinate axes Forward, Left, and Up.</string>
+         </map>
+         <key>llAxisAngle2Rot</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>rotation</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Axis</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Axis.</string>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Angle</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Angle in radians.</string>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the rotation that is a generated Angle about Axis.</string>
+         </map>
+         <key>llBase64ToInteger</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns an integer that is the Text, Base64 decoded as a big endian integer.</string>
+         </map>
+         <key>llBase64ToString</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Converts a Base64 string to a conventional string.\nIf the conversion creates any unprintable characters, they are converted to question marks.</string>
+         </map>
+         <key>llBreakAllLinks</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>De-links all prims in the link set (requires permission PERMISSION_CHANGE_LINKS be set).</string>
+         </map>
+         <key>llBreakLink</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>LinkNumber</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>De-links the prim with the given link number (requires permission PERMISSION_CHANGE_LINKS be set).</string>
+         </map>
+         <key>llCastRay</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Start</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+               <map>
+                  <key>End</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Options</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Casts a ray into the physics world from 'start' to 'end' and returns data according to details in Options.</string>
+         </map>
+         <key>llCeil</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Value</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns smallest integer value &gt;= Value.</string>
+         </map>
+         <key>llClearCameraParams</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Resets all camera parameters to default values and turns off scripted camera control.</string>
+         </map>
+         <key>llClearLinkMedia</key>
+         <map>
+            <key>energy</key>
+            <real>0.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Link</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Face</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Clears (deletes) the media and all parameters from the given Face on the linked prim.</string>
+         </map>
+         <key>llClearPrimMedia</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.1</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Face</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Number of side to clear.</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Clears (deletes) the media and all parameters from the given Face.</string>
+         </map>
+         <key>llCloseRemoteDataChannel</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>1.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>ChannelID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Closes the specified XML-RPC channel.</string>
+         </map>
+         <key>llCloud</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Offset</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the cloud density at the object's position + Offset.</string>
+         </map>
+         <key>llCollisionFilter</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>ObjectName</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>ObjectID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Accept</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>If TRUE, only accept collisions with ObjectName name AND ObjectID (either is optional), otherwise with objects not ObjectName AND ObjectID.</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>If Accept == TRUE, only accept collisions with objects Name and ID, otherwise with objects not Name or ID.</string>
+         </map>
+         <key>llCollisionSound</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>ImpactSound</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>ImpactVolume</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Suppress default collision sounds, replace default impact sounds with ImpactSound.</string>
+         </map>
+         <key>llCollisionSprite</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>ImpactSprite</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Suppress default collision sprites, replace default impact sprite with ImpactSprite; found in the object inventory (empty string to just suppress).</string>
+         </map>
+         <key>llCos</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Theta</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the cosine of Theta (Theta in radians).</string>
+         </map>
+         <key>llCreateCharacter</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Options</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Convert link-set to AI/Physics character.</string>
+         </map>
+         <key>llCreateLink</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>1.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>TargetPrim</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Object UUID that is in the same region.</string>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Parent</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>If FALSE, then TargetPrim becomes the root. If TRUE, then the script's object becomes the root.</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Attempt to link the object the script is in, to target (requires permission PERMISSION_CHANGE_LINKS be set).</string>
+         </map>
+         <key>llCSV2List</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Create a list from a string of comma separated values specified in Text.</string>
+         </map>
+         <key>llDeleteCharacter</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Convert link-set from AI/Physics character to Physics object.</string>
+         </map>
+         <key>llDeleteSubList</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Source</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Start</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>End</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Removes the slice from start to end and returns the remainder of the list.</string>
+         </map>
+         <key>llDeleteSubString</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Source</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Start</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>End</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Removes the indicated sub-string and returns the result.</string>
+         </map>
+         <key>llDetachFromAvatar</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Remove the object containing the script from the avatar.</string>
+         </map>
+         <key>llDetectedGrab</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Number</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the grab offset of a user touching the object.</string>
+         </map>
+         <key>llDetectedGroup</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Number</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns TRUE if detected object or agent Number has the same user group active as this object.</string>
+         </map>
+         <key>llDetectedKey</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Number</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the key of detected object or avatar number.</string>
+         </map>
+         <key>llDetectedLinkNumber</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Number</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the link position of the triggered event for touches and collisions only.</string>
+         </map>
+         <key>llDetectedName</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Number</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the name of detected object or avatar number.</string>
+         </map>
+         <key>llDetectedOwner</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Number</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the key of detected object's owner.</string>
+         </map>
+         <key>llDetectedPos</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Number</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the position of detected object or avatar number.</string>
+         </map>
+         <key>llDetectedRot</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>rotation</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Number</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the rotation of detected object or avatar number.</string>
+         </map>
+         <key>llDetectedTouchBinormal</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Index</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Index of detection information</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the surface bi-normal for a triggered touch event.</string>
+         </map>
+         <key>llDetectedTouchFace</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Index</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Index of detection information</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the index of the face where the avatar clicked in a triggered touch event.</string>
+         </map>
+         <key>llDetectedTouchNormal</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Index</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Index of detection information</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the surface normal for a triggered touch event.</string>
+         </map>
+         <key>llDetectedTouchPos</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Index</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Index of detected information</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the position, in region coordinates, where the object was touched in a triggered touch event.</string>
+         </map>
+         <key>llDetectedTouchST</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Index</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Index of detection information</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns a vector that is the surface coordinates where the prim was touched.</string>
+         </map>
+         <key>llDetectedTouchUV</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Index</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Index of detection information</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns a vector that is the texture coordinates for where the prim was touched.</string>
+         </map>
+         <key>llDetectedType</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Number</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the type (AGENT, ACTIVE, PASSIVE, SCRIPTED) of detected object.</string>
+         </map>
+         <key>llDetectedVel</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Number</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the velocity of the detected object Number.</string>
+         </map>
+         <key>llDialog</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.1</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>AvatarID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Buttons</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Channel</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Shows a dialog box on the avatar's screen with the message.\n
+				Up to 12 strings in the list form buttons.\n
+				If a button is clicked, the name is chatted on Channel.</string>
+         </map>
+         <key>llDie</key>
+         <map>
+            <key>energy</key>
+            <real>0.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Deletes the object.</string>
+         </map>
+         <key>llDumpList2String</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Source</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Separator</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the list as a single string, using Separator between the entries.</string>
+         </map>
+         <key>llEdgeOfWorld</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Position</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Direction</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Checks to see whether the border hit by Direction from Position is the edge of the world (has no neighboring region).</string>
+         </map>
+         <key>llEjectFromLand</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>AvatarID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Ejects AvatarID from land that you own.</string>
+         </map>
+         <key>llEmail</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>20.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Address</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Subject</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Sends email to Address with Subject and Message.</string>
+         </map>
+         <key>llEscapeURL</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>URL</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns an escaped/encoded version of url, replacing spaces with %20 etc.</string>
+         </map>
+         <key>llEuler2Rot</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>rotation</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Vector</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the rotation representation of the Euler angles.</string>
+         </map>
+         <key>llEvade</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>TargetID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Agent or object to evade.</string>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Options</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>No options yet.</string>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Evade a specified target.</string>
+         </map>
+         <key>llExecCharacterCmd</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Command</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Command to send.</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Options</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Height for CHARACTER_CMD_JUMP.</string>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Execute a character command.</string>
+         </map>
+         <key>llFabs</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Value</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the positive version of Value.</string>
+         </map>
+         <key>llFleeFrom</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Source</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Global coordinate from which to flee.</string>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Distance</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Distance in meters to flee from the source.</string>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Options</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>No options available at this time.</string>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Flee from a point.</string>
+         </map>
+         <key>llFloor</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Value</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns largest integer value &lt;= Value.</string>
+         </map>
+         <key>llForceMouselook</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Enable</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Boolean, if TRUE when an avatar sits on the prim, the avatar will be forced into mouse-look mode.
+				FALSE is the default setting and will undo a previously set TRUE or do nothing.</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>If Enable is TRUE any avatar that sits on this object is forced into mouse-look mode.</string>
+         </map>
+         <key>llFrand</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Magnitude</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns a pseudo random number in the range [0, Magnitude] or [Magnitude, 0].</string>
+         </map>
+         <key>llGenerateKey</key>
+         <map>
+            <key>energy</key>
+            <real>0</real>
+            <key>sleep</key>
+            <real>0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Generates a key (SHA-1 hash) using UUID generation to create a unique key.</string>
+         </map>
+         <key>llGetAccel</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the acceleration of the object relative to the region's axes.</string>
+         </map>
+         <key>llGetAgentInfo</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>AvatarID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns an integer bit-field containing the agent information about id.\n
+				Returns AGENT_FLYING, AGENT_ATTACHMENTS, AGENT_SCRIPTED, AGENT_SITTING, AGENT_ON_OBJECT, AGENT_MOUSELOOK, AGENT_AWAY, AGENT_BUSY, AGENT_TYPING, AGENT_CROUCHING, AGENT_ALWAYS_RUN, AGENT_WALKING and/or AGENT_IN_AIR.</string>
+         </map>
+         <key>llGetAgentLanguage</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>AvatarID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the language code of the preferred interface language of the avatar.</string>
+         </map>
+         <key>llGetAgentList</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Scope</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>The scope (region, parcel, parcel same owner) to return agents for.</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Options</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>List of options to apply. Current unused.</string>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Requests a list of agents currently in the region, limited by the scope parameter.</string>
+         </map>
+         <key>llGetAgentSize</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>AvatarID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>If the avatar is in the same region, returns the size of the bounding box of the requested avatar by id, otherwise returns ZERO_VECTOR.</string>
+         </map>
+         <key>llGetAlpha</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Face</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the alpha value of Face.</string>
+         </map>
+         <key>llGetAndResetTime</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the script time in seconds and then resets the script timer to zero.</string>
+         </map>
+         <key>llGetAnimation</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>AvatarID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the name of the currently playing locomotion animation for the avatar id.</string>
+         </map>
+         <key>llGetAnimationList</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>AvatarID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns a list of keys of playing animations for an avatar.</string>
+         </map>
+         <key>llGetAnimationOverride</key>
+         <map>
+            <key>energy</key>
+            <real>0</real>
+            <key>sleep</key>
+            <real>0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>AnimationState</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns a string that is the name of the animation that is used for the specified animation state</string>
+         </map>
+         <key>llGetAttached</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the object's attachment point, or 0 if not attached.</string>
+         </map>
+         <key>llGetBoundingBox</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>ID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the bounding box around the object (including any linked prims) relative to its root prim, as a list in the format [ (vector) min_corner, (vector) max_corner ].</string>
+         </map>
+         <key>llGetCameraPos</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the current camera position for the agent the task has permissions for.</string>
+         </map>
+         <key>llGetCameraRot</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>rotation</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the current camera orientation for the agent the task has permissions for.</string>
+         </map>
+         <key>llGetCenterOfMass</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the prim's centre of mass (unless called from the root prim, where it returns the object's centre of mass).</string>
+         </map>
+         <key>llGetClosestNavPoint</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Point</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>A point in region-local space.</string>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Options</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>No options at this time.</string>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Get the closest navigable point to the point provided.</string>
+         </map>
+         <key>llGetColor</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Face</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the color on Face.</string>
+         </map>
+         <key>llGetCreator</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns a key for the creator of the prim.</string>
+         </map>
+         <key>llGetDate</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the current date in the UTC time zone in the format YYYY-MM-DD.</string>
+         </map>
+         <key>llGetDisplayName</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>AvatarID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Avatar UUID that is in the same region, or is otherwise known to the region.</string>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the name of an avatar, if the avatar is in the current region, and the name has been cached, otherwise the same as llGetUsername.	Use llRequestDisplayName if you absolutely must have the display name.</string>
+         </map>
+         <key>llGetEnergy</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns how much energy is in the object as a percentage of maximum.</string>
+         </map>
+         <key>llGetEnv</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>DataRequest</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>The type of data to request. Any other string will cause an empty string to be returned.</string>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns a string with the requested data about the region.</string>
+         </map>
+         <key>llGetForce</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the force (if the script is physical).</string>
+         </map>
+         <key>llGetFreeMemory</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the number of free bytes of memory the script can use.</string>
+         </map>
+         <key>llGetFreeURLs</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the number of available URLs for the current script.</string>
+         </map>
+         <key>llGetGeometricCenter</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the geometric center of the linked set the script is attached to.</string>
+         </map>
+         <key>llGetGMTclock</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the time in seconds since midnight GMT.</string>
+         </map>
+         <key>llGetHTTPHeader</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>HTTPRequestID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>A valid HTTP request key</string>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Header</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Header value name</string>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the value for header for request_id.</string>
+         </map>
+         <key>llGetInventoryCreator</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>InventoryItem</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns a key for the creator of the inventory item.</string>
+         </map>
+         <key>llGetInventoryKey</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>InventoryItem</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the key that is the UUID of the inventory named.</string>
+         </map>
+         <key>llGetInventoryName</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>InventoryType</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>inventory item type</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Index</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Index number of inventory item.</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the name of the inventory item number of a given type.</string>
+         </map>
+         <key>llGetInventoryNumber</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>InventoryType</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Inventory item type</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the number of items of a given type (INVENTORY_* flag) in the prim's inventory.</string>
+         </map>
+         <key>llGetInventoryPermMask</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>InventoryItem</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Inventory item name.</string>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>BitMask</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>MASK_BASE, MASK_OWNER, MASK_GROUP, MASK_EVERYONE or MASK_NEXT</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the requested permission mask for the inventory item.</string>
+         </map>
+         <key>llGetInventoryType</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>InventoryItem</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the type of the inventory item named.</string>
+         </map>
+         <key>llGetKey</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the key of the prim the script is attached to.</string>
+         </map>
+         <key>llGetLandOwnerAt</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Position</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the key of the land owner, returns NULL_KEY if public.</string>
+         </map>
+         <key>llGetLinkKey</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>LinkNumber</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the key of the linked prim LinkNumber.</string>
+         </map>
+         <key>llGetLinkMedia</key>
+         <map>
+            <key>energy</key>
+            <real>0.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>LinkNumber</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Face</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>The prim's side number</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Parameters</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>A list of PRIM_* property constants to return values of.</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Get the media parameters for a particular face on linked prim, given the desired list of parameter names. Returns a list of values in the order requested.	Returns an empty list if no media exists on the face.</string>
+         </map>
+         <key>llGetLinkName</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>LinkNumber</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the name of LinkNumber in a link set.</string>
+         </map>
+         <key>llGetLinkNumber</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the link number of the prim containing the script (0 means not linked, 1 the prim is the root, 2 the prim is the first child, etc.).</string>
+         </map>
+         <key>llGetLinkNumberOfSides</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>LinkNumber</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag.</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the number of sides of the specified linked prim.</string>
+         </map>
+         <key>llGetLinkPrimitiveParams</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>LinkNumber</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag.</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Parameters</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>PRIM_* flags.</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Get primitive parameters for LinkNumber based on rules.</string>
+         </map>
+         <key>llGetListEntryType</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>ListVariable</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Index</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the type of the index entry in the list (TYPE_INTEGER, TYPE_FLOAT, TYPE_STRING, TYPE_KEY, TYPE_VECTOR, TYPE_ROTATION, or TYPE_INVALID if index is off list).</string>
+         </map>
+         <key>llGetListLength</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>ListVariable</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the number of elements in the list.</string>
+         </map>
+         <key>llGetLocalPos</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the position relative to the root.</string>
+         </map>
+         <key>llGetLocalRot</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>rotation</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the rotation local to the root.</string>
+         </map>
+         <key>llGetMass</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the mass of object that the script is attached to.</string>
+         </map>
+         <key>llGetMassMKS</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Acts as llGetMass(), except that the units of the value returned are Kg.</string>
+         </map>
+         <key>llGetMaxScaleFactor</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns a float that is the largest scaling factor that can be used with llScaleByFactor to resize the object. This maximum is determined by the Linkability Rules and prim scale limits.</string>
+         </map>
+         <key>llGetMemoryLimit</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Get the maximum memory a script can use, in bytes.</string>
+         </map>
+         <key>llGetMinScaleFactor</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns a float that is the smallest scaling factor that can be used with llScaleByFactor to resize the object. This minimum is determined by the prim scale limits.</string>
+         </map>
+         <key>llGetNextEmail</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Address</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Subject</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Get the next waiting email with appropriate address and/or subject (if blank they are ignored).</string>
+         </map>
+         <key>llGetNotecardLine</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.1</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>NotecardName</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>LineNumber</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns line from NotecardName via the dataserver event.</string>
+         </map>
+         <key>llGetNumberOfNotecardLines</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.1</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>NotecardName</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns number of lines in NotecardName via the dataserver event (cast return value to integer).</string>
+         </map>
+         <key>llGetNumberOfPrims</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the number of prims in a link set the script is attached to.</string>
+         </map>
+         <key>llGetNumberOfSides</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the number of faces (or sides) of the prim.</string>
+         </map>
+         <key>llGetObjectDesc</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the description of the prim the script is attached to.</string>
+         </map>
+         <key>llGetObjectDetails</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>ID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Prim or avatar UUID that is in the same region.</string>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Parameters</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>List of OBJECT_* flags.</string>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the object details specified in Parameters for the object with key ID.\n
+				Parameters are OBJECT_NAME, _DESC, _POS, _ROT, _VELOCITY, _OWNER, _GROUP, _CREATOR.</string>
+         </map>
+         <key>llGetObjectMass</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>ID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the mass of the avatar or object in the region.</string>
+         </map>
+         <key>llGetObjectName</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the name of the prim which the script is attached to.</string>
+         </map>
+         <key>llGetObjectPermMask</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>PermissionMask</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the requested permission mask for the root object the task is attached to.</string>
+         </map>
+         <key>llGetObjectPrimCount</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>ObjectID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the total number of prims for an object in the region.</string>
+         </map>
+         <key>llGetOmega</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the rotation velocity in radians per second.</string>
+         </map>
+         <key>llGetOwner</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the object owner's UUID.</string>
+         </map>
+         <key>llGetOwnerKey</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>ObjectID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the owner of ObjectID.</string>
+         </map>
+         <key>llGetParcelDetails</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Position</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Location within the region.</string>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+               <map>
+                  <key>ParcelDetails</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>List of details requested for the specified parcel location.</string>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the parcel details specified in ParcelDetails for the parcel at Position.\n
+ 				Parameters is one or more of: PARCEL_DETAILS_NAME, _DESC, _OWNER, _GROUP, _AREA, _ID, _SEE_AVATARS.</string>
+         </map>
+         <key>llGetParcelFlags</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Position</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns a mask of the parcel flags (PARCEL_FLAG_*) for the parcel that includes the point Position.</string>
+         </map>
+         <key>llGetParcelMaxPrims</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Position</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Region coordinates (z is ignored) of parcel.</string>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+               <map>
+                  <key>SimWide</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Boolean. If FALSE then the return is the maximum prims supported by the parcel. If TRUE then it is the combined number of prims on all parcels in the region owned by the specified parcel's owner.</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the maximum number of prims allowed on the parcel at Position.</string>
+         </map>
+         <key>llGetParcelMusicURL</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Gets the streaming audio URL for the parcel object is on.</string>
+         </map>
+         <key>llGetParcelPrimCount</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Position</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>region coordinate</string>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Category</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>A PARCEL_COUNT_* flag.</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>SimWide</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Boolean. If FALSE then the return is the maximum prims supported by the parcel. If TRUE then it is the combined number of prims on all parcels in the region owned by the specified parcel's owner.</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the number of prims on the parcel at Position of the given category.
+				Categories: PARCEL_COUNT_TOTAL, _OWNER, _GROUP, _OTHER, _SELECTED, _TEMP.</string>
+         </map>
+         <key>llGetParcelPrimOwners</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>2.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Position</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns a list of all residents who own objects on the parcel at Position, with individual prim counts.
+				Requires owner-like permissions for the parcel.</string>
+         </map>
+         <key>llGetPermissions</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns an integer bit-field with the permissions that have been granted.</string>
+         </map>
+         <key>llGetPermissionsKey</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the key of the avatar that last granted permissions to the script.</string>
+         </map>
+         <key>llGetPhysicsMaterial</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns a list of the form [float gravity_multiplier, float restitution, float friction, float density].</string>
+         </map>
+         <key>llGetPos</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the position of the task in region coordinates.</string>
+         </map>
+         <key>llGetPrimitiveParams</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.2</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Parameters</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>PRIM_* flags</string>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the primitive parameters specified in the parameters list.</string>
+         </map>
+         <key>llGetPrimMediaParams</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.1</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Face</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>face number</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Parameters</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>a set PRIM_* flags (in no particular order)</string>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the media parameters for a particular face on an object, given the desired list of parameter names, in the order requested. Returns an empty list if no media exists on the face.</string>
+         </map>
+         <key>llGetRegionAgentCount</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the number of avatars in the region.</string>
+         </map>
+         <key>llGetRegionCorner</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns a vector, in meters, that is the global location of the south-west corner of the region which the object is in.</string>
+         </map>
+         <key>llGetRegionFlags</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the region flags (REGION_FLAG_*) for the region the object is in.</string>
+         </map>
+         <key>llGetRegionFPS</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the mean region frames per second.</string>
+         </map>
+         <key>llGetRegionName</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the current region name.</string>
+         </map>
+         <key>llGetRegionTimeDilation</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the current time dilation as a float between 0.0 (full dilation) and 1.0 (no dilation).</string>
+         </map>
+         <key>llGetRootPosition</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the position (in region coordinates) of the root prim of the object which the script is attached to.</string>
+         </map>
+         <key>llGetRootRotation</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>rotation</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the rotation (relative to the region) of the root prim of the object which the script is attached to.</string>
+         </map>
+         <key>llGetRot</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>rotation</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the rotation relative to the region's axes.</string>
+         </map>
+         <key>llGetScale</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the scale of the prim.</string>
+         </map>
+         <key>llGetScriptName</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the name of the script that this function is used in.</string>
+         </map>
+         <key>llGetScriptState</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>ScriptName</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns TRUE if the script named is running.</string>
+         </map>
+         <key>llGetSimStats</key>
+         <map>
+            <key>energy</key>
+            <real>0</real>
+            <key>sleep</key>
+            <real>0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>StatType</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Statistic type. Currently only SIM_STAT_PCT_CHARS_STEPPED is supported.</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns a float that is the requested statistic.</string>
+         </map>
+         <key>llGetSimulatorHostname</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the host-name of the machine which the script is running on (same as string in viewer Help dialog).</string>
+         </map>
+         <key>llGetSPMaxMemory</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the maximum used memory for the current script. Only valid after using PROFILE_SCRIPT_MEMORY. Non-mono scripts always use 16k.</string>
+         </map>
+         <key>llGetStartParameter</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns an integer that is the script start parameter.</string>
+         </map>
+         <key>llGetStaticPath</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Start</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Starting position.</string>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+               <map>
+                  <key>End</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Ending position.</string>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Radius</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Radius of the character that the path is for, between 0.125m and 5.0m.</string>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Parameters</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Currently only accepts the parameter CHARACTER_TYPE; the options are identical to those used for llCreateCharacter. The default value is CHARACTER_TYPE_NONE.</string>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string/>
+         </map>
+         <key>llGetStatus</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>StatusFlag</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>A STATUS_* flag</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns value of status (STATUS_PHYSICS, STATUS_PHANTOM, STATUS_BLOCK_GRAB, STATUS_ROTATE_X, STATUS_ROTATE_Y, and/or STATUS_ROTATE_Z).</string>
+         </map>
+         <key>llGetSubString</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>String</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Start</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>End</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the indicated substring.</string>
+         </map>
+         <key>llGetSunDirection</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns a normalized vector of the direction of the sun in the region.</string>
+         </map>
+         <key>llGetTexture</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Face</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns a string that is the texture on face (the inventory name if it is a texture in the prim's inventory, otherwise the key).</string>
+         </map>
+         <key>llGetTextureOffset</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Face</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the texture offset of face in the x and y components of a vector.</string>
+         </map>
+         <key>llGetTextureRot</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Face</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the texture rotation of side.</string>
+         </map>
+         <key>llGetTextureScale</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Face</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the texture scale of side in the x and y components of a vector.</string>
+         </map>
+         <key>llGetTime</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the time in seconds since the last region reset, script reset, or call to either llResetTime or llGetAndResetTime.</string>
+         </map>
+         <key>llGetTimeOfDay</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the time in seconds since [SECOND_LIFE] server midnight or since region up-time, whichever is smaller.</string>
+         </map>
+         <key>llGetTimestamp</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns a time-stamp (UTC time zone) in the format: YYYY-MM-DDThh:mm:ss.ff..fZ.</string>
+         </map>
+         <key>llGetTorque</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the torque (if the script is physical).</string>
+         </map>
+         <key>llGetUnixTime</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the number of seconds elapsed since 00:00 hours, Jan 1, 1970 UTC from the system clock.</string>
+         </map>
+         <key>llGetUsedMemory</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the current used memory for the current script. Non-mono scripts always use 16K.</string>
+         </map>
+         <key>llGetUsername</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>AvatarID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the single-word user-name of an avatar, if the avatar is in the current region, otherwise the empty string.</string>
+         </map>
+         <key>llGetVel</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the velocity of the object.</string>
+         </map>
+         <key>llGetWallclock</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the time in seconds since midnight California Pacific time (PST/PDT).</string>
+         </map>
+         <key>llGiveInventory</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>TargetID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+               <map>
+                  <key>InventoryItem</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Give InventoryItem to destination represented by TargetID.</string>
+         </map>
+         <key>llGiveInventoryList</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>3.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>TargetID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+               <map>
+                  <key>FolderName</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>InventoryItems</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Give InventoryItems to destination (represented by TargetID) as a new folder of items.</string>
+         </map>
+         <key>llGiveMoney</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>AvatarID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Amount</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Transfers Amount of L from script owner to AvatarID.</string>
+         </map>
+         <key>llGodLikeRezObject</key>
+         <map>
+            <key>god-mode</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>InventoryItemID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Position</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Rez directly off of a UUID if owner has dog-bit set.</string>
+         </map>
+         <key>llGround</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Offset</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the ground height at the object position + offset.</string>
+         </map>
+         <key>llGroundContour</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Offset</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the ground contour direction below the object position + Offset.</string>
+         </map>
+         <key>llGroundNormal</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Offset</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the ground normal below the object position + offset.</string>
+         </map>
+         <key>llGroundRepel</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Height</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>.Distance above the ground.</string>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Water</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Boolean, if TRUE then hover above water too.</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Tau</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Seconds to critically damp in.</string>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Critically damps to height if within height * 0.5 of level (either above ground level or above the higher of land and water if water == TRUE).</string>
+         </map>
+         <key>llGroundSlope</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Offset</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the ground slope below the object position + Offset.</string>
+         </map>
+         <key>llHTTPRequest</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>URL</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>A valid HTTP/HTTPS URL.</string>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Parameters</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Configuration parameters, specified as HTTP_* flag-value pairs.</string>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Body</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Contents of the request.</string>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Sends an HTTP request to the specified URL with the Body of the request and Parameters.</string>
+         </map>
+         <key>llHTTPResponse</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>HTTPRequestID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>A valid HTTP request key.</string>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Status</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>HTTP Status (200, 400, 404, etc.).</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Body</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Contents of the response.</string>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Responds to HTTPRequestID with Status and Body.</string>
+         </map>
+         <key>llInsertString</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>TargetVariable</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Position</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>SourceVariable</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Inserts SourceVariable into TargetVariable at Position, and returns the result.</string>
+         </map>
+         <key>llInstantMessage</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>2.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>AvatarID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>IMs Text to the user identified.</string>
+         </map>
+         <key>llIntegerToBase64</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Value</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns a string that is a Base64 big endian encode of Value.</string>
+         </map>
+         <key>llJson2List</key>
+         <map>
+            <key>energy</key>
+            <real>0.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>JSON</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Converts the top level of the JSON string to a list.</string>
+         </map>
+         <key>llJsonGetValue</key>
+         <map>
+            <key>energy</key>
+            <real>0.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>JSON</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Specifiers</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Gets the value indicated by Specifiers from the JSON string.</string>
+         </map>
+         <key>llJsonSetValue</key>
+         <map>
+            <key>energy</key>
+            <real>0.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>JSON</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Specifiers</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Value</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns a new JSON string that is the JSON given with the Value indicated by Specifiers set to Value.</string>
+         </map>
+         <key>llJsonValueType</key>
+         <map>
+            <key>energy</key>
+            <real>0.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>JSON</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Specifiers</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the type constant (JSON_*) for the value in JSON indicated by Specifiers.</string>
+         </map>
+         <key>llKey2Name</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>ID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Avatar or rezzed prim UUID.</string>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the name of the prim or avatar specified by ID. The ID must be a valid rezzed prim or avatar key in the current simulator, otherwise an empty string is returned.</string>
+         </map>
+         <key>llLinkParticleSystem</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>LinkNumber</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Rules</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Particle system rules list in the format [ rule1, data1, rule2, data2 . . . ruleN, dataN ]</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Creates a particle system based on Rules. An empty list removes a particle system from object.\n
+				List format is [ rule-1, data-1, rule-2, data-2 ... rule-n, data-n ].</string>
+         </map>
+         <key>llLinkSitTarget</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>LinkNumber</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag of the prim.</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Offset</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Position for the sit target, relative to the prim's position.</string>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Rotation</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Rotation (relative to the prim's rotation) for the avatar.</string>
+                     <key>type</key>
+                     <string>rotation</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Set the sit location for the linked prim(s). If Offset == &lt;0,0,0&gt; clear it.</string>
+         </map>
+         <key>llList2CSV</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>ListVariable</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Creates a string of comma separated values from the list.</string>
+         </map>
+         <key>llList2Float</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>ListVariable</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Index</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Copies the float at Index in the list.</string>
+         </map>
+         <key>llList2Integer</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>ListVariable</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Index</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Copies the integer at Index in the list.</string>
+         </map>
+         <key>llList2Json</key>
+         <map>
+            <key>energy</key>
+            <real>0</real>
+            <key>sleep</key>
+            <real>0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>JsonType</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Type is JSON_ARRAY or JSON_OBJECT.</string>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Values</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>List of values to convert.</string>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Converts either a strided list of key:value pairs to a JSON_OBJECT, or a list of values to a JSON_ARRAY.</string>
+         </map>
+         <key>llList2Key</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>ListVariable</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Index</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Copies the key at Index in the list.</string>
+         </map>
+         <key>llList2List</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>ListVariable</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Start</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>End</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Copies the slice of the list from Start to End.</string>
+         </map>
+         <key>llList2ListStrided</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>ListVariable</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Start</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>End</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Stride</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Copies the strided slice of the list from Start to End.</string>
+         </map>
+         <key>llList2Rot</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>rotation</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>ListVariable</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Index</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Copies the rotation at Index in the list.</string>
+         </map>
+         <key>llList2String</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>ListVariable</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Index</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Copies the string at Index in the list.</string>
+         </map>
+         <key>llList2Vector</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>ListVariable</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Index</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Copies the vector at Index in the list.</string>
+         </map>
+         <key>llListen</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Channel</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>SpeakersName</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>SpeakersID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Sets a callback for Text on Channel from SpeakersName and SpeakersID (SpeakersName, SpeakersID, and/or Text can be empty) and returns an identifier that can be used to deactivate or remove the listen.</string>
+         </map>
+         <key>llListenControl</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>ChannelHandle</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Active</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Makes a listen event callback active or inactive.</string>
+         </map>
+         <key>llListenRemove</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>ChannelHandle</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Removes listen event callback number.</string>
+         </map>
+         <key>llListFindList</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>ListVariable</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Find</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the index of the first instance of Find in ListVariable. Returns -1 if not found.</string>
+         </map>
+         <key>llListInsertList</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Target</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+               <map>
+                  <key>ListVariable</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Position</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns a list that contains all the elements from Target but with the elements from ListVariable inserted at Position start.</string>
+         </map>
+         <key>llListRandomize</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>ListVariable</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Stride</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns a randomized list of blocks of size Stride.</string>
+         </map>
+         <key>llListReplaceList</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Target</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+               <map>
+                  <key>ListVariable</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Start</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>End</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns a list that is Target with Start through End removed and ListVariable inserted at Start.</string>
+         </map>
+         <key>llListSort</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>ListVariable</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>List to sort.</string>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Stride</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Stride length.</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Ascending</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Boolean. TRUE = result in ascending order, FALSE = result in descending order.</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Sorts the list into blocks of stride, in Ascending order if Ascending == TRUE. The sort order is affected by type.</string>
+         </map>
+         <key>llListStatistics</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Operation</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string> One of LIST_STAT_* values </string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>ListVariable</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Variable to analyse.</string>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Performs statistical aggregate functions on ListVariable using LIST_STAT_* Operations.</string>
+         </map>
+         <key>llLoadURL</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>10.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>AvatarID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>URL</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Shows dialog to avatar AvatarID offering to load web page at URL.	If user clicks yes, launches their web browser.</string>
+         </map>
+         <key>llLog</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Value</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the natural logarithm of Value. Returns zero if Value &lt;= 0.</string>
+         </map>
+         <key>llLog10</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Value</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the base 10 logarithm of Value. Returns zero if Value &lt;= 0.</string>
+         </map>
+         <key>llLookAt</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Target</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Strength</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Damping</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Cause object name to point it's forward axis towards Target.</string>
+         </map>
+         <key>llLoopSound</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Sound</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Volume</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Plays attached Sound, looping indefinitely, at Volume (0.0 - 1.0).</string>
+         </map>
+         <key>llLoopSoundMaster</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Sound</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Volume</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Plays attached Sound, looping at volume (0.0 - 1.0), and declares it a sync master.</string>
+         </map>
+         <key>llLoopSoundSlave</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Sound</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Volume</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Plays attached sound looping at volume (0.0 - 1.0), synced to most audible sync master.</string>
+         </map>
+         <key>llMakeExplosion</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.1</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Particles</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Scale</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Velocity</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Lifetime</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Arc</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Texture</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Offset</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Make a round explosion of particles. Deprecated: Use llParticleSystem instead.</string>
+         </map>
+         <key>llMakeFire</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.1</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Particles</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Scale</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Velocity</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Lifetime</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Arc</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Texture</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Offset</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Make fire like particles. Deprecated: Use llParticleSystem instead.</string>
+         </map>
+         <key>llMakeFountain</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.1</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Particles</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Scale</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Velocity</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Lifetime</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Arc</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Texture</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Offset</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Make a fountain of particles. Deprecated: Use llParticleSystem instead.</string>
+         </map>
+         <key>llMakeSmoke</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.1</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Particles</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Scale</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Velocity</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Lifetime</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Arc</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Texture</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Offset</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Make smoke like particles. Deprecated: Use llParticleSystem instead.</string>
+         </map>
+         <key>llManageEstateAccess</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Action</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>One of the ESTATE_ACCESS_ALLOWED_* actions.</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>AvatarID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>UUID of the avatar or group to act upon.</string>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Use to add or remove agents from the estate's agent access or ban lists or groups from the estate's group access list.</string>
+         </map>
+         <key>llMapDestination</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>1.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>RegionName</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Position</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Direction</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Opens world map centred on region with Position highlighted. Only works for scripts attached to avatar, or during touch events. NOTE: Direction currently does nothing.</string>
+         </map>
+         <key>llMD5String</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Nonce</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns a string of 32 hex characters that is an RSA Data Security Inc., MD5 Message-Digest Algorithm of Text with Nonce.</string>
+         </map>
+         <key>llMessageLinked</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>LinkNumber</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Number</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>ID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Sends Number, Text, and ID to members of the link set identified by LinkNumber (LINK_ROOT sends to root task in a linked set, LINK_SET sends to all tasks, LINK_ALL_OTHERS to all other tasks, LINK_ALL_CHILDREN to all children, LINK_THIS to the task the script it is in).</string>
+         </map>
+         <key>llMinEventDelay</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Delay</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Set the minimum time between events being handled.</string>
+         </map>
+         <key>llModifyLand</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Action</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>LAND_LEVEL, LAND_RAISE, LAND_LOWER, LAND_SMOOTH, LAND_NOISE or LAND_REVERT</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Area</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>LAND_SMALL_BRUSH, LAND_MEDIUM_BRUSH or LAND_LARGE_BRUSH</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Modify land with action (LAND_LEVEL, LAND_RAISE, LAND_LOWER, LAND_SMOOTH, LAND_NOISE, LAND_REVERT) on size (LAND_SMALL_BRUSH, LAND_MEDIUM_BRUSH, LAND_LARGE_BRUSH).</string>
+         </map>
+         <key>llModPow</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>1.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Value</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Power</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Modulus</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns a Value raised to the Power, mod Modulus. ((a**b)%c) b is capped at 0xFFFF (16 bits).</string>
+         </map>
+         <key>llMoveToTarget</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Target</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Tau</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Critically damp to Target in Tau seconds (if the script is physical).</string>
+         </map>
+         <key>llNavigateTo</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Location</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Region coordinates for the character to navigate to.</string>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Options</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>List of parameters to control the type of path-finding used. Currently only FORCE_DIRECT_PATH supported.</string>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Navigate to destination.</string>
+         </map>
+         <key>llOffsetTexture</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.2</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>OffsetS</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+               <map>
+                  <key>OffsetT</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Face</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Sets the texture S and T offsets for the chosen Face.</string>
+         </map>
+         <key>llOpenRemoteDataChannel</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>1.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Requests a channel to listen for XML-RPC calls. Will trigger a remote_data event with channel ID once it is available.</string>
+         </map>
+         <key>llOverMyLand</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>ID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns TRUE if id ID over land owned by the script owner, otherwise FALSE.</string>
+         </map>
+         <key>llOwnerSay</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>says Text to owner only (if owner is in region).</string>
+         </map>
+         <key>llParcelMediaCommandList</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>2.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>CommandList</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>A list of PARCEL_MEDIA_COMMAND_* flags and their parameters </string>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Sends a list of commands, some with arguments, to a parcel.</string>
+         </map>
+         <key>llParcelMediaQuery</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>2.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>QueryList</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns a list containing results of the sent query.</string>
+         </map>
+         <key>llParseString2List</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Separators</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Spacers</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Breaks Text into a list, discarding Separators, keeping Spacers (Separators and Spacers must be lists of strings, maximum of 8 each).</string>
+         </map>
+         <key>llParseStringKeepNulls</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>list</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Separators</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Spacers</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Breaks Text into a list, discarding separators, keeping spacers, keeping any null values generated. (separators and spacers must be lists of strings, maximum of 8 each).</string>
+         </map>
+         <key>llParticleSystem</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Parameters</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Creates a particle system based on Parameters.	An empty list removes particle system from object.
+				List format is [ rule-1, data-1, rule-2, data-2 . . . rule-n, data-n ].</string>
+         </map>
+         <key>llPassCollisions</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Pass</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Boolean, if TRUE, collisions are passed from children on to parents.</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>If Pass == TRUE, collisions are passed from children on to parents (default is FALSE).</string>
+         </map>
+         <key>llPassTouches</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Pass</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Boolean, if TRUE, touches are passed from children on to parents.</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>If pass == TRUE, touches are passed from children on to parents (default is FALSE).</string>
+         </map>
+         <key>llPatrolPoints</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Points</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>A list of vectors for the character to travel through sequentially. The list must contain at least two entries.</string>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Options</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>No options available at this time.</string>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Patrol a list of points.</string>
+         </map>
+         <key>llPlaySound</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Sound</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Volume</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Plays attached Sound once, at Volume (0.0 - 1.0).</string>
+         </map>
+         <key>llPlaySoundSlave</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Sound</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Volume</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Plays attached Sound once, at Volume (0.0 - 1.0), synced to next loop of most audible sync master.</string>
+         </map>
+         <key>llPow</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Value</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Exponent</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the Value raised to the power Exponent, or returns 0 and triggers Math Error for imaginary results.</string>
+         </map>
+         <key>llPreloadSound</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>1.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Sound</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Preloads a sound on viewers within range.</string>
+         </map>
+         <key>llPursue</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>TargetID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Agent or object to pursue.</string>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Options</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Parameters for pursuit.</string>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Chase after a target.</string>
+         </map>
+         <key>llPushObject</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>ObjectID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Impulse</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+               <map>
+                  <key>AngularImpulse</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Local</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Applies Impulse and AngularImpulse to ObjectID.</string>
+         </map>
+         <key>llRefreshPrimURL</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>20.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Reloads the web page shown on the sides of the object.</string>
+         </map>
+         <key>llRegionSay</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Channel</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Any integer value except zero.</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Message to be transmitted.</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Broadcasts Text to entire region on Channel (not 0.).</string>
+         </map>
+         <key>llRegionSayTo</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>TargetID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Avatar or object to say to.</string>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Channel</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Output channel, any integer value.</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Message to be transmitted.</string>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Says Text, on Channel, to avatar or object indicated by TargetID (if within region).</string>
+         </map>
+         <key>llReleaseCamera</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>AvatarID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Return camera to agent.</string>
+         </map>
+         <key>llReleaseControls</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Stop taking inputs.</string>
+         </map>
+         <key>llReleaseURL</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>URL</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>URL to release.</string>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Releases the specified URL, it will no longer be usable.</string>
+         </map>
+         <key>llRemoteDataReply</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>3.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>ChannelID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+               <map>
+                  <key>MessageID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Data</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Data</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Send an XML-RPC reply to MessageID on ChannelID with payload of string sData and integer iData. Deprecated: Use HTTP functions/events instead.</string>
+         </map>
+         <key>llRemoteDataSetRegion</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Deprecated: Use HTTP functions/events instead.\n
+				If an object using remote data channels changes regions, you must call this function to re-register the remote data channels.
+				You do not need to make this call if you don't change regions.</string>
+         </map>
+         <key>llRemoteLoadScriptPin</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>3.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>ObjectID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Target prim to attempt copying into.</string>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+               <map>
+                  <key>ScriptName</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Name of the script in current inventory to copy.</string>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>PIN</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Integer set on target prim as a Personal Information Number code.</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Running</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>If the script should be set running in the target prim.</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>StartParameter</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Integer. Parameter passed to the script if set to be running.</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>If the owner of the object this script is attached to can modify ObjectID, they are in the same region, and the matching PIN is used, copy ScriptName into target, if Running == TRUE, start the script with StartParameter.</string>
+         </map>
+         <key>llRemoveFromLandBanList</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>AvatarID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Remove avatar from the land ban list.</string>
+         </map>
+         <key>llRemoveFromLandPassList</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>AvatarID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Remove avatar from the land pass list.</string>
+         </map>
+         <key>llRemoveInventory</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>InventoryItem</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Remove the named inventory item.</string>
+         </map>
+         <key>llRemoveVehicleFlags</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Vehiclelags</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Removes the enabled bits in 'flags'.</string>
+         </map>
+         <key>llRequestAgentData</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.1</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>AvatarID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Data</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Requests data about AvatarID. When data is available the dataserver event will be raised.</string>
+         </map>
+         <key>llRequestDisplayName</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>AvatarID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Avatar UUID</string>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Requests name of an avatar. When data is available, the dataserver event will be raised.</string>
+         </map>
+         <key>llRequestInventoryData</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>1.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>InventoryItem</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Requests data from object's inventory object. When data is available the dataserver event will be raised.</string>
+         </map>
+         <key>llRequestPermissions</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>AvatarID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+               <map>
+                  <key>PermmissionMask</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Ask AvatarID to allow the script to do PermmissionMask (NB: Debit, ownership, link, joint, and permission requests can only go to the task's owner).</string>
+         </map>
+         <key>llRequestSecureURL</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Requests one HTTPS:// (SSL) URL for use by this object. An http_request event is triggered with the results.</string>
+         </map>
+         <key>llRequestSimulatorData</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>1.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>RegionName</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Data</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Requests data about a simulator. When data is available the dataserver event will be raised.</string>
+         </map>
+         <key>llRequestURL</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Requests one HTTP:// URL for use by this object. An http_request event is triggered with the results.</string>
+         </map>
+         <key>llRequestUsername</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>AvatarID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Requests single-word user-name of an avatar. When data is available the dataserver event will be raised.</string>
+         </map>
+         <key>llResetAnimationOverride</key>
+         <map>
+            <key>energy</key>
+            <real>0</real>
+            <key>sleep</key>
+            <real>0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>AnimationState</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Resets the animation of the specified animation state to the default value.</string>
+         </map>
+         <key>llResetLandBanList</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Removes all residents from the land ban list.</string>
+         </map>
+         <key>llResetLandPassList</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Removes all residents from the land access/pass list.</string>
+         </map>
+         <key>llResetOtherScript</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>ScriptName</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Resets the named script.</string>
+         </map>
+         <key>llResetScript</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Resets the script.</string>
+         </map>
+         <key>llResetTime</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Sets the time to zero.</string>
+         </map>
+         <key>llReturnObjectsByID</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>ObjectIDs</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>List of object UUIDs to be returned.</string>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Return objects using their UUIDs</string>
+         </map>
+         <key>llReturnObjectsByOwner</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>ID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Object owner's UUID.</string>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Scope</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Return objects based upon their owner and a scope of parcel, parcel owner, or region.</string>
+         </map>
+         <key>llRezAtRoot</key>
+         <map>
+            <key>energy</key>
+            <real>200.0</real>
+            <key>sleep</key>
+            <real>0.1</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>InventoryItem</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Position</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Velocity</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Rotation</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>rotation</string>
+                  </map>
+               </map>
+               <map>
+                  <key>StartParameter</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Instantiate owner's InventoryItem at Position with Velocity, Rotation and with StartParameter. The last selected root object's location will be set to Position.</string>
+         </map>
+         <key>llRezObject</key>
+         <map>
+            <key>energy</key>
+            <real>200</real>
+            <key>sleep</key>
+            <real>0.1</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>InventoryItem</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Position</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Velocity</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Rotation</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>rotation</string>
+                  </map>
+               </map>
+               <map>
+                  <key>StartParameter</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Instantiate owners InventoryItem at Position with Velocity, Rotation and with start StartParameter.</string>
+         </map>
+         <key>llRot2Angle</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Rotation</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>rotation</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the rotation angle represented by Rotation.</string>
+         </map>
+         <key>llRot2Axis</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Rotation</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>rotation</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the rotation axis represented by Rotation.</string>
+         </map>
+         <key>llRot2Euler</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Rotation</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>rotation</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the Euler representation (roll, pitch, yaw) of Rotation.</string>
+         </map>
+         <key>llRot2Fwd</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Rotation</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>rotation</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the forward vector defined by Rotation.</string>
+         </map>
+         <key>llRot2Left</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Rotation</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>rotation</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the left vector defined by Rotation.</string>
+         </map>
+         <key>llRot2Up</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Rotation</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>rotation</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the up vector defined by Rotation.</string>
+         </map>
+         <key>llRotateTexture</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.2</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Radians</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Face</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Sets the texture rotation for the chosen face.</string>
+         </map>
+         <key>llRotBetween</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>rotation</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Vector1</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Vector2</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the rotation to rotate Vector1 to Vector2.</string>
+         </map>
+         <key>llRotLookAt</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Rotation</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>rotation</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Strength</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Damping</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Cause object to point it's forward axis towards Rotation.</string>
+         </map>
+         <key>llRotTarget</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Rotation</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>rotation</string>
+                  </map>
+               </map>
+               <map>
+                  <key>LeeWay</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Set rotations with error of LeeWay as a rotational target and return an ID for the rotational target.</string>
+         </map>
+         <key>llRotTargetRemove</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Handle</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Removes rotational target number.</string>
+         </map>
+         <key>llRound</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Value</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns Value rounded to the nearest integer.</string>
+         </map>
+         <key>llSameGroup</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>ID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns TRUE if avatar ID is in the same region and has the same active group, otherwise FALSE.</string>
+         </map>
+         <key>llSay</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Channel</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Channel to use to say text on.</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Text to say.</string>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Says Text on Channel.</string>
+         </map>
+         <key>llScaleByFactor</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>ScalingFactor</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>The multiplier to be used with the prim sizes and their local positions.</string>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Attempts to resize the entire object by scaling_factor, maintaining the size-position ratios of the prims.\n\nResizing is subject to prim scale limits and linkability limits. This function can not resize the object if the linkset is physical, a pathfinding character, in a keyframed motion, or if resizing would cause the parcel to overflow.\nReturns a boolean (an integer) TRUE if it succeeds, FALSE if it fails.</string>
+         </map>
+         <key>llScaleTexture</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.2</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Horizontal</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Vertical</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Face</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Sets the texture's S and T scales for the chosen Face.</string>
+         </map>
+         <key>llScriptDanger</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Position</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns TRUE if Position is over public land, sandbox land, land that doesn't allow everyone to edit and build, or land that doesn't allow outside scripts.</string>
+         </map>
+         <key>llScriptProfiler</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>State</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>PROFILE_NONE or PROFILE_SCRIPT_MEMORY flags to control the state.</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Enables or disables script profiling options. Currently only supports PROFILE_SCRIPT_MEMORY (Mono only) and PROFILE_NONE.\n
+				MAY SIGNIFICANTLY REDUCE SCRIPT PERFORMANCE!.</string>
+         </map>
+         <key>llSendRemoteData</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>3.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>ChannelID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Destination</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Value</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Deprecated: use HTTP instead.\n
+				Sends an XML-RPC request to Destination through ChannelID with payload of ChannelID (in a string), integer Value and string Text.
+				Returns a key that is the message_id for the resulting remote_data events.</string>
+         </map>
+         <key>llSensor</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Name</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Object or avatar name.</string>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>ID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Object or avatar UUID.</string>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Type</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Bit-field mask of AGENT, AGENT_BY_LEGACY_NAME, AGENT_BY_USERNAME, ACTIVE, PASSIVE, and/or SCRIPTED</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Range</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Distance to scan. 0.0 - 96.0m.</string>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Arc</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Angle, in radians, from the local x-axis of the prim to scan.</string>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Performs a single scan for Name and ID with Type (AGENT, ACTIVE, PASSIVE, and/or SCRIPTED) within Range meters and Arc radians of forward vector (Name, ID, and/or Type can be empty or 0).</string>
+         </map>
+         <key>llSensorRemove</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>removes sensor.</string>
+         </map>
+         <key>llSensorRepeat</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Name</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Object or avatar name.</string>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>ID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Object or avatar UUID.</string>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Type</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Bit-field mask of AGENT, AGENT_BY_LEGACY_NAME, AGENT_BY_USERNAME, ACTIVE, PASSIVE, and/or SCRIPTED</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Range</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Distance to scan. 0.0 - 96.0m.</string>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Arc</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Angle, in radians, from the local x-axis of the prim to scan.</string>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Rate</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Period, in seconds, between scans.</string>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Sets a callback for Name and ID with Type (AGENT, ACTIVE, PASSIVE, and/or SCRIPTED) within Range meters and Arc radians of forward vector (Name, ID, and/or Type can be empty or 0) and repeats every Rate seconds.</string>
+         </map>
+         <key>llSetAlpha</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Opacity</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Face</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Sets the alpha (opacity) of Face.</string>
+         </map>
+         <key>llSetAngularVelocity</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Force</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>The force to apply.</string>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Local</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>If TRUE, the Force is treated as a local directional vector instead of a regional directional vector.</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Sets an object's angular velocity, in local coordinates if local == TRUE (if the script is physical).</string>
+         </map>
+         <key>llSetAnimationOverride</key>
+         <map>
+            <key>energy</key>
+            <real>0</real>
+            <key>sleep</key>
+            <real>0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>AnimationState</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>AnimationName</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Sets the animation (in object inventory) that will play for the given animation state.</string>
+         </map>
+         <key>llSetBuoyancy</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Buoyancy</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Set the tasks buoyancy (0 is none, &lt; 1.0 sinks, 1.0 floats, &gt; 1.0 rises).</string>
+         </map>
+         <key>llSetCameraAtOffset</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Offset</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Sets the camera used in this object, at offset, if an avatar sits on it.</string>
+         </map>
+         <key>llSetCameraEyeOffset</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Offset</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Sets the camera eye offset used in this object if an avatar sits on it.</string>
+         </map>
+         <key>llSetCameraParams</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Parameters</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Sets multiple camera parameters at once. List format is [ rule-1, data-1, rule-2, data-2 . . . rule-n, data-n ].</string>
+         </map>
+         <key>llSetClickAction</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Action</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>A CLICK_ACTION_* flag</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Sets the action performed when a prim is clicked upon.</string>
+         </map>
+         <key>llSetColor</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Colour</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Face</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Sets the color, for the face.</string>
+         </map>
+         <key>llSetContentType</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>HTTPRequestID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>A valid http_request() key</string>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+               <map>
+                  <key>ContentType</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Media type to use with any following llHTTPResponse(HTTPRequestID, ...)</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Set the media type of an LSL HTTP server response.</string>
+         </map>
+         <key>llSetDamage</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Damage</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Sets the amount of damage that will be done to an avatar that this task hits.	Task will be killed.</string>
+         </map>
+         <key>llSetForce</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Force</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Directional force.</string>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Local</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Boolean, if TRUE uses local axis, if FALSE uses region axis.</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Sets Force on object, in local coordinates if Local == TRUE (if the script is physical).</string>
+         </map>
+         <key>llSetForceAndTorque</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Force</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Directional force.</string>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Torque</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Torque force.</string>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Local</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Boolean, if TRUE uses local axis, if FALSE uses region axis.</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Sets the Force and Torque of object, in local coordinates if Local == TRUE (if the script is physical).</string>
+         </map>
+         <key>llSetHoverHeight</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Height</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Distance above the ground.</string>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Water</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Boolean, if TRUE then hover above water too.</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Tau</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Seconds to critically damp in.</string>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Critically damps to a Height (either above ground level or above the higher of land and water if water == TRUE).</string>
+         </map>
+         <key>llSetInventoryPermMask</key>
+         <map>
+            <key>god-mode</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>InventoryItem</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>An item in the prim's inventory</string>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>PermissionFlag</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>MASK_* flag</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>PermissionMask</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Permission bit-field (PERM_* flags)</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Sets the given permission mask to the new value on the inventory item.</string>
+         </map>
+         <key>llSetKeyframedMotion</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Keyframes</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Strided keyframe list of the form: position, orientation, time. Each keyframe is interpreted relative to the previous transform of the object.</string>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Options</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Requests that a non-physical object be key-framed according to key-frame list.</string>
+         </map>
+         <key>llSetLinkAlpha</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>LinkNumber</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Opacity</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Face</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>If a prim exists in the link chain at LinkNumber, set Face to Opacity.</string>
+         </map>
+         <key>llSetLinkCamera</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>LinkNumber</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Prim link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>EyeOffset</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Offset, relative to the object's centre and expressed in local coordinates, that the camera looks from.</string>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+               <map>
+                  <key>LookOffset</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Offset, relative to the object's centre and expressed in local coordinates, that the camera looks toward.</string>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Sets the camera eye offset, and the offset that camera is looking at, for avatars that sit on the linked prim.</string>
+         </map>
+         <key>llSetLinkColor</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>LinkNumber</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag.</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Colour</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Colour in RGB &lt;R.R, G.G, B.B&gt;</string>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Face</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Side number or ALL_SIDES.</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>If a task exists in the link chain at LinkNumber, set the Face to color.</string>
+         </map>
+         <key>llSetLinkMedia</key>
+         <map>
+            <key>energy</key>
+            <real>0.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Link</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims).</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Face</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Face number.</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Parameters</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>A set of name/value pairs (in no particular order)</string>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Set the media parameters for a particular face on linked prim.	Parameters is a list of name/value pairs (in no particular order). If media is not already on this object, add it. Parameters not specified are unchanged, or if new media is added set to the default specified.</string>
+         </map>
+         <key>llSetLinkPrimitiveParams</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.2</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>LinkNumber</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Parameters</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Set primitive parameters for LinkNumber based on Parameters.</string>
+         </map>
+         <key>llSetLinkPrimitiveParamsFast</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>LinkNumber</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Parameters</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Set primitive parameters for LinkNumber based on Parameters, without a delay.</string>
+         </map>
+         <key>llSetLinkTexture</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.2</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>LinkNumber</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Texture</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Face</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Sets the Texture of Face on a linked prim, specified by LinkNumber. Texture may be a UUID or name of a texture in prim inventory.</string>
+         </map>
+         <key>llSetLinkTextureAnim</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>LinkNumber</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag to effect</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Mode</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Bitmask of animation options.</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Face</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Specifies which object face to animate or ALL_SIDES.</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>SizeX</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Horizontal frames (ignored for ROTATE and SCALE).</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>SizeY</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Vertical frames (ignored for ROTATE and SCALE).</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Start</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Start position/frame number (or radians for ROTATE).</string>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Length</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Specifies the animation duration, in frames (or radians for ROTATE).</string>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Rate</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Specifies the animation playback rate, in frames per second (must be greater than zero).</string>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Animates a texture on the prim specified by LinkNumber, by setting the texture scale and offset.</string>
+         </map>
+         <key>llSetLocalRot</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.2</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Rotation</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>rotation</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Sets the rotation of a child prim relative to the root prim.</string>
+         </map>
+         <key>llSetMemoryLimit</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Limit</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>The amount to reserve, which must be less than the allowed maximum (currently 64KB) and not already have been exceeded.</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Requests Limit bytes to be reserved for this script.\nReturns TRUE or FALSE indicating whether the limit was set successfully.\nThis function has no effect if the script is running in the LSO VM.</string>
+         </map>
+         <key>llSetObjectDesc</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Description</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Sets the description of the prim to Description.\nThe description field is limited to 127 characters.</string>
+         </map>
+         <key>llSetObjectName</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Name</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Sets the prim's name to Name.</string>
+         </map>
+         <key>llSetObjectPermMask</key>
+         <map>
+            <key>god-mode</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>PermissionFlag</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>MASK_* flag</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>PermissionMask</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Permission bit-field (PERM_* flags)</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Sets the specified PermissionFlag permission to the value specified by PermissionMask on the object the script is attached to.</string>
+         </map>
+         <key>llSetParcelMusicURL</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>2.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>URL</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Sets the streaming audio URL for the parcel the object is on.\nThe object must be owned by the owner of the parcel; if the parcel is group owned the object must be owned by that group.</string>
+         </map>
+         <key>llSetPayPrice</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Price</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>The default price shown in the textu input field.</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>QuickButtons</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Specifies the 4 payment values shown in the payment dialog's buttons (or PAY_HIDE).</string>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Sets the default amount when someone chooses to pay this object.</string>
+         </map>
+         <key>llSetPhysicsMaterial</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>MaterialBits</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>A bitmask specifying which of the parameters in the other arguments should be applied to the object.</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>GravityMultiplier</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Restitution</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Friction</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Density</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Sets the selected parameters of the root object's physics behaviour.</string>
+         </map>
+         <key>llSetPos</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.2</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Position</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Region coordinates to move to (within 10m).</string>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>If the object is not physical, this function sets the position of the prim.</string>
+         </map>
+         <key>llSetPrimitiveParams</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.2</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Parameters</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>A list of changes.</string>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>This function changes the many properties (or "parameters") of a prim in one operation.</string>
+         </map>
+         <key>llSetPrimMediaParams</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.1</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Face</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Face number</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>MediaParameters</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>A set of name/value pairs (in no particular order)</string>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Sets the MediaParameters for a particular Face on the prim. If media is not already on this prim, adds it.</string>
+         </map>
+         <key>llSetPrimURL</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>20.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>URL</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Deprecated: Use llSetPrimMediaParams instead.</string>
+         </map>
+         <key>llSetRegionPos</key>
+         <map>
+            <key>energy</key>
+            <real>0.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Position</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Vector. The location to move to, in region coordinates.</string>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Attempts to move the object so that the root prim is within 0.1m of Position.\nReturns an integer boolean, TRUE if the object is successfully placed within 0.1 m of Position, FALSE otherwise.</string>
+         </map>
+         <key>llSetRemoteScriptAccessPin</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.2</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>PIN</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>If PIN is set to a non-zero number, the task will accept remote script loads via llRemoteLoadScriptPin() if it passes in the correct PIN. Othersise, llRemoteLoadScriptPin() is ignored.</string>
+         </map>
+         <key>llSetRot</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.2</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Rotation</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>rotation</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>If the object is not physical, this function sets the rotation of the prim.</string>
+         </map>
+         <key>llSetScale</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Scale</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Sets the prim's scale (size) to Scale.</string>
+         </map>
+         <key>llSetScriptState</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>ScriptName</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Running</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Enable or disable the script Running state of ScriptName in the prim.</string>
+         </map>
+         <key>llSetSitText</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Displays Text rather than "Sit" in the viewer's context menu.</string>
+         </map>
+         <key>llSetSoundQueueing</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>QueueEnable</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Boolean, sound queuing: TRUE enables, FALSE disables (default).</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Determines whether attached sound calls wait for the current sound to finish (0 = no [default], non-zero = yes).</string>
+         </map>
+         <key>llSetSoundRadius</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Radius</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Establishes a hard cut-off radius for audibility of scripted sounds (both attached and triggered).</string>
+         </map>
+         <key>llSetStatus</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Status</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Value</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Sets status (STATUS_PHYSICS, STATUS_PHANTOM, STATUS_BLOCK_GRAB, STATUS_ROTATE_X, STATUS_ROTATE_Y, and/or STATUS_ROTATE_Z) to value.</string>
+         </map>
+         <key>llSetText</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Colour</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Opacity</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Set text floating over object.</string>
+         </map>
+         <key>llSetTexture</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.2</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Texture</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Face</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Sets the Texture of Face.</string>
+         </map>
+         <key>llSetTextureAnim</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Mode</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Mask of Mode flags.</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Face</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Face number or ALL_SIDES.</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>SizeX</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Horizontal frames (ignored for ROTATE and SCALE).</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>SizeY</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Vertical frames (ignored for ROTATE and SCALE).</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Start</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Start position/frame number (or radians for ROTATE).</string>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Length</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>number of frames to display (or radians for ROTATE).</string>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Rate</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Frames per second (must not greater than zero).</string>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Animate the texture on the specified face/faces.</string>
+         </map>
+         <key>llSetTimerEvent</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Rate</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Cause the timer event to be triggered every Rate seconds.</string>
+         </map>
+         <key>llSetTorque</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Torque</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Torque force.</string>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Local</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Boolean, if TRUE uses local axis, if FALSE uses region axis.</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Sets the Torque of object, in local coordinates if Local == TRUE (if the script is physical).</string>
+         </map>
+         <key>llSetTouchText</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Displays Text in the menu that acts on a touch.</string>
+         </map>
+         <key>llSetVehicleFlags</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Flags</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Sets the enabled bits in 'flags'.</string>
+         </map>
+         <key>llSetVehicleFloatParam</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>ParameterName</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>ParameterValue</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Sets the specified vehicle float parameter.</string>
+         </map>
+         <key>llSetVehicleRotationParam</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>ParameterName</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>ParameterValue</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Sets the specified vehicle rotation parameter.</string>
+         </map>
+         <key>llSetVehicleType</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Type</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Sets vehicle to one of the default types.</string>
+         </map>
+         <key>llSetVehicleVectorParam</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>ParameterName</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>ParameterValue</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Sets the specified vehicle vector parameter.</string>
+         </map>
+         <key>llSetVelocity</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Force</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>The force to apply.</string>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Local</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>If TRUE, the vForce is treated as a local directional vector instead of a regional directional vector.</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Sets an objects velocity, in local coordinates if Local == TRUE (if the script is physical).</string>
+         </map>
+         <key>llSHA1String</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns a string of 40 hex characters that is the SHA1 security Hash of Text.</string>
+         </map>
+         <key>llShout</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Channel</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>shouts Text on Channel.</string>
+         </map>
+         <key>llSin</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Theta</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the sine of Theta (Theta in radians).</string>
+         </map>
+         <key>llSitTarget</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Offset</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Rotation</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>rotation</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Set the sit location for this object (if offset == &lt;0,0,0&gt; clear it).</string>
+         </map>
+         <key>llSleep</key>
+         <map>
+            <key>energy</key>
+            <real>0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Time</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Put script to sleep for Time seconds.</string>
+         </map>
+         <key>llSound</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Sound</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Volume</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Queue</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Loop</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Deprecated: Use llPlaySound instead.</string>
+         </map>
+         <key>llSoundPreload</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Sound</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Deprecated: Use llPreloadSound instead.</string>
+         </map>
+         <key>llSqrt</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Value</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the square root of Value, or returns 0 and triggers a Math Error for imaginary results.</string>
+         </map>
+         <key>llStartAnimation</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Animation</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Start Animation for agent that owns object.</string>
+         </map>
+         <key>llStopAnimation</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Animation</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Stop Animation for agent that owns object.</string>
+         </map>
+         <key>llStopHover</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Stop hovering to a height.</string>
+         </map>
+         <key>llStopLookAt</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Stop causing object to point at a target.</string>
+         </map>
+         <key>llStopMoveToTarget</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Stops critically damped motion.</string>
+         </map>
+         <key>llStopSound</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Stops currently attached sound.</string>
+         </map>
+         <key>llStringLength</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the length of string.</string>
+         </map>
+         <key>llStringToBase64</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Converts a string to the Base64 representation of the string.</string>
+         </map>
+         <key>llStringTrim</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>String to trim</string>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>TrimType</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>STRING_TRIM_HEAD, STRING_TRIM_TAIL, or STRING_TRIM.</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Trims the leading and/or trailing white spaces from a string.\n
+				TrimType can be STRING_TRIM, STRING_TRIM_HEAD or STRING_TRIM_TAIL.</string>
+         </map>
+         <key>llSubStringIndex</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Sequence</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns an integer that is the index in source where pattern first appears. Returns -1 if not found.</string>
+         </map>
+         <key>llTakeCamera</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>AvatarID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Deprecated: Use llSetCameraParams instead.</string>
+         </map>
+         <key>llTakeControls</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Controls</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Bit-field of CONTROL_* flags.</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Accept</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Boolean, determines whether control events are generated.</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>PassOn</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Boolean, determines whether controls are disabled.</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Take controls from agent task has permissions for.	If (Accept == (controls &amp; input)), send input to task.	If PassOn send to agent also.</string>
+         </map>
+         <key>llTan</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Theta</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the tangent of Theta (Theta in radians).</string>
+         </map>
+         <key>llTarget</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>integer</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Position</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Range</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Sets positions within range of position as a target and return an ID for the target.</string>
+         </map>
+         <key>llTargetOmega</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Axis</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+               <map>
+                  <key>SpinRate</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Gain</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Attempt to spin at SpinRate with strength Gain.</string>
+         </map>
+         <key>llTargetRemove</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Target</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Removes target number.</string>
+         </map>
+         <key>llTeleportAgent</key>
+         <map>
+            <key>energy</key>
+            <real>0</real>
+            <key>sleep</key>
+            <real>0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>AvatarID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>UUID of avatar.</string>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+               <map>
+                  <key>LandmarkName</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Name of landmark (in object contents), or empty string, to use.</string>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Position</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>If no landmark was provided, the position within the current region to teleport the avatar to.</string>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+               <map>
+                  <key>LookAtPoint</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>The position within the target region that the avatar should be turned to face upon arrival.</string>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Requests a teleport of avatar to a landmark stored in the object's inventory. If no landmark is provided (an empty string), the avatar is teleported to the location position in the current region. In either case, the avatar is turned to face the position given by look_at in local coordinates.
 				Requires the PERMISSION_TELEPORT permission. This function can only teleport the owner of the object.</string>
-   </map>
-   <key>llTeleportAgentGlobalCoords</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>AvatarID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-     <map>
-      <key>GlobalPosition</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-     <map>
-      <key>RegionPosition</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-     <map>
-      <key>LookAtPoint</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0</real>
-    <key>tooltip</key>
-    <string>Teleports an agent to set of a region_coordinates within a region at the specified global_coordinates. The agent lands facing the position defined by look_at local coordinates.</string>
-   </map>
-   <key>llTeleportAgentHome</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>AvatarID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>100.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>5.0</real>
-    <key>tooltip</key>
-    <string>Teleports agent on owner's land to agent's home location.\nTeleport agent over the owner's land to agent's home location.</string>
-   </map>
-   <key>llTextBox</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>AvatarID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-     <map>
-      <key>Text</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>Channel</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>1.0</real>
-    <key>tooltip</key>
-    <string>Shows a dialog box on the avatar's screen with the message. A text box asks for input, and if entered the Text is chatted on Channel.\nShows a dialogue box on avatar's screen with the text message.\n
-				It contains a text box for input. Any text that is entered is said on the specified channel (as if by the avatar) when the "OK" button is clicked.</string>
-   </map>
-   <key>llToLower</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Text</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>string</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns a string that is Text with all lower-case characters.\nReturns Text in all lower case.</string>
-   </map>
-   <key>llToUpper</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Text</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>string</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns a string that is Text with all upper-case characters.\nReturns Text in all upper case.</string>
-   </map>
-   <key>llTransferLindenDollars</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>AvatarID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-     <map>
-      <key>Amount</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real/>
-    <key>return</key>
-    <string>key</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Transfer Amount of linden dollars (L$) from script owner to AvatarID. Returns a key to a corresponding transaction_result event for the success of the transfer.\nAttempts to send the amount of money to the specified avatar, and trigger a transaction_result event identified by the returned key.</string>
-   </map>
-   <key>llTriggerSound</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Sound</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>Volume</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Plays Sound at Volume (0.0 - 1.0), centered at but not attached to object.\nPlays a transient sound NOT attached to an object.\n
-				The sound plays from a stationary position located at the centre of the object at the time of the triggering.\n
-				There is no limit to the number of triggered sounds which can be generated by an object, and calling llTriggerSound does not affect the attached sounds created by llPlaySound and llLoopSound. This is very useful for things like collision noises, explosions, etc. There is no way to stop or alter the volume of a sound triggered by this function.</string>
-   </map>
-   <key>llTriggerSoundLimited</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Sound</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>Volume</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>float</string>
-      </map>
-     </map>
-     <map>
-      <key>TNE</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-     <map>
-      <key>BSW</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Plays Sound at Volume (0.0 - 1.0), centered at but not attached to object, limited to axis-aligned bounding box defined by vectors top-north-east (TNE) and bottom-south-west (BSW).\nPlays a transient sound NOT attached to an object, with its audible range limited by the axis-aligned bounding box define by TNE (top-north-east) and BSW (bottom-south-west).\n
-				The sound plays from a stationary position located at the centre of the object at the time of the triggering.\n
-				There is no limit to the number of triggered sounds which can be generated by an object, and calling llTriggerSound does not affect the attached sounds created by llPlaySound and llLoopSound. This is very useful for things like collision noises, explosions, etc. There is no way to stop or alter the volume of a sound triggered by this function.</string>
-   </map>
-   <key>llUnescapeURL</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>URL</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>string</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns an unescaped/ unencoded version of URL, replacing %20 with spaces etc.\nReturns the string that is the URL unescaped, replacing "%20" with spaces, etc., version of URL.\n
-				The function can output raw UTF-8 strings.</string>
-   </map>
-   <key>llUnSit</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>AvatarID</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>key</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>If agent identified by AvatarID is sitting on the object the script is attached to or is over land owned by the objects owner, the agent is forced to stand up.\nIf the agent identified is sitting on the object the script is attached to or is over land owned by the objects owner, the agent is forced to stand up.</string>
-   </map>
-   <key>llUpdateCharacter</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Options</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real/>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real/>
-    <key>tooltip</key>
-    <string>Change the character's settings.\nUpdates settings for a character.</string>
-   </map>
-   <key>llVecDist</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Location1</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-     <map>
-      <key>Location2</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>float</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the 3D distance between Location1 and Location2.\nReturns the distance from location 1 to location 2.</string>
-   </map>
-   <key>llVecMag</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Vector</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>float</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the magnitude of Vector.\nReturns the magnitude of the vector.</string>
-   </map>
-   <key>llVecNorm</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Vector</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>vector</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the v normalized.\nReturns normalized vector.</string>
-   </map>
-   <key>llVolumeDetect</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>DetectEnabled</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>If DetectEnabled = TRUE, object becomes phantom but triggers collision_start and collision_end events when other objects start and stop interpenetrating. Must be applied to the root object.\nWhen detect = TRUE, this makes the entire link set the script is attached to phantom. If another object (including avatars) interpenetrates it, it will get a collision_start event.\n
-				When an object stops interpenetrating, a collision_end event is generated. While the other is inter-penetrating, collision events are NOT generated. The script must be applied to the root object of the link set to get the collision events.\n
-				Collision filters work normally.</string>
-   </map>
-   <key>llWanderWithin</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Origin</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-     <map>
-      <key>Area</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-     <map>
-      <key>Options</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>list</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real/>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real/>
-    <key>tooltip</key>
-    <string>Wander within a specified volume.\nSets a character to wander about a central spot within a specified area.</string>
-   </map>
-   <key>llWater</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Offset</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>float</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the water height below the object position + offset.\nReturns the water height at the object's position + offset.</string>
-   </map>
-   <key>llWhisper</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Channel</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>integer</string>
-      </map>
-     </map>
-     <map>
-      <key>Text</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>void</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Whispers Text on Channel.\nWhisper Text on Channel. Channel 0 is the public chat channel that all avatars see as chat text. Channels 1 to 2,147,483,648 are private channels that are not sent to avatars but other scripts can listen for through the llListen function.</string>
-   </map>
-   <key>llWind</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Offset</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>vector</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>vector</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Returns the wind velocity at the object position + offset.\nReturns the wind velocity at the object's position + offset.</string>
-   </map>
-   <key>llXorBase64</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Text1</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>Text2</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-    </array>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>string</string>
-    <key>sleep</key>
-    <real>0.3</real>
-    <key>tooltip</key>
-    <string>Performs an exclusive OR on two Base64 strings and returns a Base64 string.	Text2 repeats if it is shorter than Text1.	Retained for backwards compatibility.\nDeprecated: Use llXorBase64StringsCorrect instead.\nIncorrectly performs an exclusive OR on two Base64 strings and returns a Base64 string.</string>
-   </map>
-   <key>llXorBase64Strings</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Text1</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>Text2</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-    </array>
-    <key>deprecated</key>
-    <boolean>true</boolean>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>string</string>
-    <key>sleep</key>
-    <real>0.3</real>
-    <key>tooltip</key>
-    <string>Deprecated: Please use llXorBase64 instead.\n
-				Incorrectly performs an exclusive OR on two Base64 strings and returns a Base64 string.	Text2 repeats if it is shorter than Text1.	Retained for backwards compatibility.\nDeprecated: Use llXorBase64StringsCorrect instead.\nIncorrectly performs an exclusive OR on two Base64 strings and returns a Base64 string.</string>
-   </map>
-   <key>llXorBase64StringsCorrect</key>
-   <map>
-    <key>arguments</key>
-    <array>
-     <map>
-      <key>Text1</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-     <map>
-      <key>Text2</key>
-      <map>
-       <key>tooltip</key>
-       <string/>
-       <key>type</key>
-       <string>string</string>
-      </map>
-     </map>
-    </array>
-    <key>deprecated</key>
-    <boolean>true</boolean>
-    <key>energy</key>
-    <real>10.0</real>
-    <key>return</key>
-    <string>string</string>
-    <key>sleep</key>
-    <real>0.0</real>
-    <key>tooltip</key>
-    <string>Deprecated: Please use llXorBase64 instead.\n
+         </map>
+         <key>llTeleportAgentGlobalCoords</key>
+         <map>
+            <key>energy</key>
+            <real>0</real>
+            <key>sleep</key>
+            <real>0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>AvatarID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>UUID of avatar.</string>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+               <map>
+                  <key>GlobalPosition</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Global coordinates of the destination region. Can be retrieved by using llRequestSimulatorData(region_name, DATA_SIM_POS).</string>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+               <map>
+                  <key>RegionPosition</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>The position within the target region to teleport the avatar to, if no landmark was provided.</string>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+               <map>
+                  <key>LookAtPoint</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>The position within the target region that the avatar should be turned to face upon arrival.</string>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Teleports an agent to set of a region_coordinates within a region at the specified global_coordinates. The agent lands facing the position defined by look_at local coordinates.</string>
+         </map>
+         <key>llTeleportAgentHome</key>
+         <map>
+            <key>energy</key>
+            <real>100.0</real>
+            <key>sleep</key>
+            <real>5.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>AvatarID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Teleports agent on owner's land to agent's home location.</string>
+         </map>
+         <key>llTextBox</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>1.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>AvatarID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Channel</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Shows a dialog box on the avatar's screen with the message. A text box asks for input, and if entered the Text is chatted on Channel.</string>
+         </map>
+         <key>llToLower</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns a string that is Text with all lower-case characters.</string>
+         </map>
+         <key>llToUpper</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns a string that is Text with all upper-case characters.</string>
+         </map>
+         <key>llTransferLindenDollars</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>key</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>AvatarID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Amount</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Transfer Amount of linden dollars (L$) from script owner to AvatarID. Returns a key to a corresponding transaction_result event for the success of the transfer.</string>
+         </map>
+         <key>llTriggerSound</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Sound</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Volume</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Plays Sound at Volume (0.0 - 1.0), centered at but not attached to object.</string>
+         </map>
+         <key>llTriggerSoundLimited</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Sound</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Volume</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>float</string>
+                  </map>
+               </map>
+               <map>
+                  <key>TNE</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+               <map>
+                  <key>BSW</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Plays Sound at Volume (0.0 - 1.0), centered at but not attached to object, limited to axis-aligned bounding box defined by vectors top-north-east (TNE) and bottom-south-west (BSW).</string>
+         </map>
+         <key>llUnescapeURL</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>URL</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns an unescaped/ unencoded version of URL, replacing %20 with spaces etc.</string>
+         </map>
+         <key>llUnSit</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>AvatarID</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>key</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>If agent identified by AvatarID is sitting on the object the script is attached to or is over land owned by the objects owner, the agent is forced to stand up.</string>
+         </map>
+         <key>llUpdateCharacter</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Options</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Character configuration options. Takes the same constants as llCreateCharacter().</string>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Change the character's settings.</string>
+         </map>
+         <key>llVecDist</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Location1</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Location2</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the 3D distance between Location1 and Location2.</string>
+         </map>
+         <key>llVecMag</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Vector</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the magnitude of Vector.</string>
+         </map>
+         <key>llVecNorm</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Vector</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the v normalized.</string>
+         </map>
+         <key>llVolumeDetect</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>DetectEnabled</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>.TRUE enables, FALSE disables.</string>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>If DetectEnabled = TRUE, object becomes phantom but triggers collision_start and collision_end events when other objects start and stop interpenetrating. Must be applied to the root object.</string>
+         </map>
+         <key>llWanderWithin</key>
+         <map>
+            <key>energy</key>
+            <real/>
+            <key>sleep</key>
+            <real/>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Origin</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Central point to wander about.</string>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Area</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>Half-extents of an area the character may wander within. (i.e., it can wander from the specified origin by up to +/-Distance.x in x, +/-Distance.y in y, etc.)</string>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Options</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string>No options available at this time.</string>
+                     <key>type</key>
+                     <string>list</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Wander within a specified volume.</string>
+         </map>
+         <key>llWater</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Offset</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the water height below the object position + offset.</string>
+         </map>
+         <key>llWhisper</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>void</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Channel</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>integer</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Text</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Whispers Text on Channel.</string>
+         </map>
+         <key>llWind</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>vector</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Offset</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>vector</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Returns the wind velocity at the object position + offset.</string>
+         </map>
+         <key>llXorBase64</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.3</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Text1</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Text2</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Performs an exclusive OR on two Base64 strings and returns a Base64 string.	Text2 repeats if it is shorter than Text1.	Retained for backwards compatibility.</string>
+         </map>
+         <key>llXorBase64Strings</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.3</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Text1</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Text2</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Deprecated: Please use llXorBase64 instead.\n
+				Incorrectly performs an exclusive OR on two Base64 strings and returns a Base64 string.	Text2 repeats if it is shorter than Text1.	Retained for backwards compatibility.</string>
+         </map>
+         <key>llXorBase64StringsCorrect</key>
+         <map>
+            <key>deprecated</key>
+            <boolean>true</boolean>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>string</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Text1</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+               <map>
+                  <key>Text2</key>
+                  <map>
+                     <key>tooltip</key>
+                     <string/>
+                     <key>type</key>
+                     <string>string</string>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Deprecated: Please use llXorBase64 instead.\n
 				Correctly (unless nulls are present) performs an exclusive OR on two Base64 strings and returns a Base64 string.\n
-				Text2 repeats if it is shorter than Text1.\nPerforms an exclusive-OR on two Base64 strings and returns a Base64 string. text-2 repeats if it is shorter than text-1.\n
-				This function is for encrypting data. Put your data in text-1 and your key in text-2 to encrypt or put the encrypted data into text-1 with the same key in text-2 to decrypt again.</string>
-   </map>
-  </map>
-  <key>llsd-lsl-syntax-version</key>
-  <integer>2</integer>
-  <key>types</key>
-  <map>
-   <key>float</key>
-   <map>
-    <key>tooltip</key>
-    <string>32 bit floating point value.\nThe range is 1.175494351E-38 to 3.402823466E+38.</string>
-   </map>
-   <key>integer</key>
-   <map>
-    <key>tooltip</key>
-    <string>32 bit integer value.\n−2,147,483,648 and +2,147,483,647 (that is 0x80000000 to 0x7FFFFFFF in hex).</string>
-   </map>
-   <key>key</key>
-   <map>
-    <key>tooltip</key>
-    <string>A 128 bit unique identifier (UUID).\nThe key is represented as hexidecimal characters (A-F and 0-9), grouped into sections (8,4,4,4,12 characters) and separated by hyphens (for a total of 36 characters). e.g. "A822FF2B-FF02-461D-B45D-DCD10A2DE0C2".</string>
-   </map>
-   <key>list</key>
-   <map>
-    <key>tooltip</key>
-    <string>A collection of other data types.\nLists are signified by square brackets surrounding their elements; the elements inside are separated by commas. e.g. [0, 1, 2, 3, 4] or ["Yes", "No", "Perhaps"].</string>
-   </map>
-   <key>quaternion</key>
-   <map>
-    <key>tooltip</key>
-    <string>The quaternion type is a left over from way back when LSL was created. It was later renamed to &lt;rotation&gt; to make it more user friendly, but it appears someone forgot to remove it ;-)</string>
-   </map>
-   <key>rotation</key>
-   <map>
-    <key>tooltip</key>
-    <string>The rotation type is one of several ways to represent an orientation in 3D.\nIt is a mathematical object called a quaternion. You can think of a quaternion as four numbers (x, y, z, w), three of which represent the direction an object is facing and a fourth that represents the object's banking left or right around that direction.</string>
-   </map>
-   <key>string</key>
-   <map>
-    <key>tooltip</key>
-    <string>Text data.\nThe editor accepts UTF-8 encoded text.</string>
-   </map>
-   <key>vector</key>
-   <map>
-    <key>tooltip</key>
-    <string>A vector is a data type that contains a set of three float values.\nVectors are used to represent colours (RGB), positions, and directions/velocities.</string>
+				Text2 repeats if it is shorter than Text1.</string>
+         </map>
+      </map>
+      <key>llsd-lsl-syntax-version</key>
+      <integer>2</integer>
    </map>
-  </map>
- </map>
 </llsd>
\ No newline at end of file
-- 
cgit v1.2.3


From 2af19a91d5e0c5832fcdd09d7d30b45ea44b1528 Mon Sep 17 00:00:00 2001
From: LanceCorrimal <none@none>
Date: Sat, 18 Jan 2014 17:28:34 +0100
Subject: Fixed: BUG-4413

---
 indra/newview/llappearancemgr.cpp | 13 +++++++++++++
 1 file changed, 13 insertions(+)

(limited to 'indra')

diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp
index da1609297e..4c98181ef3 100755
--- a/indra/newview/llappearancemgr.cpp
+++ b/indra/newview/llappearancemgr.cpp
@@ -1431,6 +1431,18 @@ void LLAppearanceMgr::takeOffOutfit(const LLUUID& cat_id)
 		uuids_to_remove.push_back(item->getUUID());
 	}
 	removeItemsFromAvatar(uuids_to_remove);
+	// now deactivating all gestures in that folder
+
+	LLInventoryModel::item_array_t gest_items;
+        getDescendentsOfAssetType(cat_id, gest_items, LLAssetType::AT_GESTURE, false);
+        for(S32 i = 0; i  < gest_items.count(); ++i)
+        {
+		LLViewerInventoryItem *gest_item = gest_items.get(i);
+		if ( LLGestureMgr::instance().isGestureActive( gest_item->getLinkedUUID()) )
+		{
+			LLGestureMgr::instance().deactivateGesture( gest_item->getLinkedUUID() );
+		}
+	}
 }
 
 // Create a copy of src_id + contents as a subfolder of dst_id.
@@ -3414,6 +3426,7 @@ void LLAppearanceMgr::removeItemsFromAvatar(const uuid_vec_t& ids_to_remove)
 	{
 		llwarns << "called with empty list, nothing to do" << llendl;
 	}
+
 	for (uuid_vec_t::const_iterator it = ids_to_remove.begin(); it != ids_to_remove.end(); ++it)
 	{
 		const LLUUID& id_to_remove = *it;
-- 
cgit v1.2.3


From 316bf51482c17b1a03567d37488067af9c412493 Mon Sep 17 00:00:00 2001
From: Ansariel <none@none>
Date: Tue, 21 Jan 2014 15:11:10 +0100
Subject: MAINT-3187: Name list controls do not properly resolve avatar names

---
 indra/newview/llnamelistctrl.cpp | 33 +++++++++++++++++++++++++--------
 indra/newview/llnamelistctrl.h   | 13 +++++++++----
 2 files changed, 34 insertions(+), 12 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llnamelistctrl.cpp b/indra/newview/llnamelistctrl.cpp
index 7ddd04fed0..3b5a69fd3a 100755
--- a/indra/newview/llnamelistctrl.cpp
+++ b/indra/newview/llnamelistctrl.cpp
@@ -64,8 +64,7 @@ LLNameListCtrl::LLNameListCtrl(const LLNameListCtrl::Params& p)
 	mNameColumnIndex(p.name_column.column_index),
 	mNameColumn(p.name_column.column_name),
 	mAllowCallingCardDrop(p.allow_calling_card_drop),
-	mShortNames(p.short_names),
-	mAvatarNameCacheConnection()
+	mShortNames(p.short_names)
 {}
 
 // public
@@ -328,13 +327,16 @@ LLScrollListItem* LLNameListCtrl::addNameItemRow(
 			else
 			{
 				// ...schedule a callback
-				// This is not correct and will likely lead to partially populated lists in cases where avatar names are not cached.
-				// *TODO : Change this to have 2 callbacks : one callback per list item and one for the whole list.
-				if (mAvatarNameCacheConnection.connected())
+				avatar_name_cache_connection_map_t::iterator it = mAvatarNameCacheConnections.find(id);
+				if (it != mAvatarNameCacheConnections.end())
 				{
-					mAvatarNameCacheConnection.disconnect();
+					if (it->second.connected())
+					{
+						it->second.disconnect();
+					}
+					mAvatarNameCacheConnections.erase(it);
 				}
-				mAvatarNameCacheConnection = LLAvatarNameCache::get(id,boost::bind(&LLNameListCtrl::onAvatarNameCache,this, _1, _2, item->getHandle()));
+				mAvatarNameCacheConnections[id] = LLAvatarNameCache::get(id,boost::bind(&LLNameListCtrl::onAvatarNameCache,this, _1, _2, suffix, item->getHandle()));
 			}
 			break;
 		}
@@ -391,9 +393,18 @@ void LLNameListCtrl::removeNameItem(const LLUUID& agent_id)
 
 void LLNameListCtrl::onAvatarNameCache(const LLUUID& agent_id,
 									   const LLAvatarName& av_name,
+									   std::string suffix,
 									   LLHandle<LLNameListItem> item)
 {
-	mAvatarNameCacheConnection.disconnect();
+	avatar_name_cache_connection_map_t::iterator it = mAvatarNameCacheConnections.find(agent_id);
+	if (it != mAvatarNameCacheConnections.end())
+	{
+		if (it->second.connected())
+		{
+			it->second.disconnect();
+		}
+		mAvatarNameCacheConnections.erase(it);
+	}
 
 	std::string name;
 	if (mShortNames)
@@ -401,6 +412,12 @@ void LLNameListCtrl::onAvatarNameCache(const LLUUID& agent_id,
 	else
 		name = av_name.getCompleteName();
 
+	// Append optional suffix.
+	if (!suffix.empty())
+	{
+		name.append(suffix);
+	}
+
 	LLNameListItem* list_item = item.get();
 	if (list_item && list_item->getUUID() == agent_id)
 	{
diff --git a/indra/newview/llnamelistctrl.h b/indra/newview/llnamelistctrl.h
index 92e82b672d..4ed260d847 100755
--- a/indra/newview/llnamelistctrl.h
+++ b/indra/newview/llnamelistctrl.h
@@ -114,10 +114,14 @@ protected:
 	LLNameListCtrl(const Params&);
 	virtual ~LLNameListCtrl()
 	{
-		if (mAvatarNameCacheConnection.connected())
+		for (avatar_name_cache_connection_map_t::iterator it = mAvatarNameCacheConnections.begin(); it != mAvatarNameCacheConnections.end(); ++it)
 		{
-			mAvatarNameCacheConnection.disconnect();
+			if (it->second.connected())
+			{
+				it->second.disconnect();
+			}
 		}
+		mAvatarNameCacheConnections.clear();
 	}
 	friend class LLUICtrlFactory;
 public:
@@ -155,14 +159,15 @@ public:
 	/*virtual*/ void	mouseOverHighlightNthItem( S32 index );
 private:
 	void showInspector(const LLUUID& avatar_id, bool is_group);
-	void onAvatarNameCache(const LLUUID& agent_id, const LLAvatarName& av_name, LLHandle<LLNameListItem> item);
+	void onAvatarNameCache(const LLUUID& agent_id, const LLAvatarName& av_name, std::string suffix, LLHandle<LLNameListItem> item);
 
 private:
 	S32    			mNameColumnIndex;
 	std::string		mNameColumn;
 	BOOL			mAllowCallingCardDrop;
 	bool			mShortNames;  // display name only, no SLID
-	boost::signals2::connection mAvatarNameCacheConnection;
+	typedef std::map<LLUUID, boost::signals2::connection> avatar_name_cache_connection_map_t;
+	avatar_name_cache_connection_map_t mAvatarNameCacheConnections;
 };
 
 
-- 
cgit v1.2.3


From b2cc4feed2e1c1ffb6360225c0169577f2f8d1ee Mon Sep 17 00:00:00 2001
From: Oz Linden <oz@lindenlab.com>
Date: Thu, 23 Jan 2014 13:41:52 -0500
Subject: correct coding style problems, add contribution credit

---
 indra/newview/llappearancemgr.cpp | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp
index 4c98181ef3..c5e98915fc 100755
--- a/indra/newview/llappearancemgr.cpp
+++ b/indra/newview/llappearancemgr.cpp
@@ -1431,12 +1431,12 @@ void LLAppearanceMgr::takeOffOutfit(const LLUUID& cat_id)
 		uuids_to_remove.push_back(item->getUUID());
 	}
 	removeItemsFromAvatar(uuids_to_remove);
-	// now deactivating all gestures in that folder
 
+	// deactivate all gestures in the outfit folder
 	LLInventoryModel::item_array_t gest_items;
-        getDescendentsOfAssetType(cat_id, gest_items, LLAssetType::AT_GESTURE, false);
-        for(S32 i = 0; i  < gest_items.count(); ++i)
-        {
+	getDescendentsOfAssetType(cat_id, gest_items, LLAssetType::AT_GESTURE, false);
+	for(S32 i = 0; i  < gest_items.count(); ++i)
+	{
 		LLViewerInventoryItem *gest_item = gest_items.get(i);
 		if ( LLGestureMgr::instance().isGestureActive( gest_item->getLinkedUUID()) )
 		{
-- 
cgit v1.2.3


From 86676ec34be7be27f05460deb750d6eb334be0de Mon Sep 17 00:00:00 2001
From: Ansariel <none@none>
Date: Tue, 28 Jan 2014 19:45:50 +0100
Subject: STORM-2011: Group member lists not loading properly

---
 indra/newview/llpanelgroupgeneral.cpp | 35 +++++++++++++++++++++++++----------
 indra/newview/llpanelgroupgeneral.h   |  5 +++--
 indra/newview/llpanelgrouproles.cpp   | 35 +++++++++++++++++++++++++----------
 indra/newview/llpanelgrouproles.h     |  5 +++--
 4 files changed, 56 insertions(+), 24 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llpanelgroupgeneral.cpp b/indra/newview/llpanelgroupgeneral.cpp
index 0cd93b330a..6ba7d4f39d 100755
--- a/indra/newview/llpanelgroupgeneral.cpp
+++ b/indra/newview/llpanelgroupgeneral.cpp
@@ -79,18 +79,21 @@ LLPanelGroupGeneral::LLPanelGroupGeneral()
 	mCtrlReceiveNotices(NULL),
 	mCtrlListGroup(NULL),
 	mActiveTitleLabel(NULL),
-	mComboActiveTitle(NULL),
-	mAvatarNameCacheConnection()
+	mComboActiveTitle(NULL)
 {
 
 }
 
 LLPanelGroupGeneral::~LLPanelGroupGeneral()
 {
-	if (mAvatarNameCacheConnection.connected())
+	for (avatar_name_cache_connection_map_t::iterator it = mAvatarNameCacheConnections.begin(); it != mAvatarNameCacheConnections.end(); ++it)
 	{
-		mAvatarNameCacheConnection.disconnect();
+		if (it->second.connected())
+		{
+			it->second.disconnect();
+		}
 	}
+	mAvatarNameCacheConnections.clear();
 }
 
 BOOL LLPanelGroupGeneral::postBuild()
@@ -732,12 +735,16 @@ void LLPanelGroupGeneral::updateMembers()
 		else
 		{
 			// If name is not cached, onNameCache() should be called when it is cached and add this member to list.
-			// *TODO : Use a callback per member, not for the panel group.
-			if (mAvatarNameCacheConnection.connected())
+			avatar_name_cache_connection_map_t::iterator it = mAvatarNameCacheConnections.find(mMemberProgress->first);
+			if (it != mAvatarNameCacheConnections.end())
 			{
-				mAvatarNameCacheConnection.disconnect();
+				if (it->second.connected())
+				{
+					it->second.disconnect();
+				}
+				mAvatarNameCacheConnections.erase(it);
 			}
-			mAvatarNameCacheConnection = LLAvatarNameCache::get(mMemberProgress->first, boost::bind(&LLPanelGroupGeneral::onNameCache, this, gdatap->getMemberVersion(), member, _2));
+			mAvatarNameCacheConnections[mMemberProgress->first] = LLAvatarNameCache::get(mMemberProgress->first, boost::bind(&LLPanelGroupGeneral::onNameCache, this, gdatap->getMemberVersion(), member, _2, _1));
 		}
 	}
 
@@ -775,9 +782,17 @@ void LLPanelGroupGeneral::addMember(LLGroupMemberData* member)
 	}
 }
 
-void LLPanelGroupGeneral::onNameCache(const LLUUID& update_id, LLGroupMemberData* member, const LLAvatarName& av_name)
+void LLPanelGroupGeneral::onNameCache(const LLUUID& update_id, LLGroupMemberData* member, const LLAvatarName& av_name, const LLUUID& av_id)
 {
-	mAvatarNameCacheConnection.disconnect();
+	avatar_name_cache_connection_map_t::iterator it = mAvatarNameCacheConnections.find(av_id);
+	if (it != mAvatarNameCacheConnections.end())
+	{
+		if (it->second.connected())
+		{
+			it->second.disconnect();
+		}
+		mAvatarNameCacheConnections.erase(it);
+	}
 
 	LLGroupMgrGroupData* gdatap = LLGroupMgr::getInstance()->getGroupData(mGroupID);
 
diff --git a/indra/newview/llpanelgroupgeneral.h b/indra/newview/llpanelgroupgeneral.h
index b7f4a01139..a019715bfa 100755
--- a/indra/newview/llpanelgroupgeneral.h
+++ b/indra/newview/llpanelgroupgeneral.h
@@ -63,7 +63,7 @@ public:
 
 	virtual void setupCtrls	(LLPanel* parent);
 
-	void onNameCache(const LLUUID& update_id, LLGroupMemberData* member, const LLAvatarName& av_name);
+	void onNameCache(const LLUUID& update_id, LLGroupMemberData* member, const LLAvatarName& av_name, const LLUUID& av_id);
 private:
 	void	reset();
 
@@ -111,7 +111,8 @@ private:
 	LLComboBox		*mComboMature;
 
 	LLGroupMgrGroupData::member_list_t::iterator mMemberProgress;
-	boost::signals2::connection mAvatarNameCacheConnection;
+	typedef std::map<LLUUID, boost::signals2::connection> avatar_name_cache_connection_map_t;
+	avatar_name_cache_connection_map_t mAvatarNameCacheConnections;
 };
 
 #endif
diff --git a/indra/newview/llpanelgrouproles.cpp b/indra/newview/llpanelgrouproles.cpp
index fdcd1f5ebb..94998f3c52 100755
--- a/indra/newview/llpanelgrouproles.cpp
+++ b/indra/newview/llpanelgrouproles.cpp
@@ -743,17 +743,20 @@ LLPanelGroupMembersSubTab::LLPanelGroupMembersSubTab()
 	mChanged(FALSE),
 	mPendingMemberUpdate(FALSE),
 	mHasMatch(FALSE),
-	mNumOwnerAdditions(0),
-	mAvatarNameCacheConnection()
+	mNumOwnerAdditions(0)
 {
 }
 
 LLPanelGroupMembersSubTab::~LLPanelGroupMembersSubTab()
 {
-	if (mAvatarNameCacheConnection.connected())
+	for (avatar_name_cache_connection_map_t::iterator it = mAvatarNameCacheConnections.begin(); it != mAvatarNameCacheConnections.end(); ++it)
 	{
-		mAvatarNameCacheConnection.disconnect();
+		if (it->second.connected())
+		{
+			it->second.disconnect();
+		}
 	}
+	mAvatarNameCacheConnections.clear();
 	if (mMembersList)
 	{
 		gSavedSettings.setString("GroupMembersSortOrder", mMembersList->getSortColumnName());
@@ -1641,9 +1644,17 @@ void LLPanelGroupMembersSubTab::addMemberToList(LLGroupMemberData* data)
 	mHasMatch = TRUE;
 }
 
-void LLPanelGroupMembersSubTab::onNameCache(const LLUUID& update_id, LLGroupMemberData* member, const LLAvatarName& av_name)
+void LLPanelGroupMembersSubTab::onNameCache(const LLUUID& update_id, LLGroupMemberData* member, const LLAvatarName& av_name, const LLUUID& av_id)
 {
-	mAvatarNameCacheConnection.disconnect();
+	avatar_name_cache_connection_map_t::iterator it = mAvatarNameCacheConnections.find(av_id);
+	if (it != mAvatarNameCacheConnections.end())
+	{
+		if (it->second.connected())
+		{
+			it->second.disconnect();
+		}
+		mAvatarNameCacheConnections.erase(it);
+	}
 
 	LLGroupMgrGroupData* gdatap = LLGroupMgr::getInstance()->getGroupData(mGroupID);
 	if (!gdatap
@@ -1716,12 +1727,16 @@ void LLPanelGroupMembersSubTab::updateMembers()
 		else
 		{
 			// If name is not cached, onNameCache() should be called when it is cached and add this member to list.
-			// *TODO : Add one callback per fetched avatar name
-			if (mAvatarNameCacheConnection.connected())
+			avatar_name_cache_connection_map_t::iterator it = mAvatarNameCacheConnections.find(mMemberProgress->first);
+			if (it != mAvatarNameCacheConnections.end())
 			{
-				mAvatarNameCacheConnection.disconnect();
+				if (it->second.connected())
+				{
+					it->second.disconnect();
+				}
+				mAvatarNameCacheConnections.erase(it);
 			}
-			mAvatarNameCacheConnection = LLAvatarNameCache::get(mMemberProgress->first, boost::bind(&LLPanelGroupMembersSubTab::onNameCache, this, gdatap->getMemberVersion(), mMemberProgress->second, _2));
+			mAvatarNameCacheConnections[mMemberProgress->first] = LLAvatarNameCache::get(mMemberProgress->first, boost::bind(&LLPanelGroupMembersSubTab::onNameCache, this, gdatap->getMemberVersion(), mMemberProgress->second, _2, _1));
 		}
 	}
 
diff --git a/indra/newview/llpanelgrouproles.h b/indra/newview/llpanelgrouproles.h
index 0cf272f3ee..baa2d40c7e 100755
--- a/indra/newview/llpanelgrouproles.h
+++ b/indra/newview/llpanelgrouproles.h
@@ -189,7 +189,7 @@ public:
 	virtual void setGroupID(const LLUUID& id);
 
 	void addMemberToList(LLGroupMemberData* data);
-	void onNameCache(const LLUUID& update_id, LLGroupMemberData* member, const LLAvatarName& av_name);
+	void onNameCache(const LLUUID& update_id, LLGroupMemberData* member, const LLAvatarName& av_name, const LLUUID& av_id);
 
 protected:
 	typedef std::map<LLUUID, LLRoleMemberChangeType> role_change_data_map_t;
@@ -215,7 +215,8 @@ protected:
 	U32 mNumOwnerAdditions;
 
 	LLGroupMgrGroupData::member_list_t::iterator mMemberProgress;
-	boost::signals2::connection mAvatarNameCacheConnection;
+	typedef std::map<LLUUID, boost::signals2::connection> avatar_name_cache_connection_map_t;
+	avatar_name_cache_connection_map_t mAvatarNameCacheConnections;
 };
 
 class LLPanelGroupRolesSubTab : public LLPanelGroupSubTab
-- 
cgit v1.2.3


From 48dbcd1d431b4d50a9eab5be0577411470221cde Mon Sep 17 00:00:00 2001
From: Oz Linden <oz@lindenlab.com>
Date: Wed, 29 Jan 2014 18:16:04 -0500
Subject: STORM-2010: fix to AutoAcceptNewInventory

---
 indra/newview/llviewermessage.cpp | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp
index 3574d37adf..cd0d56152e 100755
--- a/indra/newview/llviewermessage.cpp
+++ b/indra/newview/llviewermessage.cpp
@@ -1875,6 +1875,7 @@ void inventory_offer_handler(LLOfferInfo* info)
 		return;
 	}
 
+	bool bAutoAccept(false);
 	// Avoid the Accept/Discard dialog if the user so desires. JC
 	if (gSavedSettings.getBOOL("AutoAcceptNewInventory")
 		&& (info->mType == LLAssetType::AT_NOTECARD
@@ -1883,8 +1884,7 @@ void inventory_offer_handler(LLOfferInfo* info)
 	{
 		// For certain types, just accept the items into the inventory,
 		// and possibly open them on receipt depending upon "ShowNewInventory".
-		info->forceResponse(IOR_ACCEPT);
-		return;
+		bAutoAccept = true;
 	}
 
 	// Strip any SLURL from the message display. (DEV-2754)
@@ -1952,7 +1952,7 @@ void inventory_offer_handler(LLOfferInfo* info)
 	LLNotification::Params p;
 
 	// Object -> Agent Inventory Offer
-	if (info->mFromObject)
+	if (info->mFromObject && !bAutoAccept)
 	{
 		// Inventory Slurls don't currently work for non agent transfers, so only display the object name.
 		args["ITEM_SLURL"] = msg;
@@ -1998,11 +1998,12 @@ void inventory_offer_handler(LLOfferInfo* info)
             send_do_not_disturb_message(gMessageSystem, info->mFromID);
         }
 
-		// Inform user that there is a script floater via toast system
+		if( !bAutoAccept ) // if we auto accept, do not pester the user
 		{
+			// Inform user that there is a script floater via toast system
 			payload["give_inventory_notification"] = TRUE;
-		    p.payload = payload;
-		    LLPostponedNotification::add<LLPostponedOfferNotification>(p, info->mFromID, false);
+			p.payload = payload;
+			LLPostponedNotification::add<LLPostponedOfferNotification>(p, info->mFromID, false);
 		}
 	}
 
-- 
cgit v1.2.3


From 861d68e27d0c973179618b41903d164cfbc96f94 Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Thu, 30 Jan 2014 12:58:28 +0000
Subject: Moved fetchKeywordsFileResponder class to end of file, so that
 LLSyntaxIdLSL is declared ahead of it for friend status.

---
 indra/newview/llsyntaxid.h | 57 +++++++++++++++++++++++++---------------------
 1 file changed, 31 insertions(+), 26 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llsyntaxid.h b/indra/newview/llsyntaxid.h
index b968dd233d..824454f9a1 100644
--- a/indra/newview/llsyntaxid.h
+++ b/indra/newview/llsyntaxid.h
@@ -37,32 +37,6 @@
 #include "llhttpclient.h"
 #include "llviewerregion.h"
 
-/**
- * @file  llsyntaxid.h
- * @brief Handles responses for the LSLSyntax capability's get call.
- */
-class fetchKeywordsFileResponder : public LLHTTPClient::Responder
-{
-public:
-	std::string	mFileSpec;
-
-	/**
-	 * @brief fetchKeywordsFileResponder
-	 * @param filespec	File path and name of where to save the returned data
-	 */
-	fetchKeywordsFileResponder(std::string filespec);
-
-	void errorWithContent(U32 status,
-						const std::string& reason,
-						const LLSD& content);
-
-	/**
-	 * @brief Saves the returned file to the location provided at instantiation.
-	 * @param content_ref	The LSL syntax file for the sim.
-	 */
-	void result(const LLSD& content_ref);
-};
-
 
 /**
  * @file llsyntaxid.h
@@ -70,6 +44,7 @@ public:
  */
 class LLSyntaxIdLSL
 {
+friend class fetchKeywordsFileResponder;
 public:
 
 
@@ -90,6 +65,7 @@ private:
 	LLUUID			mSyntaxIdNew;
 
 	static LLSD		sKeywordsXml;
+	static bool		sLoaded;
 
 
 public:
@@ -103,7 +79,9 @@ public:
 	LLUUID			getSyntaxId()			const { return mSyntaxIdCurrent; }
 
 	void			initialise();
+	bool			isLoaded() { return sLoaded; }
 
+	static bool		isSupportedVersion(const LLSD& content);
 	static void		setKeywordsXml(const LLSD& content) { sKeywordsXml = content; }
 
 
@@ -119,3 +97,30 @@ protected:
 	void			setFileNameNew(std::string name) { mFileNameNew = name; }
 	void			setSimulatorFeatureName(const std::string& name) { mSimulatorFeature = name; }
 };
+
+
+/**
+ * @file  llsyntaxid.h
+ * @brief Handles responses for the LSLSyntax capability's get call. Is a friend of LLSyntaxIdLSL
+ */
+class fetchKeywordsFileResponder : public LLHTTPClient::Responder
+{
+public:
+	std::string	mFileSpec;
+
+	/**
+	 * @brief fetchKeywordsFileResponder
+	 * @param filespec	File path and name of where to save the returned data
+	 */
+	fetchKeywordsFileResponder(std::string filespec);
+
+	void errorWithContent(U32 status,
+						const std::string& reason,
+						const LLSD& content);
+
+	/**
+	 * @brief Saves the returned file to the location provided at instantiation.
+	 * @param content_ref	The LSL syntax file for the sim.
+	 */
+	void result(const LLSD& content_ref);
+};
-- 
cgit v1.2.3


From f14521e1d424425e2684467a829be38740332676 Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Thu, 30 Jan 2014 12:59:24 +0000
Subject: strom-1832 Adding checks for validity and version when downloading
 XML

---
 indra/newview/llsyntaxid.cpp | 84 +++++++++++++++++++++++++++++++++++++-------
 1 file changed, 71 insertions(+), 13 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llsyntaxid.cpp b/indra/newview/llsyntaxid.cpp
index 2784939199..d54cc06490 100644
--- a/indra/newview/llsyntaxid.cpp
+++ b/indra/newview/llsyntaxid.cpp
@@ -34,7 +34,6 @@
 #include "llsdserialize.h"
 #include "llsyntaxid.h"
 
-
 //-----------------------------------------------------------------------------
 // fetchKeywordsFileResponder
 //-----------------------------------------------------------------------------
@@ -58,21 +57,44 @@ void fetchKeywordsFileResponder::errorWithContent(U32 status,
 
 void fetchKeywordsFileResponder::result(const LLSD& content_ref)
 {
-	// TODO check for llsd-lsl-syntax-version key and return if not present or not 1.
+	// Continue only if a valid LLSD object was returned.
+	if (content_ref.isMap())
+	{
+		LL_DEBUGS("SyntaxLSL")
+				<< "content_ref isMap so assuming valid XML." << LL_ENDL;
 
-	LLSyntaxIdLSL::setKeywordsXml(content_ref);
+		if (LLSyntaxIdLSL::isSupportedVersion(content_ref))
+		{
+			LL_INFOS("SyntaxLSL")
+					<< "Is a supported verson of syntax file." << LL_ENDL;
 
-	std::stringstream str;
-	LLSDSerialize::toPrettyXML(content_ref, str);
-	const std::string xml = str.str();
+			LLSyntaxIdLSL::setKeywordsXml(content_ref);
+			LLSyntaxIdLSL::sLoaded = true;
 
-	// save the str to disc, usually to the cache.
-	llofstream file(mFileSpec, std::ios_base::out);
-	file.write(xml.c_str(), str.str().size());
-	file.close();
+			std::stringstream str;
+			LLSDSerialize::toPrettyXML(content_ref, str);
+			const std::string xml = str.str();
 
-	LL_INFOS("SyntaxLSL")
-		<< "Syntax file received, saving as: '" << mFileSpec << "'" << LL_ENDL;
+			// save the str to disc, usually to the cache.
+			llofstream file(mFileSpec, std::ios_base::out);
+			file.write(xml.c_str(), str.str().size());
+			file.close();
+
+			LL_INFOS("SyntaxLSL")
+					<< "Syntax file received, saving as: '" << mFileSpec << "'" << LL_ENDL;
+		}
+		else
+		{
+			LL_WARNS("SyntaxLSL")
+					<< "Unknown or unsupported version of syntax file." << LL_ENDL;
+		}
+	}
+	else
+	{
+		LLSyntaxIdLSL::sLoaded = false;
+		LL_ERRS("SyntaxLSL")
+				<< "Syntax file '" << mFileSpec << "' contains invalid LLSD!" << LL_ENDL;
+	}
 }
 
 
@@ -95,6 +117,7 @@ LLSyntaxIdLSL::LLSyntaxIdLSL() :
 }
 
 LLSD LLSyntaxIdLSL::sKeywordsXml;
+bool LLSyntaxIdLSL::sLoaded;
 
 std::string LLSyntaxIdLSL::buildFileNameNew()
 {
@@ -179,6 +202,7 @@ void LLSyntaxIdLSL::fetchKeywordsFile()
 {
 	if ( !mCapabilityURL.empty() )
 	{
+		//LLSyntaxIdLSL::sLoaded = false;
 		LLHTTPClient::get(mCapabilityURL,
 						  new fetchKeywordsFileResponder(mFullFileSpec),
 						  LLSD(), 30.f
@@ -195,6 +219,9 @@ void LLSyntaxIdLSL::fetchKeywordsFile()
 	}
 }
 
+//-----------------------------------------------------------------------------
+// initialise
+//-----------------------------------------------------------------------------
 void LLSyntaxIdLSL::initialise()
 {
 	mFileNameNew = mFileNameCurrent;
@@ -211,10 +238,10 @@ void LLSyntaxIdLSL::initialise()
 		{
 			if ( !gDirUtilp->fileExists(mFullFileSpec) )
 			{ // Does not exist, so fetch it from the capability
-				fetchKeywordsFile();
 				LL_INFOS("SyntaxLSL")
 						<< "File is not cached, we will try to download it!"
 						<< LL_ENDL;
+				fetchKeywordsFile();
 			}
 			else
 			{
@@ -244,6 +271,37 @@ void LLSyntaxIdLSL::initialise()
 	mSyntaxIdCurrent = mSyntaxIdNew;
 }
 
+//-----------------------------------------------------------------------------
+// isSupportedVersion
+//-----------------------------------------------------------------------------
+bool LLSyntaxIdLSL::isSupportedVersion(const LLSD& content)
+{
+	bool isValid = false;
+	/*
+	 * If the schema used to store lsl keywords and hints changes, this value is incremented
+	 * Note that it should _not_ be changed if the keywords and hints _content_ changes.
+	 */
+	const U32         LLSD_SYNTAX_LSL_VERSION_EXPECTED = 2;
+	const std::string LLSD_SYNTAX_LSL_VERSION_KEY("llsd-lsl-syntax-version");
+
+	if (content.has(LLSD_SYNTAX_LSL_VERSION_KEY))
+	{
+		LL_INFOS("SyntaxLSL")
+				<< "Syntax file version: " << content[LLSD_SYNTAX_LSL_VERSION_KEY].asString() << LL_ENDL;
+
+		if (content[LLSD_SYNTAX_LSL_VERSION_KEY].asInteger() == LLSD_SYNTAX_LSL_VERSION_EXPECTED)
+		{
+			isValid = true;
+		}
+	}
+	else
+	{
+		LL_WARNS("SyntaxLSL") << "No version key available!" << LL_ENDL;
+	}
+
+	return isValid;
+}
+
 //-----------------------------------------------------------------------------
 // loadDefaultKeywordsIntoLLSD()
 //-----------------------------------------------------------------------------
-- 
cgit v1.2.3


From 4bcb67c704098d30f0969cc4791018ce136e49e7 Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Thu, 30 Jan 2014 13:01:19 +0000
Subject: Making initialisation of mKeywords conditional on mSyntaxIdLSL having
 loaded an XML file.

---
 indra/newview/llpreviewscript.cpp | 53 +++++++++++++++++++++------------------
 1 file changed, 29 insertions(+), 24 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp
index aedf687f0d..979074b453 100755
--- a/indra/newview/llpreviewscript.cpp
+++ b/indra/newview/llpreviewscript.cpp
@@ -395,7 +395,7 @@ BOOL LLScriptEdCore::postBuild()
 {
 	mErrorList = getChild<LLScrollListCtrl>("lsl errors");
 
-	mFunctions = getChild<LLComboBox>( "Insert...");
+	mFunctions = getChild<LLComboBox>("Insert...");
 
 	childSetCommitCallback("Insert...", &LLScriptEdCore::onBtnInsertFunction, this);
 
@@ -419,37 +419,42 @@ void LLScriptEdCore::onRegionChangeInitialiseKeywords()
 {
 	mEditor->mKeywords.clearLoaded();
 	mSyntaxIdLSL.initialise();
-	mEditor->mKeywords.initialise(mSyntaxIdLSL.getKeywordsXML());
 
-	mEditor->loadKeywords();
 
-	std::vector<std::string> primary_keywords;
-	std::vector<std::string> secondary_keywords;
-	LLKeywordToken *token;
-	LLKeywords::keyword_iterator_t token_it;
-	for (token_it = mEditor->keywordsBegin(); token_it != mEditor->keywordsEnd(); ++token_it)
+	if (mSyntaxIdLSL.isLoaded())
 	{
-		token = token_it->second;
-		if (token->getType() == LLKeywordToken::TT_FUNCTION)
+		mEditor->mKeywords.initialise(mSyntaxIdLSL.getKeywordsXML());
+
+		mEditor->loadKeywords();
+
+		std::vector<std::string> primary_keywords;
+		std::vector<std::string> secondary_keywords;
+		LLKeywordToken *token;
+		LLKeywords::keyword_iterator_t token_it;
+		for (token_it = mEditor->keywordsBegin(); token_it != mEditor->keywordsEnd(); ++token_it)
 		{
-			primary_keywords.push_back( wstring_to_utf8str(token->getToken()) );
+			token = token_it->second;
+			if (token->getType() == LLKeywordToken::TT_FUNCTION)
+			{
+				primary_keywords.push_back( wstring_to_utf8str(token->getToken()) );
+			}
+			else
+			{
+				secondary_keywords.push_back( wstring_to_utf8str(token->getToken()) );
+			}
 		}
-		else
+
+		for (std::vector<std::string>::const_iterator iter= primary_keywords.begin();
+				iter!= primary_keywords.end(); ++iter)
 		{
-			secondary_keywords.push_back( wstring_to_utf8str(token->getToken()) );
+			mFunctions->add(*iter);
 		}
-	}
 
-	for (std::vector<std::string>::const_iterator iter= primary_keywords.begin();
-			iter!= primary_keywords.end(); ++iter)
-	{
-		mFunctions->add(*iter);
-	}
-
-	for (std::vector<std::string>::const_iterator iter= secondary_keywords.begin();
-			iter!= secondary_keywords.end(); ++iter)
-	{
-		mFunctions->add(*iter);
+		for (std::vector<std::string>::const_iterator iter= secondary_keywords.begin();
+				iter!= secondary_keywords.end(); ++iter)
+		{
+			mFunctions->add(*iter);
+		}
 	}
 }
 
-- 
cgit v1.2.3


From 93322ff17609ff4bb4f8f87f0b53783b68515279 Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Thu, 30 Jan 2014 14:03:34 +0000
Subject: Removing duplication of messages

---
 indra/newview/llsyntaxid.cpp | 13 +++++++------
 indra/newview/llsyntaxid.h   |  2 +-
 2 files changed, 8 insertions(+), 7 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llsyntaxid.cpp b/indra/newview/llsyntaxid.cpp
index d54cc06490..f868d82f11 100644
--- a/indra/newview/llsyntaxid.cpp
+++ b/indra/newview/llsyntaxid.cpp
@@ -248,12 +248,12 @@ void LLSyntaxIdLSL::initialise()
 				LL_INFOS("SyntaxLSL")
 						<< "File is cached, no need to download!"
 						<< LL_ENDL;
-				loadKeywordsIntoLLSD();
+				sLoaded = loadKeywordsIntoLLSD();
 			}
 		}
 		else
 		{ // Need to open the default
-			loadDefaultKeywordsIntoLLSD("LSLSyntaxId is null so we will use the default file!");
+			loadDefaultKeywordsIntoLLSD();
 		}
 	}
 	else if (sKeywordsXml.isDefined())
@@ -264,7 +264,7 @@ void LLSyntaxIdLSL::initialise()
 	}
 	else
 	{ // Need to open the default
-		loadDefaultKeywordsIntoLLSD("LSLSyntaxId is null so we will use the default file!");
+		loadDefaultKeywordsIntoLLSD();
 	}
 
 	mFileNameCurrent = mFileNameNew;
@@ -305,12 +305,13 @@ bool LLSyntaxIdLSL::isSupportedVersion(const LLSD& content)
 //-----------------------------------------------------------------------------
 // loadDefaultKeywordsIntoLLSD()
 //-----------------------------------------------------------------------------
-void LLSyntaxIdLSL::loadDefaultKeywordsIntoLLSD(const std::string message)
+void LLSyntaxIdLSL::loadDefaultKeywordsIntoLLSD()
 {
-	LL_INFOS("SyntaxLSL") << message << LL_ENDL;
+	LL_INFOS("SyntaxLSL")
+			<< "LSLSyntaxId is null so we will use the default file!" << LL_ENDL;
 	mSyntaxIdNew = LLUUID();
 	buildFullFileSpec();
-	loadKeywordsIntoLLSD();
+	sLoaded = loadKeywordsIntoLLSD();
 }
 
 //-----------------------------------------------------------------------------
diff --git a/indra/newview/llsyntaxid.h b/indra/newview/llsyntaxid.h
index 824454f9a1..78ea98e3cf 100644
--- a/indra/newview/llsyntaxid.h
+++ b/indra/newview/llsyntaxid.h
@@ -89,7 +89,7 @@ protected:
 	std::string		buildFileNameNew();
 	std::string		buildFullFileSpec();
 	void			fetchKeywordsFile();
-	void			loadDefaultKeywordsIntoLLSD(const std::string message);
+	void			loadDefaultKeywordsIntoLLSD();
 	bool			loadKeywordsIntoLLSD();
 	void			setSyntaxId(LLUUID SyntaxId) { mSyntaxIdCurrent = SyntaxId; }
 	void			setFileNameCurrent(std::string& name) { mFileNameCurrent = name; }
-- 
cgit v1.2.3


From 93022725ea11dcae531440a3cce85b933a404c46 Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Thu, 30 Jan 2014 15:32:04 +0000
Subject: minor white-space fixes

---
 indra/llui/llkeywords.cpp | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

(limited to 'indra')

diff --git a/indra/llui/llkeywords.cpp b/indra/llui/llkeywords.cpp
index 34dff22729..fd4ef33f59 100755
--- a/indra/llui/llkeywords.cpp
+++ b/indra/llui/llkeywords.cpp
@@ -76,8 +76,6 @@ LLKeywords::~LLKeywords()
 	std::for_each(mDelimiterTokenList.begin(), mDelimiterTokenList.end(), DeletePointer());
 }
 
-
-
 void LLKeywords::addColorGroup(const std::string key_in, const LLColor4 color)
 {
 	WStringMapIndex key ( utf8str_to_wstring(key_in) );
@@ -94,7 +92,7 @@ void LLKeywords::addToken(LLKeywordToken::TOKEN_TYPE type,
 	std::string tip_text = tool_tip_in;
 	LLStringUtil::replaceString(tip_text, "\\n", "\n" );
 	LLStringUtil::replaceString(tip_text, "\t", " " );
-	if (tip_text =="")
+	if (tip_text == "")
 	{
 		tip_text = "[no info]";
 	}
-- 
cgit v1.2.3


From 2dc2ce995983bfa87527b4ca94d4f13eb94b5c80 Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Fri, 31 Jan 2014 11:44:54 +0000
Subject: strom-1831 Cleaning up a number of issues raised.

Adding some constants and member variables.
Moving arguments into constructor signature and adding new signature.
Breaking saving of file into its own method to separate it from checking the LLSD.
Cleaning up severla of the logging messages.
Differentiating between successful and failed loads/fetches using sLoaded/sLoadFail.
---
 indra/newview/llsyntaxid.cpp | 183 ++++++++++++++++++++++++++-----------------
 indra/newview/llsyntaxid.h   |  28 +++++--
 2 files changed, 135 insertions(+), 76 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llsyntaxid.cpp b/indra/newview/llsyntaxid.cpp
index f868d82f11..886dcfaac0 100644
--- a/indra/newview/llsyntaxid.cpp
+++ b/indra/newview/llsyntaxid.cpp
@@ -49,6 +49,7 @@ void fetchKeywordsFileResponder::errorWithContent(U32 status,
 												  const std::string& reason,
 												  const LLSD& content)
 {
+	LLSyntaxIdLSL::sLoadFailed = true;
 	LL_ERRS("SyntaxLSL")
 			<< "fetchKeywordsFileResponder error [status:"
 			<< status << "]: " << content
@@ -70,21 +71,14 @@ void fetchKeywordsFileResponder::result(const LLSD& content_ref)
 
 			LLSyntaxIdLSL::setKeywordsXml(content_ref);
 			LLSyntaxIdLSL::sLoaded = true;
+			LLSyntaxIdLSL::sLoadFailed = false;
 
-			std::stringstream str;
-			LLSDSerialize::toPrettyXML(content_ref, str);
-			const std::string xml = str.str();
-
-			// save the str to disc, usually to the cache.
-			llofstream file(mFileSpec, std::ios_base::out);
-			file.write(xml.c_str(), str.str().size());
-			file.close();
-
-			LL_INFOS("SyntaxLSL")
-					<< "Syntax file received, saving as: '" << mFileSpec << "'" << LL_ENDL;
+			cacheFile(content_ref);
 		}
 		else
 		{
+			LLSyntaxIdLSL::sLoaded = false;
+			LLSyntaxIdLSL::sLoadFailed = true;
 			LL_WARNS("SyntaxLSL")
 					<< "Unknown or unsupported version of syntax file." << LL_ENDL;
 		}
@@ -92,32 +86,59 @@ void fetchKeywordsFileResponder::result(const LLSD& content_ref)
 	else
 	{
 		LLSyntaxIdLSL::sLoaded = false;
+		LLSyntaxIdLSL::sLoadFailed = true;
 		LL_ERRS("SyntaxLSL")
 				<< "Syntax file '" << mFileSpec << "' contains invalid LLSD!" << LL_ENDL;
 	}
 }
 
+void fetchKeywordsFileResponder::cacheFile(const LLSD& content_ref)
+{
+	std::stringstream str;
+	LLSDSerialize::toPrettyXML(content_ref, str);
+	const std::string xml = str.str();
+
+	// save the str to disc, usually to the cache.
+	llofstream file(mFileSpec, std::ios_base::out);
+	file.write(xml.c_str(), str.str().size());
+	file.close();
+
+	LL_INFOS("SyntaxLSL")
+			<< "Syntax file received, saving as: '" << mFileSpec << "'" << LL_ENDL;
+}
+
 
 //-----------------------------------------------------------------------------
 // LLSyntaxIdLSL
 //-----------------------------------------------------------------------------
+const std::string LLSyntaxIdLSL::CAPABILITY_NAME = "LSLSyntax";
+const std::string LLSyntaxIdLSL::FILENAME_DEFAULT = "keywords_lsl_default.xml";
+const std::string LLSyntaxIdLSL::SIMULATOR_FEATURE ="LSLSyntaxId";
+
+LLSD LLSyntaxIdLSL::sKeywordsXml;
+bool LLSyntaxIdLSL::sLoaded;
+bool LLSyntaxIdLSL::sLoadFailed;
+bool LLSyntaxIdLSL::sVersionChanged;
+
 /**
  * @brief LLSyntaxIdLSL constructor
  */
-LLSyntaxIdLSL::LLSyntaxIdLSL() :
+LLSyntaxIdLSL::LLSyntaxIdLSL(std::string filenameDefault, std::string simulatorFeature, std::string capabilityName) :
 	// Move these to signature?
-	mFileNameDefault("keywords_lsl_default.xml"),
-	mSimulatorFeature("LSLSyntaxId"),
-	mCapabilityName("LSLSyntax"),
 	mCapabilityURL(""),
 	mFilePath(LL_PATH_APP_SETTINGS)
 {
+	mCapabilityName = capabilityName;
+	mFileNameCurrent = filenameDefault;
+	mFileNameDefault = filenameDefault;
+	mSimulatorFeature = simulatorFeature;
 	mSyntaxIdCurrent = LLUUID();
-	mFileNameCurrent = mFileNameDefault;
 }
 
-LLSD LLSyntaxIdLSL::sKeywordsXml;
-bool LLSyntaxIdLSL::sLoaded;
+LLSyntaxIdLSL::LLSyntaxIdLSL()
+{
+	LLSyntaxIdLSL(LLSyntaxIdLSL::FILENAME_DEFAULT, LLSyntaxIdLSL::SIMULATOR_FEATURE, LLSyntaxIdLSL::CAPABILITY_NAME);
+}
 
 std::string LLSyntaxIdLSL::buildFileNameNew()
 {
@@ -156,35 +177,42 @@ bool LLSyntaxIdLSL::checkSyntaxIdChanged()
 			std::string message;
 			region->getSimulatorFeatures(simFeatures);
 
+			LL_INFOS("SyntaxLSL") << "Region is '" << region->getName() << "' ..." << LL_ENDL;
+
 			// get and check the hash
 			if (simFeatures.has("LSLSyntaxId"))
 			{
 				mSyntaxIdNew = simFeatures["LSLSyntaxId"].asUUID();
-				mCapabilityURL = region->getCapability(mCapabilityName);
 				if (mSyntaxIdCurrent != mSyntaxIdNew)
 				{
-					message = "' it has LSLSyntaxId capability, and the new hash is '"
-							+ mSyntaxIdNew.asString() + "'";
+					LL_INFOS("SyntaxLSL")
+							<< "It has LSLSyntaxId capability, and the new hash is '"
+							<< mSyntaxIdNew.asString() << "'" << LL_ENDL;
 
 					changed = true;
 				}
 				else
 				{
-					message = "' it has the same LSLSyntaxId! Leaving hash as '"
-							+ mSyntaxIdCurrent.asString() + "'";
+					LL_INFOS("SyntaxLSL")
+							<< "It has the same LSLSyntaxId! Leaving hash as '"
+							<< mSyntaxIdCurrent.asString() << "'" << LL_ENDL;
 				}
 			}
 			else
 			{
 				if ( mSyntaxIdCurrent.isNull() )
 				{
-					message = " it does not have LSLSyntaxId capability, remaining with default keywords file!";
+					LL_INFOS("SyntaxLSL")
+							<< "It does not have LSLSyntaxId capability, remaining with default keywords file!"
+							<< LL_ENDL;
 				}
 				else
 				{
 					// The hash is set to NULL_KEY to indicate use of default keywords file
 					mSyntaxIdNew = LLUUID();
-					message = " it does not have LSLSyntaxId capability, using default keywords file!";
+					LL_INFOS("SyntaxLSL")
+							<< "It does not have LSLSyntaxId capability, using default keywords file!"
+							<< LL_ENDL;
 					changed = true;
 				}
 			}
@@ -192,31 +220,33 @@ bool LLSyntaxIdLSL::checkSyntaxIdChanged()
 				<< "Region is '" << region->getName() << message << LL_ENDL;
 		}
 	}
+	sVersionChanged = changed;
 	return changed;
 }
 
+/**
+ * @brief LLSyntaxIdLSL::fetching
+ * If the XML has not loaded yet and it hasn't failed, then we're still fetching it.
+ * @return bool Whether the file fetch is still in process.
+ */
+bool LLSyntaxIdLSL::fetching()
+{
+	return (!sLoaded && !sLoadFailed);
+}
+
 //-----------------------------------------------------------------------------
 // fetchKeywordsFile
 //-----------------------------------------------------------------------------
 void LLSyntaxIdLSL::fetchKeywordsFile()
 {
-	if ( !mCapabilityURL.empty() )
-	{
-		//LLSyntaxIdLSL::sLoaded = false;
-		LLHTTPClient::get(mCapabilityURL,
-						  new fetchKeywordsFileResponder(mFullFileSpec),
-						  LLSD(), 30.f
-						  );
-		LL_INFOS("SyntaxLSL")
-				<< "LSLSyntaxId capability URL is: " << mCapabilityURL
-				<< ". Filename to use is: '" << mFullFileSpec << "'."
-				<< LL_ENDL;
-	}
-	else
-	{
-		LL_ERRS("SyntaxLSL")
-				<< "LSLSyntaxId capability URL is empty!!" << LL_ENDL;
-	}
+	LLHTTPClient::get(mCapabilityURL,
+					  new fetchKeywordsFileResponder(mFullFileSpec),
+					  LLSD(), 30.f
+					  );
+	LL_INFOS("SyntaxLSL")
+			<< "LSLSyntaxId capability URL is: " << mCapabilityURL
+			<< ". Filename to use is: '" << mFullFileSpec << "'."
+			<< LL_ENDL;
 }
 
 //-----------------------------------------------------------------------------
@@ -228,33 +258,47 @@ void LLSyntaxIdLSL::initialise()
 	mSyntaxIdNew = mSyntaxIdCurrent;
 	if (checkSyntaxIdChanged())
 	{
-		LL_INFOS("SyntaxLSL")
-				<< "LSL version has changed, getting appropriate file."
-				<< LL_ENDL;
-
-		// Need a full spec regardless of file source, so build it now.
-		buildFullFileSpec();
-		if ( !mSyntaxIdNew.isNull() )
+		sKeywordsXml = LLSD();
+		sLoaded = sLoadFailed = false;
+		LLViewerRegion* region = gAgent.getRegion();
+		mCapabilityURL = region->getCapability(mCapabilityName);
+		if (!mCapabilityURL.empty())
 		{
-			if ( !gDirUtilp->fileExists(mFullFileSpec) )
-			{ // Does not exist, so fetch it from the capability
-				LL_INFOS("SyntaxLSL")
-						<< "File is not cached, we will try to download it!"
-						<< LL_ENDL;
-				fetchKeywordsFile();
+			LL_INFOS("SyntaxLSL")
+					<< "LSL version has changed, getting appropriate file."
+					<< LL_ENDL;
+
+			// Need a full spec regardless of file source, so build it now.
+			buildFullFileSpec();
+			if ( !mSyntaxIdNew.isNull() )
+			{
+				if ( !gDirUtilp->fileExists(mFullFileSpec) )
+				{ // Does not exist, so fetch it from the capability
+					LL_INFOS("SyntaxLSL")
+							<< "File is not cached, we will try to download it!"
+							<< LL_ENDL;
+					fetchKeywordsFile();
+				}
+				else
+				{
+					LL_INFOS("SyntaxLSL")
+							<< "File is cached, no need to download!"
+							<< LL_ENDL;
+					loadKeywordsIntoLLSD();
+				}
 			}
 			else
-			{
-				LL_INFOS("SyntaxLSL")
-						<< "File is cached, no need to download!"
-						<< LL_ENDL;
-				sLoaded = loadKeywordsIntoLLSD();
+			{ // Need to open the default
+				loadDefaultKeywordsIntoLLSD();
 			}
 		}
 		else
-		{ // Need to open the default
-			loadDefaultKeywordsIntoLLSD();
+		{
+			sLoadFailed = true;
+			LL_ERRS("SyntaxLSL")
+					<< "LSLSyntaxId capability URL is empty!!" << LL_ENDL;
 		}
+
 	}
 	else if (sKeywordsXml.isDefined())
 	{
@@ -311,7 +355,7 @@ void LLSyntaxIdLSL::loadDefaultKeywordsIntoLLSD()
 			<< "LSLSyntaxId is null so we will use the default file!" << LL_ENDL;
 	mSyntaxIdNew = LLUUID();
 	buildFullFileSpec();
-	sLoaded = loadKeywordsIntoLLSD();
+	loadKeywordsIntoLLSD();
 }
 
 //-----------------------------------------------------------------------------
@@ -320,23 +364,22 @@ void LLSyntaxIdLSL::loadDefaultKeywordsIntoLLSD()
 /**
  * @brief	Load xml serialised LLSD
  * @desc	Opens the specified filespec and attempts to deserialise the
- *			contained data to the specified LLSD object.
- * @return	Returns boolean true/false indicating success or failure.
+ *			contained data to the specified LLSD object. indicate success/failure with
+ *			sLoaded/sLoadFailed members.
  */
-bool LLSyntaxIdLSL::loadKeywordsIntoLLSD()
+void LLSyntaxIdLSL::loadKeywordsIntoLLSD()
 {
 	LL_INFOS("SyntaxLSL")
 			<< "Trying to open cached or default keyword file ;-)"
 			<< LL_ENDL;
 
-	bool loaded = false;
 	LLSD content;
 	llifstream file;
 	file.open(mFullFileSpec);
 	if (file.is_open())
 	{
-		loaded = (bool)LLSDSerialize::fromXML(content, file);
-		if (!loaded)
+		sLoaded = (bool)LLSDSerialize::fromXML(content, file);
+		if (!sLoaded)
 		{
 			LL_ERRS("SyntaxLSL") << "Unable to deserialise file: " << mFullFileSpec << LL_ENDL;
 
@@ -354,5 +397,5 @@ bool LLSyntaxIdLSL::loadKeywordsIntoLLSD()
 	{
 		LL_ERRS("SyntaxLSL") << "Unable to open file: " << mFullFileSpec << LL_ENDL;
 	}
-	return loaded;
+	sLoadFailed = !sLoaded;
 }
diff --git a/indra/newview/llsyntaxid.h b/indra/newview/llsyntaxid.h
index 78ea98e3cf..3c27a91ce4 100644
--- a/indra/newview/llsyntaxid.h
+++ b/indra/newview/llsyntaxid.h
@@ -47,9 +47,17 @@ class LLSyntaxIdLSL
 friend class fetchKeywordsFileResponder;
 public:
 
+static const std::string	CAPABILITY_NAME;
+static const std::string	FILENAME_DEFAULT;
+static const std::string	SIMULATOR_FEATURE;
 
 protected:
-	LLViewerRegion*	region;
+	//LLViewerRegion*	region;
+
+	static LLSD		sKeywordsXml;
+	static bool		sLoaded;
+	static bool		sLoadFailed;
+	static bool		sVersionChanged;
 
 
 private:
@@ -64,19 +72,19 @@ private:
 	LLUUID			mSyntaxIdCurrent;
 	LLUUID			mSyntaxIdNew;
 
-	static LLSD		sKeywordsXml;
-	static bool		sLoaded;
-
 
 public:
 	LLSyntaxIdLSL();
+	LLSyntaxIdLSL(std::string filenameDefault, std::string simulatorFeature, std::string capabilityName);
 
 	bool			checkSyntaxIdChanged();
+	bool			fetching();
 	std::string		getFileNameCurrent()	const { return mFileNameCurrent; }
 	ELLPath			getFilePath()			const { return mFilePath; }
 	std::string		getFileSpec()			const { return mFullFileSpec; }
 	LLSD			getKeywordsXML()		const { return sKeywordsXml; }
 	LLUUID			getSyntaxId()			const { return mSyntaxIdCurrent; }
+	bool			isDifferentVersion()	const { return sVersionChanged; }
 
 	void			initialise();
 	bool			isLoaded() { return sLoaded; }
@@ -90,7 +98,7 @@ protected:
 	std::string		buildFullFileSpec();
 	void			fetchKeywordsFile();
 	void			loadDefaultKeywordsIntoLLSD();
-	bool			loadKeywordsIntoLLSD();
+	void			loadKeywordsIntoLLSD();
 	void			setSyntaxId(LLUUID SyntaxId) { mSyntaxIdCurrent = SyntaxId; }
 	void			setFileNameCurrent(std::string& name) { mFileNameCurrent = name; }
 	void			setFileNameDefault(std::string& name) { mFileNameDefault = name; }
@@ -118,9 +126,17 @@ public:
 						const std::string& reason,
 						const LLSD& content);
 
+	/**
+	 * @brief Checks the returned LLSD for version and stores it in the LLSyntaxIdLSL object.
+	 * @param content_ref The returned LLSD.
+	 */
+	void result(const LLSD& content_ref);
+
 	/**
 	 * @brief Saves the returned file to the location provided at instantiation.
+	 *			Could be extended to manage cached entries.
 	 * @param content_ref	The LSL syntax file for the sim.
 	 */
-	void result(const LLSD& content_ref);
+	void cacheFile(const LLSD& content_ref);
+
 };
-- 
cgit v1.2.3


From 566b10e2250e484b2d3211565d387c3c73864e82 Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Wed, 5 Feb 2014 15:27:22 +0000
Subject: Cleaning up a little. Using assigned values for simFeature/Capability
 name instead of literal values.

---
 indra/newview/llsyntaxid.cpp | 34 ++++++++++++++++------------------
 indra/newview/llsyntaxid.h   |  4 ++--
 2 files changed, 18 insertions(+), 20 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llsyntaxid.cpp b/indra/newview/llsyntaxid.cpp
index 886dcfaac0..4d7cc550af 100644
--- a/indra/newview/llsyntaxid.cpp
+++ b/indra/newview/llsyntaxid.cpp
@@ -113,7 +113,7 @@ void fetchKeywordsFileResponder::cacheFile(const LLSD& content_ref)
 //-----------------------------------------------------------------------------
 const std::string LLSyntaxIdLSL::CAPABILITY_NAME = "LSLSyntax";
 const std::string LLSyntaxIdLSL::FILENAME_DEFAULT = "keywords_lsl_default.xml";
-const std::string LLSyntaxIdLSL::SIMULATOR_FEATURE ="LSLSyntaxId";
+const std::string LLSyntaxIdLSL::SIMULATOR_FEATURE = "LSLSyntaxId";
 
 LLSD LLSyntaxIdLSL::sKeywordsXml;
 bool LLSyntaxIdLSL::sLoaded;
@@ -123,21 +123,24 @@ bool LLSyntaxIdLSL::sVersionChanged;
 /**
  * @brief LLSyntaxIdLSL constructor
  */
-LLSyntaxIdLSL::LLSyntaxIdLSL(std::string filenameDefault, std::string simulatorFeature, std::string capabilityName) :
-	// Move these to signature?
-	mCapabilityURL(""),
+LLSyntaxIdLSL::LLSyntaxIdLSL(std::string filenameDefault, std::string simFeatureName, std::string capabilityName) :
 	mFilePath(LL_PATH_APP_SETTINGS)
 {
 	mCapabilityName = capabilityName;
 	mFileNameCurrent = filenameDefault;
 	mFileNameDefault = filenameDefault;
-	mSimulatorFeature = simulatorFeature;
+	mSimulatorFeature = simFeatureName;
 	mSyntaxIdCurrent = LLUUID();
 }
 
-LLSyntaxIdLSL::LLSyntaxIdLSL()
+LLSyntaxIdLSL::LLSyntaxIdLSL() :
+	mFilePath(LL_PATH_APP_SETTINGS)
 {
-	LLSyntaxIdLSL(LLSyntaxIdLSL::FILENAME_DEFAULT, LLSyntaxIdLSL::SIMULATOR_FEATURE, LLSyntaxIdLSL::CAPABILITY_NAME);
+	mCapabilityName = CAPABILITY_NAME;
+	mFileNameCurrent = FILENAME_DEFAULT;
+	mFileNameDefault = FILENAME_DEFAULT;
+	mSimulatorFeature = SIMULATOR_FEATURE;
+	mSyntaxIdCurrent = LLUUID();
 }
 
 std::string LLSyntaxIdLSL::buildFileNameNew()
@@ -166,7 +169,7 @@ bool LLSyntaxIdLSL::checkSyntaxIdChanged()
 	{
 		if (!region->capabilitiesReceived())
 		{   // Shouldn't be possible, but experience shows that it may be needed.
-			LL_WARNS("SyntaxLSL")
+			LL_ERRS("SyntaxLSL")
 				<< "Region '" << region->getName()
 				<< "' has not received capabilities yet! Cannot process SyntaxId."
 				<< LL_ENDL;
@@ -174,15 +177,14 @@ bool LLSyntaxIdLSL::checkSyntaxIdChanged()
 		else
 		{
 			LLSD simFeatures;
-			std::string message;
 			region->getSimulatorFeatures(simFeatures);
 
-			LL_INFOS("SyntaxLSL") << "Region is '" << region->getName() << "' ..." << LL_ENDL;
-
-			// get and check the hash
-			if (simFeatures.has("LSLSyntaxId"))
+			// Does the sim have the required feature
+			if (simFeatures.has(mSimulatorFeature))
 			{
-				mSyntaxIdNew = simFeatures["LSLSyntaxId"].asUUID();
+				// get and check the hash
+				mSyntaxIdNew = simFeatures[mSimulatorFeature].asUUID();
+				mCapabilityURL = region->getCapability(mCapabilityName);
 				if (mSyntaxIdCurrent != mSyntaxIdNew)
 				{
 					LL_INFOS("SyntaxLSL")
@@ -216,8 +218,6 @@ bool LLSyntaxIdLSL::checkSyntaxIdChanged()
 					changed = true;
 				}
 			}
-			LL_INFOS("SyntaxLSL")
-				<< "Region is '" << region->getName() << message << LL_ENDL;
 		}
 	}
 	sVersionChanged = changed;
@@ -260,8 +260,6 @@ void LLSyntaxIdLSL::initialise()
 	{
 		sKeywordsXml = LLSD();
 		sLoaded = sLoadFailed = false;
-		LLViewerRegion* region = gAgent.getRegion();
-		mCapabilityURL = region->getCapability(mCapabilityName);
 		if (!mCapabilityURL.empty())
 		{
 			LL_INFOS("SyntaxLSL")
diff --git a/indra/newview/llsyntaxid.h b/indra/newview/llsyntaxid.h
index 3c27a91ce4..a24edf7204 100644
--- a/indra/newview/llsyntaxid.h
+++ b/indra/newview/llsyntaxid.h
@@ -75,7 +75,7 @@ private:
 
 public:
 	LLSyntaxIdLSL();
-	LLSyntaxIdLSL(std::string filenameDefault, std::string simulatorFeature, std::string capabilityName);
+	LLSyntaxIdLSL(std::string filenameDefault, std::string simFeatureName, std::string capabilityName);
 
 	bool			checkSyntaxIdChanged();
 	bool			fetching();
@@ -103,7 +103,7 @@ protected:
 	void			setFileNameCurrent(std::string& name) { mFileNameCurrent = name; }
 	void			setFileNameDefault(std::string& name) { mFileNameDefault = name; }
 	void			setFileNameNew(std::string name) { mFileNameNew = name; }
-	void			setSimulatorFeatureName(const std::string& name) { mSimulatorFeature = name; }
+//	void			setSimulatorFeatureName(const std::string& name) { mSimulatorFeature = name; }
 };
 
 
-- 
cgit v1.2.3


From 5551e8f04c84d1427fc39b0927eebc6dd58a772f Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Wed, 5 Feb 2014 16:29:43 +0000
Subject: Checking version for cached files so older versions cannot sneak
 through on upgrading of format.

---
 indra/newview/llsyntaxid.cpp | 27 ++++++++++++++++++++-------
 1 file changed, 20 insertions(+), 7 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llsyntaxid.cpp b/indra/newview/llsyntaxid.cpp
index 4d7cc550af..4b84098b39 100644
--- a/indra/newview/llsyntaxid.cpp
+++ b/indra/newview/llsyntaxid.cpp
@@ -371,6 +371,10 @@ void LLSyntaxIdLSL::loadKeywordsIntoLLSD()
 			<< "Trying to open cached or default keyword file ;-)"
 			<< LL_ENDL;
 
+	// Is this the right thing to do, or should we leave the old content
+	// even if it isn't entirely accurate anymore?
+	sKeywordsXml = LLSD().emptyMap();
+
 	LLSD content;
 	llifstream file;
 	file.open(mFullFileSpec);
@@ -379,16 +383,25 @@ void LLSyntaxIdLSL::loadKeywordsIntoLLSD()
 		sLoaded = (bool)LLSDSerialize::fromXML(content, file);
 		if (!sLoaded)
 		{
-			LL_ERRS("SyntaxLSL") << "Unable to deserialise file: " << mFullFileSpec << LL_ENDL;
-
-			// Is this the right thing to do, or should we leave the old content
-			// even if it isn't entirely accurate anymore?
-			sKeywordsXml = LLSD().emptyMap();
+			LL_ERRS("SyntaxLSL")
+					<< "Unable to deserialise file: "
+					<< mFullFileSpec << LL_ENDL;
 		}
 		else
 		{
-			sKeywordsXml = content;
-			LL_INFOS("SyntaxLSL") << "Deserialised file: " << mFullFileSpec << LL_ENDL;
+			if (isSupportedVersion(content))
+			{
+				sKeywordsXml = content;
+				LL_INFOS("SyntaxLSL")
+						<< "Deserialised file: " << mFullFileSpec << LL_ENDL;
+			}
+			else
+			{
+				LLSyntaxIdLSL::sLoaded = false;
+				LLSyntaxIdLSL::sLoadFailed = true;
+				LL_WARNS("SyntaxLSL")
+					<< "Unknown or unsupported version of syntax file." << LL_ENDL;
+			}
 		}
 	}
 	else
-- 
cgit v1.2.3


From 01b7ae8abe7efc101202fea786e97862c44e1d21 Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Thu, 6 Feb 2014 16:41:07 +0000
Subject: Changing how state of loading is reported to better allow other
 classes to know what is happening.

---
 indra/newview/llsyntaxid.cpp | 45 +++++++++++++++++++++++---------------------
 indra/newview/llsyntaxid.h   |  3 ++-
 2 files changed, 26 insertions(+), 22 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llsyntaxid.cpp b/indra/newview/llsyntaxid.cpp
index 4b84098b39..3ee9859ccd 100644
--- a/indra/newview/llsyntaxid.cpp
+++ b/indra/newview/llsyntaxid.cpp
@@ -67,9 +67,10 @@ void fetchKeywordsFileResponder::result(const LLSD& content_ref)
 		if (LLSyntaxIdLSL::isSupportedVersion(content_ref))
 		{
 			LL_INFOS("SyntaxLSL")
-					<< "Is a supported verson of syntax file." << LL_ENDL;
+					<< "Supported verson of syntax file." << LL_ENDL;
 
 			LLSyntaxIdLSL::setKeywordsXml(content_ref);
+			LLSyntaxIdLSL::sInitialised = true;
 			LLSyntaxIdLSL::sLoaded = true;
 			LLSyntaxIdLSL::sLoadFailed = false;
 
@@ -115,6 +116,7 @@ const std::string LLSyntaxIdLSL::CAPABILITY_NAME = "LSLSyntax";
 const std::string LLSyntaxIdLSL::FILENAME_DEFAULT = "keywords_lsl_default.xml";
 const std::string LLSyntaxIdLSL::SIMULATOR_FEATURE = "LSLSyntaxId";
 
+bool LLSyntaxIdLSL::sInitialised;
 LLSD LLSyntaxIdLSL::sKeywordsXml;
 bool LLSyntaxIdLSL::sLoaded;
 bool LLSyntaxIdLSL::sLoadFailed;
@@ -162,13 +164,14 @@ std::string LLSyntaxIdLSL::buildFullFileSpec()
 //-----------------------------------------------------------------------------
 bool LLSyntaxIdLSL::checkSyntaxIdChanged()
 {
-	bool changed = false;
+	sVersionChanged = false;
 	LLViewerRegion* region = gAgent.getRegion();
 
 	if (region)
 	{
 		if (!region->capabilitiesReceived())
 		{   // Shouldn't be possible, but experience shows that it may be needed.
+			sLoadFailed = true;
 			LL_ERRS("SyntaxLSL")
 				<< "Region '" << region->getName()
 				<< "' has not received capabilities yet! Cannot process SyntaxId."
@@ -191,7 +194,7 @@ bool LLSyntaxIdLSL::checkSyntaxIdChanged()
 							<< "It has LSLSyntaxId capability, and the new hash is '"
 							<< mSyntaxIdNew.asString() << "'" << LL_ENDL;
 
-					changed = true;
+					sVersionChanged = true;
 				}
 				else
 				{
@@ -202,7 +205,7 @@ bool LLSyntaxIdLSL::checkSyntaxIdChanged()
 			}
 			else
 			{
-				if ( mSyntaxIdCurrent.isNull() )
+				if ( mSyntaxIdCurrent.isNull() && isInitialised())
 				{
 					LL_INFOS("SyntaxLSL")
 							<< "It does not have LSLSyntaxId capability, remaining with default keywords file!"
@@ -215,13 +218,12 @@ bool LLSyntaxIdLSL::checkSyntaxIdChanged()
 					LL_INFOS("SyntaxLSL")
 							<< "It does not have LSLSyntaxId capability, using default keywords file!"
 							<< LL_ENDL;
-					changed = true;
+					sVersionChanged = true;
 				}
 			}
 		}
 	}
-	sVersionChanged = changed;
-	return changed;
+	return sVersionChanged;
 }
 
 /**
@@ -231,7 +233,7 @@ bool LLSyntaxIdLSL::checkSyntaxIdChanged()
  */
 bool LLSyntaxIdLSL::fetching()
 {
-	return (!sLoaded && !sLoadFailed);
+	return !(sLoaded || sLoadFailed);
 }
 
 //-----------------------------------------------------------------------------
@@ -256,11 +258,17 @@ void LLSyntaxIdLSL::initialise()
 {
 	mFileNameNew = mFileNameCurrent;
 	mSyntaxIdNew = mSyntaxIdCurrent;
+
 	if (checkSyntaxIdChanged())
 	{
 		sKeywordsXml = LLSD();
 		sLoaded = sLoadFailed = false;
-		if (!mCapabilityURL.empty())
+
+		if (mSyntaxIdNew.isNull())
+		{ // Need to open the default
+			loadDefaultKeywordsIntoLLSD();
+		}
+		else if (!mCapabilityURL.empty() )
 		{
 			LL_INFOS("SyntaxLSL")
 					<< "LSL version has changed, getting appropriate file."
@@ -268,7 +276,7 @@ void LLSyntaxIdLSL::initialise()
 
 			// Need a full spec regardless of file source, so build it now.
 			buildFullFileSpec();
-			if ( !mSyntaxIdNew.isNull() )
+			if ( !mSyntaxIdNew.isNull())
 			{
 				if ( !gDirUtilp->fileExists(mFullFileSpec) )
 				{ // Does not exist, so fetch it from the capability
@@ -295,17 +303,11 @@ void LLSyntaxIdLSL::initialise()
 			sLoadFailed = true;
 			LL_ERRS("SyntaxLSL")
 					<< "LSLSyntaxId capability URL is empty!!" << LL_ENDL;
+			loadDefaultKeywordsIntoLLSD();
 		}
-
 	}
-	else if (sKeywordsXml.isDefined())
+	else if (!isInitialised())
 	{
-		LL_INFOS("SyntaxLSL")
-				<< "No change to Syntax! Nothing to see. Move along now!"
-				<< LL_ENDL;
-	}
-	else
-	{ // Need to open the default
 		loadDefaultKeywordsIntoLLSD();
 	}
 
@@ -320,7 +322,7 @@ bool LLSyntaxIdLSL::isSupportedVersion(const LLSD& content)
 {
 	bool isValid = false;
 	/*
-	 * If the schema used to store lsl keywords and hints changes, this value is incremented
+	 * If the schema used to store LSL keywords and hints changes, this value is incremented
 	 * Note that it should _not_ be changed if the keywords and hints _content_ changes.
 	 */
 	const U32         LLSD_SYNTAX_LSL_VERSION_EXPECTED = 2;
@@ -392,13 +394,14 @@ void LLSyntaxIdLSL::loadKeywordsIntoLLSD()
 			if (isSupportedVersion(content))
 			{
 				sKeywordsXml = content;
+				sLoaded = true;
+				sInitialised = true;
 				LL_INFOS("SyntaxLSL")
 						<< "Deserialised file: " << mFullFileSpec << LL_ENDL;
 			}
 			else
 			{
-				LLSyntaxIdLSL::sLoaded = false;
-				LLSyntaxIdLSL::sLoadFailed = true;
+				sLoaded = false;
 				LL_WARNS("SyntaxLSL")
 					<< "Unknown or unsupported version of syntax file." << LL_ENDL;
 			}
diff --git a/indra/newview/llsyntaxid.h b/indra/newview/llsyntaxid.h
index a24edf7204..226f1f4941 100644
--- a/indra/newview/llsyntaxid.h
+++ b/indra/newview/llsyntaxid.h
@@ -54,12 +54,12 @@ static const std::string	SIMULATOR_FEATURE;
 protected:
 	//LLViewerRegion*	region;
 
+	static bool		sInitialised;
 	static LLSD		sKeywordsXml;
 	static bool		sLoaded;
 	static bool		sLoadFailed;
 	static bool		sVersionChanged;
 
-
 private:
 	std::string		mCapabilityName;
 	std::string		mCapabilityURL;
@@ -85,6 +85,7 @@ public:
 	LLSD			getKeywordsXML()		const { return sKeywordsXml; }
 	LLUUID			getSyntaxId()			const { return mSyntaxIdCurrent; }
 	bool			isDifferentVersion()	const { return sVersionChanged; }
+	bool			isInitialised()			const { return sInitialised; }
 
 	void			initialise();
 	bool			isLoaded() { return sLoaded; }
-- 
cgit v1.2.3


From 00a99d9097131c02c6486112b32e57f534bf61be Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Thu, 6 Feb 2014 16:47:27 +0000
Subject: Adding clear methods to remove any highlighting.

---
 indra/llui/llkeywords.cpp   | 11 ++++++++++-
 indra/llui/llkeywords.h     |  1 +
 indra/llui/lltexteditor.cpp |  8 ++++++++
 indra/llui/lltexteditor.h   |  3 ++-
 4 files changed, 21 insertions(+), 2 deletions(-)

(limited to 'indra')

diff --git a/indra/llui/llkeywords.cpp b/indra/llui/llkeywords.cpp
index fd4ef33f59..c5e8f76a73 100755
--- a/indra/llui/llkeywords.cpp
+++ b/indra/llui/llkeywords.cpp
@@ -128,6 +128,16 @@ void LLKeywords::addToken(LLKeywordToken::TOKEN_TYPE type,
 	}
 }
 
+void LLKeywords::clear()
+{
+	clearLoaded();
+	mSyntax = LLSD();
+
+	std::for_each(mWordTokenMap.begin(), mWordTokenMap.end(), DeletePairedPointer());
+	std::for_each(mLineTokenList.begin(), mLineTokenList.end(), DeletePointer());
+	std::for_each(mDelimiterTokenList.begin(), mDelimiterTokenList.end(), DeletePointer());
+}
+
 std::string LLKeywords::getArguments(LLSD& arguments)
 {
 	std::string argString = "";
@@ -326,7 +336,6 @@ void LLKeywords::processTokensGroup(LLSD& Tokens, const std::string Group)
 			{
 				Color = ColorGroup;
 				mAttributes.clear();
-				bool deprecated = false;
 				LLSD arguments = LLSD ();
 				LLSD::map_iterator innerIt = outerIt->second.beginMap();
 				for ( ; innerIt != outerIt->second.endMap(); ++innerIt)
diff --git a/indra/llui/llkeywords.h b/indra/llui/llkeywords.h
index 689fd75bcd..de7645a5d2 100755
--- a/indra/llui/llkeywords.h
+++ b/indra/llui/llkeywords.h
@@ -110,6 +110,7 @@ public:
 	~LLKeywords();
 
 	void		addColorGroup(const std::string key_in, const LLColor4 color);
+	void		clear();
 	void		clearLoaded() { mLoaded = false; }
 	LLColor4	getColorGroup(const std::string key_in);
 	bool		isLoaded() const	{ return mLoaded; }
diff --git a/indra/llui/lltexteditor.cpp b/indra/llui/lltexteditor.cpp
index 303bc48933..e11636682e 100755
--- a/indra/llui/lltexteditor.cpp
+++ b/indra/llui/lltexteditor.cpp
@@ -2529,6 +2529,14 @@ void LLTextEditor::loadKeywords()
 	}
 }
 
+void LLTextEditor::clearSegments()
+{
+	if (!mSegments.empty())
+	{
+		mSegments.clear();
+	}
+}
+
 void LLTextEditor::updateSegments()
 {
 	if (mReflowIndex < S32_MAX && mKeywords.isLoaded() && mParseOnTheFly)
diff --git a/indra/llui/lltexteditor.h b/indra/llui/lltexteditor.h
index d7f6c7f643..698153587f 100755
--- a/indra/llui/lltexteditor.h
+++ b/indra/llui/lltexteditor.h
@@ -207,7 +207,8 @@ public:
 	const LLUUID&	getSourceID() const						{ return mSourceID; }
 
 	const LLTextSegmentPtr	getPreviousSegment() const;
-	void getSelectedSegments(segment_vec_t& segments) const;
+	void			getSelectedSegments(segment_vec_t& segments) const;
+	void			clearSegments();
 
 	void			setShowContextMenu(bool show) { mShowContextMenu = show; }
 	bool			getShowContextMenu() const { return mShowContextMenu; }
-- 
cgit v1.2.3


From 4514d8c5c3bd5e16ba8d84214ecd164cd0740864 Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Thu, 6 Feb 2014 16:48:22 +0000
Subject: Refactoring to better check state of loading and to allow clearing of
 highlighting if we don't have a valid keywords file.

---
 indra/newview/llpreviewscript.cpp | 71 +++++++++++++++++++++++++--------------
 1 file changed, 46 insertions(+), 25 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp
index 979074b453..904b56b436 100755
--- a/indra/newview/llpreviewscript.cpp
+++ b/indra/newview/llpreviewscript.cpp
@@ -417,45 +417,66 @@ BOOL LLScriptEdCore::postBuild()
 
 void LLScriptEdCore::onRegionChangeInitialiseKeywords()
 {
-	mEditor->mKeywords.clearLoaded();
+	LL_DEBUGS("SyntaxLSL") << "Pre Initialise!" << LL_ENDL;
 	mSyntaxIdLSL.initialise();
+	LL_DEBUGS("SyntaxLSL") << "Post Initialise!" << LL_ENDL;
 
+	// Nasty Hack to get started, needs to replaced with a callback or similar.
+	if (mSyntaxIdLSL.fetching())
+	{
+		LL_WARNS("SyntaxLSL") << "No Response in Time, still fetching!" << LL_ENDL;
+	}
 
-	if (mSyntaxIdLSL.isLoaded())
+	if (mSyntaxIdLSL.isDifferentVersion())
 	{
-		mEditor->mKeywords.initialise(mSyntaxIdLSL.getKeywordsXML());
+		LL_INFOS("SyntaxLSL")
+				<< "Hashes are different, updating highlighter." << LL_ENDL;
 
-		mEditor->loadKeywords();
+		mEditor->mKeywords.clearLoaded();
+		mEditor->clearSegments();
+		mEditor->mKeywords.clear();
 
-		std::vector<std::string> primary_keywords;
-		std::vector<std::string> secondary_keywords;
-		LLKeywordToken *token;
-		LLKeywords::keyword_iterator_t token_it;
-		for (token_it = mEditor->keywordsBegin(); token_it != mEditor->keywordsEnd(); ++token_it)
+		if (mSyntaxIdLSL.isLoaded())
 		{
-			token = token_it->second;
-			if (token->getType() == LLKeywordToken::TT_FUNCTION)
+			mEditor->mKeywords.initialise(mSyntaxIdLSL.getKeywordsXML());
+
+			mEditor->loadKeywords();
+
+			std::vector<std::string> primary_keywords;
+			std::vector<std::string> secondary_keywords;
+			LLKeywordToken *token;
+			LLKeywords::keyword_iterator_t token_it;
+			for (token_it = mEditor->keywordsBegin(); token_it != mEditor->keywordsEnd(); ++token_it)
 			{
-				primary_keywords.push_back( wstring_to_utf8str(token->getToken()) );
+				token = token_it->second;
+				if (token->getType() == LLKeywordToken::TT_FUNCTION)
+				{
+					primary_keywords.push_back( wstring_to_utf8str(token->getToken()) );
+				}
+				else
+				{
+					secondary_keywords.push_back( wstring_to_utf8str(token->getToken()) );
+				}
 			}
-			else
+
+			for (std::vector<std::string>::const_iterator iter= primary_keywords.begin();
+				 iter!= primary_keywords.end(); ++iter)
 			{
-				secondary_keywords.push_back( wstring_to_utf8str(token->getToken()) );
+				mFunctions->add(*iter);
 			}
-		}
-
-		for (std::vector<std::string>::const_iterator iter= primary_keywords.begin();
-				iter!= primary_keywords.end(); ++iter)
-		{
-			mFunctions->add(*iter);
-		}
 
-		for (std::vector<std::string>::const_iterator iter= secondary_keywords.begin();
-				iter!= secondary_keywords.end(); ++iter)
-		{
-			mFunctions->add(*iter);
+			for (std::vector<std::string>::const_iterator iter= secondary_keywords.begin();
+				 iter!= secondary_keywords.end(); ++iter)
+			{
+				mFunctions->add(*iter);
+			}
 		}
 	}
+	else
+	{
+		LL_INFOS("SyntaxLSL")
+				<< "Hashes are the same, no need to update highlighter." << LL_ENDL;
+	}
 }
 
 void LLScriptEdCore::initMenu()
-- 
cgit v1.2.3


From b30bfd37534b1000075c87ab681e5590b2c4a57a Mon Sep 17 00:00:00 2001
From: Jonathan Yap <none@none>
Date: Mon, 10 Feb 2014 20:06:05 -0500
Subject: STORM-1915 Fix unit tests

---
 indra/test/llsdmessagebuilder_tut.cpp       | 2 +-
 indra/test/lltemplatemessagebuilder_tut.cpp | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

(limited to 'indra')

diff --git a/indra/test/llsdmessagebuilder_tut.cpp b/indra/test/llsdmessagebuilder_tut.cpp
index be0692557a..b7283f53a6 100644
--- a/indra/test/llsdmessagebuilder_tut.cpp
+++ b/indra/test/llsdmessagebuilder_tut.cpp
@@ -649,7 +649,7 @@ namespace tut
 	template<> template<>
 	void LLSDMessageBuilderTestObject::test<37>()
 	{
-	  LLQuaternion data(1,2,3,0);
+	  LLQuaternion data(0.3713907f, 0.5570861f, 0.7427813f,0.0f);
 
 	  //we send a quaternion packed into a vec3 (w is infered) - so sizeof(vec) == 12 bytes not 16.
 	  LLVector3 vec = data.packToVector3();
diff --git a/indra/test/lltemplatemessagebuilder_tut.cpp b/indra/test/lltemplatemessagebuilder_tut.cpp
index 6e1c82bb24..b4495a9d0b 100644
--- a/indra/test/lltemplatemessagebuilder_tut.cpp
+++ b/indra/test/lltemplatemessagebuilder_tut.cpp
@@ -320,7 +320,7 @@ namespace tut
 	{
 		LLMessageTemplate messageTemplate = defaultTemplate();
 		messageTemplate.addBlock(defaultBlock(MVT_LLQuaternion, 12));
-		LLQuaternion outValue, inValue = LLQuaternion(1,2,3,0);
+		LLQuaternion outValue, inValue = LLQuaternion(0.3713907f, 0.5570861f, 0.7427813f,0.0f);
 		LLTemplateMessageBuilder* builder = defaultBuilder(messageTemplate);
 		builder->addQuat(_PREHASH_Test0, inValue);
 		LLTemplateMessageReader* reader = setReader(messageTemplate, builder);
@@ -787,7 +787,7 @@ namespace tut
 	{
 		LLMessageTemplate messageTemplate = defaultTemplate();
 		messageTemplate.addBlock(defaultBlock(MVT_LLQuaternion, 12));
-		LLQuaternion outValue, inValue = LLQuaternion(1,2,3,0);
+		LLQuaternion outValue, inValue = LLQuaternion(0.3713907f, 0.5570861f, 0.7427813f,0.0f);
 		LLTemplateMessageBuilder* builder = defaultBuilder(messageTemplate);
 		builder->addQuat(_PREHASH_Test0, inValue);
 		LLTemplateMessageReader* reader = setReader(
-- 
cgit v1.2.3


From 254728e00d600bdb4b211d9fd4b7da33e3872fea Mon Sep 17 00:00:00 2001
From: Drake Arconis <lightdrake@gmail.com>
Date: Fri, 14 Feb 2014 12:21:07 -0500
Subject: OPEN-203 dummy commit to satisfy mercurial

---
 indra/edit-me-to-trigger-new-build.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'indra')

diff --git a/indra/edit-me-to-trigger-new-build.txt b/indra/edit-me-to-trigger-new-build.txt
index 774e8c0676..4159352ab3 100755
--- a/indra/edit-me-to-trigger-new-build.txt
+++ b/indra/edit-me-to-trigger-new-build.txt
@@ -1,4 +1,4 @@
-Wed Nov  7 00:25:19 UTC 2012
+Wed Nov  7 00:25:19 UTC 2012 
 
 
 
-- 
cgit v1.2.3


From a060dcfff790f16dd4a0097e0eca4ff4b7f3d0de Mon Sep 17 00:00:00 2001
From: Ricky Curtice <kf6kjg+hg@gmail.com>
Date: Tue, 18 Feb 2014 23:03:13 -0800
Subject: STORM-1920: Math cleanup from Richard Linden.

---
 indra/llmath/v3dmath.h         |  91 ++++++++++++++++++---------------
 indra/llmath/v3math.h          |  13 +++++
 indra/newview/llmanipscale.cpp | 111 +++++++++++++++--------------------------
 3 files changed, 103 insertions(+), 112 deletions(-)

(limited to 'indra')

diff --git a/indra/llmath/v3dmath.h b/indra/llmath/v3dmath.h
index 578dcdc8ea..cab4c93a9f 100755
--- a/indra/llmath/v3dmath.h
+++ b/indra/llmath/v3dmath.h
@@ -101,25 +101,25 @@ class LLVector3d
 		F64 operator[](int idx) const { return mdV[idx]; }
 		F64 &operator[](int idx) { return mdV[idx]; }
 
-		friend LLVector3d operator+(const LLVector3d &a, const LLVector3d &b);	// Return vector a + b
-		friend LLVector3d operator-(const LLVector3d &a, const LLVector3d &b);	// Return vector a minus b
-		friend F64 operator*(const LLVector3d &a, const LLVector3d &b);		// Return a dot b
-		friend LLVector3d operator%(const LLVector3d &a, const LLVector3d &b);	// Return a cross b
-		friend LLVector3d operator*(const LLVector3d &a, const F64 k);				// Return a times scaler k
-		friend LLVector3d operator/(const LLVector3d &a, const F64 k);				// Return a divided by scaler k
-		friend LLVector3d operator*(const F64 k, const LLVector3d &a);				// Return a times scaler k
-		friend bool operator==(const LLVector3d &a, const LLVector3d &b);		// Return a == b
-		friend bool operator!=(const LLVector3d &a, const LLVector3d &b);		// Return a != b
-
-		friend const LLVector3d& operator+=(LLVector3d &a, const LLVector3d &b);	// Return vector a + b
-		friend const LLVector3d& operator-=(LLVector3d &a, const LLVector3d &b);	// Return vector a minus b
-		friend const LLVector3d& operator%=(LLVector3d &a, const LLVector3d &b);	// Return a cross b
-		friend const LLVector3d& operator*=(LLVector3d &a, const F64 k);				// Return a times scaler k
-		friend const LLVector3d& operator/=(LLVector3d &a, const F64 k);				// Return a divided by scaler k
-
-		friend LLVector3d operator-(const LLVector3d &a);					// Return vector -a
-
-		friend std::ostream&	 operator<<(std::ostream& s, const LLVector3d &a);		// Stream a
+		friend LLVector3d operator+(const LLVector3d& a, const LLVector3d& b);	// Return vector a + b
+		friend LLVector3d operator-(const LLVector3d& a, const LLVector3d& b);	// Return vector a minus b
+		friend F64 operator*(const LLVector3d& a, const LLVector3d& b);		// Return a dot b
+		friend LLVector3d operator%(const LLVector3d& a, const LLVector3d& b);	// Return a cross b
+		friend LLVector3d operator*(const LLVector3d& a, const F64 k);				// Return a times scaler k
+		friend LLVector3d operator/(const LLVector3d& a, const F64 k);				// Return a divided by scaler k
+		friend LLVector3d operator*(const F64 k, const LLVector3d& a);				// Return a times scaler k
+		friend bool operator==(const LLVector3d& a, const LLVector3d& b);		// Return a == b
+		friend bool operator!=(const LLVector3d& a, const LLVector3d& b);		// Return a != b
+
+		friend const LLVector3d& operator+=(LLVector3d& a, const LLVector3d& b);	// Return vector a + b
+		friend const LLVector3d& operator-=(LLVector3d& a, const LLVector3d& b);	// Return vector a minus b
+		friend const LLVector3d& operator%=(LLVector3d& a, const LLVector3d& b);	// Return a cross b
+		friend const LLVector3d& operator*=(LLVector3d& a, const F64 k);				// Return a times scaler k
+		friend const LLVector3d& operator/=(LLVector3d& a, const F64 k);				// Return a divided by scaler k
+
+		friend LLVector3d operator-(const LLVector3d& a);					// Return vector -a
+
+		friend std::ostream&	 operator<<(std::ostream& s, const LLVector3d& a);		// Stream a
 
 		static BOOL parseVector3d(const std::string& buf, LLVector3d* value);
 
@@ -298,59 +298,59 @@ inline F64	LLVector3d::lengthSquared(void) const
 	return mdV[0]*mdV[0] + mdV[1]*mdV[1] + mdV[2]*mdV[2];
 }
 
-inline LLVector3d operator+(const LLVector3d &a, const LLVector3d &b)
+inline LLVector3d operator+(const LLVector3d& a, const LLVector3d& b)
 {
 	LLVector3d c(a);
 	return c += b;
 }
 
-inline LLVector3d operator-(const LLVector3d &a, const LLVector3d &b)
+inline LLVector3d operator-(const LLVector3d& a, const LLVector3d& b)
 {
 	LLVector3d c(a);
 	return c -= b;
 }
 
-inline F64  operator*(const LLVector3d &a, const LLVector3d &b)
+inline F64  operator*(const LLVector3d& a, const LLVector3d& b)
 {
 	return (a.mdV[0]*b.mdV[0] + a.mdV[1]*b.mdV[1] + a.mdV[2]*b.mdV[2]);
 }
 
-inline LLVector3d operator%(const LLVector3d &a, const LLVector3d &b)
+inline LLVector3d operator%(const LLVector3d& a, const LLVector3d& b)
 {
 	return LLVector3d( a.mdV[1]*b.mdV[2] - b.mdV[1]*a.mdV[2], a.mdV[2]*b.mdV[0] - b.mdV[2]*a.mdV[0], a.mdV[0]*b.mdV[1] - b.mdV[0]*a.mdV[1] );
 }
 
-inline LLVector3d operator/(const LLVector3d &a, const F64 k)
+inline LLVector3d operator/(const LLVector3d& a, const F64 k)
 {
 	F64 t = 1.f / k;
 	return LLVector3d( a.mdV[0] * t, a.mdV[1] * t, a.mdV[2] * t );
 }
 
-inline LLVector3d operator*(const LLVector3d &a, const F64 k)
+inline LLVector3d operator*(const LLVector3d& a, const F64 k)
 {
 	return LLVector3d( a.mdV[0] * k, a.mdV[1] * k, a.mdV[2] * k );
 }
 
-inline LLVector3d operator*(F64 k, const LLVector3d &a)
+inline LLVector3d operator*(F64 k, const LLVector3d& a)
 {
 	return LLVector3d( a.mdV[0] * k, a.mdV[1] * k, a.mdV[2] * k );
 }
 
-inline bool operator==(const LLVector3d &a, const LLVector3d &b)
+inline bool operator==(const LLVector3d& a, const LLVector3d& b)
 {
 	return (  (a.mdV[0] == b.mdV[0])
 			&&(a.mdV[1] == b.mdV[1])
 			&&(a.mdV[2] == b.mdV[2]));
 }
 
-inline bool operator!=(const LLVector3d &a, const LLVector3d &b)
+inline bool operator!=(const LLVector3d& a, const LLVector3d& b)
 {
 	return (  (a.mdV[0] != b.mdV[0])
 			||(a.mdV[1] != b.mdV[1])
 			||(a.mdV[2] != b.mdV[2]));
 }
 
-inline const LLVector3d& operator+=(LLVector3d &a, const LLVector3d &b)
+inline const LLVector3d& operator+=(LLVector3d& a, const LLVector3d& b)
 {
 	a.mdV[0] += b.mdV[0];
 	a.mdV[1] += b.mdV[1];
@@ -358,7 +358,7 @@ inline const LLVector3d& operator+=(LLVector3d &a, const LLVector3d &b)
 	return a;
 }
 
-inline const LLVector3d& operator-=(LLVector3d &a, const LLVector3d &b)
+inline const LLVector3d& operator-=(LLVector3d& a, const LLVector3d& b)
 {
 	a.mdV[0] -= b.mdV[0];
 	a.mdV[1] -= b.mdV[1];
@@ -366,14 +366,14 @@ inline const LLVector3d& operator-=(LLVector3d &a, const LLVector3d &b)
 	return a;
 }
 
-inline const LLVector3d& operator%=(LLVector3d &a, const LLVector3d &b)
+inline const LLVector3d& operator%=(LLVector3d& a, const LLVector3d& b)
 {
 	LLVector3d ret( a.mdV[1]*b.mdV[2] - b.mdV[1]*a.mdV[2], a.mdV[2]*b.mdV[0] - b.mdV[2]*a.mdV[0], a.mdV[0]*b.mdV[1] - b.mdV[0]*a.mdV[1]);
 	a = ret;
 	return a;
 }
 
-inline const LLVector3d& operator*=(LLVector3d &a, const F64 k)
+inline const LLVector3d& operator*=(LLVector3d& a, const F64 k)
 {
 	a.mdV[0] *= k;
 	a.mdV[1] *= k;
@@ -381,7 +381,7 @@ inline const LLVector3d& operator*=(LLVector3d &a, const F64 k)
 	return a;
 }
 
-inline const LLVector3d& operator/=(LLVector3d &a, const F64 k)
+inline const LLVector3d& operator/=(LLVector3d& a, const F64 k)
 {
 	F64 t = 1.f / k;
 	a.mdV[0] *= t;
@@ -390,12 +390,12 @@ inline const LLVector3d& operator/=(LLVector3d &a, const F64 k)
 	return a;
 }
 
-inline LLVector3d operator-(const LLVector3d &a)
+inline LLVector3d operator-(const LLVector3d& a)
 {
 	return LLVector3d( -a.mdV[0], -a.mdV[1], -a.mdV[2] );
 }
 
-inline F64	dist_vec(const LLVector3d &a, const LLVector3d &b)
+inline F64	dist_vec(const LLVector3d& a, const LLVector3d& b)
 {
 	F64 x = a.mdV[0] - b.mdV[0];
 	F64 y = a.mdV[1] - b.mdV[1];
@@ -403,7 +403,7 @@ inline F64	dist_vec(const LLVector3d &a, const LLVector3d &b)
 	return (F32) sqrt( x*x + y*y + z*z );
 }
 
-inline F64	dist_vec_squared(const LLVector3d &a, const LLVector3d &b)
+inline F64	dist_vec_squared(const LLVector3d& a, const LLVector3d& b)
 {
 	F64 x = a.mdV[0] - b.mdV[0];
 	F64 y = a.mdV[1] - b.mdV[1];
@@ -411,14 +411,14 @@ inline F64	dist_vec_squared(const LLVector3d &a, const LLVector3d &b)
 	return x*x + y*y + z*z;
 }
 
-inline F64	dist_vec_squared2D(const LLVector3d &a, const LLVector3d &b)
+inline F64	dist_vec_squared2D(const LLVector3d& a, const LLVector3d& b)
 {
 	F64 x = a.mdV[0] - b.mdV[0];
 	F64 y = a.mdV[1] - b.mdV[1];
 	return x*x + y*y;
 }
 
-inline LLVector3d lerp(const LLVector3d &a, const LLVector3d &b, const F64 u)
+inline LLVector3d lerp(const LLVector3d& a, const LLVector3d& b, const F64 u)
 {
 	return LLVector3d(
 		a.mdV[VX] + (b.mdV[VX] - a.mdV[VX]) * u,
@@ -450,7 +450,7 @@ inline F64 angle_between(const LLVector3d& a, const LLVector3d& b)
 	return angle;
 }
 
-inline BOOL are_parallel(const LLVector3d &a, const LLVector3d &b, const F64 epsilon)
+inline BOOL are_parallel(const LLVector3d& a, const LLVector3d& b, const F64 epsilon)
 {
 	LLVector3d an = a;
 	LLVector3d bn = b;
@@ -465,11 +465,22 @@ inline BOOL are_parallel(const LLVector3d &a, const LLVector3d &b, const F64 eps
 
 }
 
-inline LLVector3d projected_vec(const LLVector3d &a, const LLVector3d &b)
+inline LLVector3d projected_vec(const LLVector3d& a, const LLVector3d& b)
 {
 	LLVector3d project_axis = b;
 	project_axis.normalize();
 	return project_axis * (a * project_axis);
 }
 
+inline LLVector3d inverse_projected_vec(const LLVector3d& a, const LLVector3d& b)
+{
+	LLVector3d normalized_a = a;
+	normalized_a.normalize();
+	LLVector3d normalized_b = b;
+	F64 b_length = normalized_b.normalize();
+
+	F64 dot_product = normalized_a * normalized_b;
+	return normalized_a * (b_length / dot_product);
+}
+
 #endif // LL_V3DMATH_H
diff --git a/indra/llmath/v3math.h b/indra/llmath/v3math.h
index 0432aeba4c..1461cd57b6 100755
--- a/indra/llmath/v3math.h
+++ b/indra/llmath/v3math.h
@@ -159,6 +159,7 @@ F32	dist_vec(const LLVector3 &a, const LLVector3 &b);		// Returns distance betwe
 F32	dist_vec_squared(const LLVector3 &a, const LLVector3 &b);// Returns distance squared between a and b
 F32	dist_vec_squared2D(const LLVector3 &a, const LLVector3 &b);// Returns distance squared between a and b ignoring Z component
 LLVector3 projected_vec(const LLVector3 &a, const LLVector3 &b); // Returns vector a projected on vector b
+LLVector3 inverse_projected_vec(const LLVector3 &a, const LLVector3 &b); // Returns vector a scaled such that projected_vec(inverse_projected_vec(a, b), b) == b;
 LLVector3 parallel_component(const LLVector3 &a, const LLVector3 &b); // Returns vector a projected on vector b (same as projected_vec)
 LLVector3 orthogonal_component(const LLVector3 &a, const LLVector3 &b); // Returns component of vector a not parallel to vector b (same as projected_vec)
 LLVector3 lerp(const LLVector3 &a, const LLVector3 &b, F32 u); // Returns a vector that is a linear interpolation between a and b
@@ -495,6 +496,18 @@ inline LLVector3 projected_vec(const LLVector3 &a, const LLVector3 &b)
 	return project_axis * (a * project_axis);
 }
 
+inline LLVector3 inverse_projected_vec(const LLVector3& a, const LLVector3& b)
+{
+	LLVector3 normalized_a = a;
+	normalized_a.normalize();
+	LLVector3 normalized_b = b;
+	F32 b_length = normalized_b.normalize();
+
+	F32 dot_product = normalized_a * normalized_b;
+	//NB: if a _|_ b, then returns an infinite vector
+	return normalized_a * (b_length / dot_product);
+}
+
 inline LLVector3 parallel_component(const LLVector3 &a, const LLVector3 &b)
 {
 	return projected_vec(a, b);
diff --git a/indra/newview/llmanipscale.cpp b/indra/newview/llmanipscale.cpp
index ae0884ac5d..087f617bbb 100755
--- a/indra/newview/llmanipscale.cpp
+++ b/indra/newview/llmanipscale.cpp
@@ -843,121 +843,85 @@ void LLManipScale::drag( S32 x, S32 y )
 // Scale around the 
 void LLManipScale::dragCorner( S32 x, S32 y )
 {
-	LLBBox bbox	= LLSelectMgr::getInstance()->getBBoxOfSelection();
-
 	// Suppress scale if mouse hasn't moved.
 	if (x == mLastMouseX && y == mLastMouseY)
 	{
-	//	sendUpdates(TRUE,TRUE,TRUE);
 		return;
 	}
-
 	mLastMouseX = x;
 	mLastMouseY = y;
 
-	LLVector3d drag_start_point_global	= mDragStartPointGlobal;
-	LLVector3d drag_start_center_global = mDragStartCenterGlobal;
-	LLVector3 drag_start_point_agent = gAgent.getPosAgentFromGlobal(drag_start_point_global);
-	LLVector3 drag_start_center_agent = gAgent.getPosAgentFromGlobal(drag_start_center_global);
+	LLVector3 drag_start_point_agent = gAgent.getPosAgentFromGlobal(mDragStartPointGlobal);
+	LLVector3 drag_start_center_agent = gAgent.getPosAgentFromGlobal(mDragStartCenterGlobal);
 
 	LLVector3d drag_start_dir_d;
-	drag_start_dir_d.setVec(drag_start_point_global - drag_start_center_global);
-	LLVector3 drag_start_dir_f;
-	drag_start_dir_f.setVec(drag_start_dir_d);
+	drag_start_dir_d.setVec(mDragStartPointGlobal - mDragStartCenterGlobal);
 
 	F32 s = 0;
 	F32 t = 0;
-
 	nearestPointOnLineFromMouse(x, y, 
-						drag_start_center_agent,
-						drag_start_point_agent,
-						s, t );
-
-	F32 drag_start_dist = dist_vec(drag_start_point_agent, drag_start_center_agent);
+								drag_start_center_agent,
+								drag_start_point_agent,
+								s, t );
 
 	if( s <= 0 )  // we only care about intersections in front of the camera
 	{
 		return;
 	}
+	mDragPointGlobal = lerp(mDragStartCenterGlobal, mDragStartPointGlobal, t);
 
-	LLVector3d drag_point_global = drag_start_center_global + t * drag_start_dir_d;
-
-	F32 scale_factor = t;
-
-	BOOL uniform = LLManipScale::getUniform();
-
-	if( !uniform )
-	{
-		scale_factor = 0.5f + (scale_factor * 0.5f);
-	}
+	LLBBox bbox	     = LLSelectMgr::getInstance()->getBBoxOfSelection();
+	F32 scale_factor = 1.f;
+	F32 max_scale    = partToMaxScale(mManipPart, bbox);
+	F32 min_scale    = partToMinScale(mManipPart, bbox);
+	BOOL uniform     = LLManipScale::getUniform();
 
 	// check for snapping
-	LLVector3 drag_center_agent = gAgent.getPosAgentFromGlobal(drag_point_global);
 	LLVector3 mouse_on_plane1;
-	getMousePointOnPlaneAgent(mouse_on_plane1, x, y, drag_center_agent, mScalePlaneNormal1);
-	LLVector3 mouse_on_plane2;
-	getMousePointOnPlaneAgent(mouse_on_plane2, x, y, drag_center_agent, mScalePlaneNormal2);
-	LLVector3 mouse_dir_1 = mouse_on_plane1 - mScaleCenter;
-	LLVector3 mouse_dir_2 = mouse_on_plane2 - mScaleCenter;
-	LLVector3 mouse_to_scale_line_1 = mouse_dir_1 - projected_vec(mouse_dir_1, mScaleDir);
-	LLVector3 mouse_to_scale_line_2 = mouse_dir_2 - projected_vec(mouse_dir_2, mScaleDir);
-	LLVector3 mouse_to_scale_line_dir_1 = mouse_to_scale_line_1;
-	mouse_to_scale_line_dir_1.normVec();
-	if (mouse_to_scale_line_dir_1 * mSnapGuideDir1 < 0.f)
-	{
-		// need to keep sign of mouse offset wrt to snap guide direction
-		mouse_to_scale_line_dir_1 *= -1.f;
-	}
-	LLVector3 mouse_to_scale_line_dir_2 = mouse_to_scale_line_2;
-	mouse_to_scale_line_dir_2.normVec();
-	if (mouse_to_scale_line_dir_2 * mSnapGuideDir2 < 0.f)
-	{
-		// need to keep sign of mouse offset wrt to snap guide direction
-		mouse_to_scale_line_dir_2 *= -1.f;
-	}
+	getMousePointOnPlaneAgent(mouse_on_plane1, x, y, mScaleCenter, mScalePlaneNormal1);
+	mouse_on_plane1 -= mScaleCenter;
 
-	F32 snap_dir_dot_mouse_offset1 = mSnapGuideDir1 * mouse_to_scale_line_dir_1;
-	F32 snap_dir_dot_mouse_offset2 = mSnapGuideDir2 * mouse_to_scale_line_dir_2;
+	LLVector3 mouse_on_plane2;
+	getMousePointOnPlaneAgent(mouse_on_plane2, x, y, mScaleCenter, mScalePlaneNormal2);
+	mouse_on_plane2 -= mScaleCenter;
 
-	F32 dist_from_scale_line_1 = mouse_to_scale_line_1 * mouse_to_scale_line_dir_1; 
-	F32 dist_from_scale_line_2 = mouse_to_scale_line_2 * mouse_to_scale_line_dir_2;
+	LLVector3 projected_drag_pos1 = inverse_projected_vec(mScaleDir, orthogonal_component(mouse_on_plane1, mSnapGuideDir1));
+	LLVector3 projected_drag_pos2 = inverse_projected_vec(mScaleDir, orthogonal_component(mouse_on_plane2, mSnapGuideDir2));
 
-	F32 max_scale = partToMaxScale(mManipPart, bbox);
-	F32 min_scale = partToMinScale(mManipPart, bbox);
+	LLVector3 mouse_offset_from_scale_line_1 = orthogonal_component(mouse_on_plane1, mScaleDir);
+	LLVector3 mouse_offset_from_scale_line_2 = orthogonal_component(mouse_on_plane2, mScaleDir);
 
 	BOOL snap_enabled = gSavedSettings.getBOOL("SnapEnabled");
-	if (snap_enabled && dist_from_scale_line_1 > mSnapRegimeOffset * snap_dir_dot_mouse_offset1)
+	if (snap_enabled && (mouse_on_plane1 - projected_drag_pos1) * mSnapGuideDir1 > mSnapRegimeOffset)
 	{
-		mInSnapRegime = TRUE;
-		LLVector3 projected_drag_pos = mouse_on_plane1 - (dist_from_scale_line_1 / snap_dir_dot_mouse_offset1) * mSnapGuideDir1;
-		F32 drag_dist = (projected_drag_pos - mScaleCenter) * mScaleDir;
+		F32 drag_dist = projected_drag_pos1.length();
 
-		F32 cur_subdivisions = llclamp(getSubdivisionLevel(projected_drag_pos, mScaleDir, mScaleSnapUnit1), sGridMinSubdivisionLevel, sGridMaxSubdivisionLevel);
+		F32 cur_subdivisions = llclamp(getSubdivisionLevel(projected_drag_pos1, mScaleDir, mScaleSnapUnit1), sGridMinSubdivisionLevel, sGridMaxSubdivisionLevel);
 		F32 snap_dist = mScaleSnapUnit1 / (2.f * cur_subdivisions);
 		F32 relative_snap_dist = fmodf(drag_dist + snap_dist, mScaleSnapUnit1 / cur_subdivisions);
 
 		mScaleSnapValue = llclamp((drag_dist - (relative_snap_dist - snap_dist)), min_scale, max_scale);
 
-		scale_factor = mScaleSnapValue / drag_start_dist;
-		if( !uniform )
+		mInSnapRegime = TRUE;
+		scale_factor = mScaleSnapValue / dist_vec(drag_start_point_agent, drag_start_center_agent);
+		if (!uniform)
 		{
 			scale_factor *= 0.5f;
 		}
 	}
-	else if (snap_enabled && dist_from_scale_line_2 > mSnapRegimeOffset * snap_dir_dot_mouse_offset2)
+	else if (snap_enabled && (mouse_on_plane2 - projected_drag_pos2) * mSnapGuideDir2 > mSnapRegimeOffset )
 	{
-		mInSnapRegime = TRUE;
-		LLVector3 projected_drag_pos = mouse_on_plane2 - (dist_from_scale_line_2 / snap_dir_dot_mouse_offset2) * mSnapGuideDir2;
-		F32 drag_dist = (projected_drag_pos - mScaleCenter) * mScaleDir;
+		F32 drag_dist = projected_drag_pos2.length();
 
-		F32 cur_subdivisions = llclamp(getSubdivisionLevel(projected_drag_pos, mScaleDir, mScaleSnapUnit2), sGridMinSubdivisionLevel, sGridMaxSubdivisionLevel);
+		F32 cur_subdivisions = llclamp(getSubdivisionLevel(projected_drag_pos2, mScaleDir, mScaleSnapUnit2), sGridMinSubdivisionLevel, sGridMaxSubdivisionLevel);
 		F32 snap_dist = mScaleSnapUnit2 / (2.f * cur_subdivisions);
 		F32 relative_snap_dist = fmodf(drag_dist + snap_dist, mScaleSnapUnit2 / cur_subdivisions);
 
 		mScaleSnapValue = llclamp((drag_dist - (relative_snap_dist - snap_dist)), min_scale, max_scale);
 
-		scale_factor = mScaleSnapValue / drag_start_dist;
-		if( !uniform )
+		mInSnapRegime = TRUE;
+		scale_factor = mScaleSnapValue / dist_vec(drag_start_point_agent, drag_start_center_agent);
+		if (!uniform)
 		{
 			scale_factor *= 0.5f;
 		}
@@ -965,8 +929,14 @@ void LLManipScale::dragCorner( S32 x, S32 y )
 	else 
 	{
 		mInSnapRegime = FALSE;
+		scale_factor = t;
+		if (!uniform)
+		{
+			scale_factor = 0.5f + (scale_factor * 0.5f);
+		}
 	}
 
+
 	F32 max_scale_factor = get_default_max_prim_scale() / MIN_PRIM_SCALE;
 	F32 min_scale_factor = MIN_PRIM_SCALE / get_default_max_prim_scale();
 
@@ -1069,9 +1039,6 @@ void LLManipScale::dragCorner( S32 x, S32 y )
 		}
 	}
 
-	
-
-	mDragPointGlobal = drag_point_global;
 }
 
 	
-- 
cgit v1.2.3


From 9f4031edffa86f194bad440bc2940648cca7368d Mon Sep 17 00:00:00 2001
From: Ricky Curtice <kf6kjg+hg@gmail.com>
Date: Tue, 18 Feb 2014 23:20:46 -0800
Subject: STORM-1920: Documented the meaning of some of the variables involved,
 built simplest change to solve issue.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The highlighting code assumed that the axis of the scaling movement was aligned with the scale tick marks - e.g. one of the cardinal directions with respect to the OBB of the selection.  This was and is NOT true when dragging from the corner, aka scaling more than one axis at a time.  The solution was to calculate the measured distance by projecting the snapped distance along the snap direction onto the axis of the relevant snap guide.  This gives the correct values, and is nice and clean - both in the change involved, and in the values returned.

However, while the fundamental misunderstanding in the code has been cleaned up by this change, the tick_val variable has so much jitter in the bottom end that the is_approx_equal function doesn’t come true > 98% of the time.  This is the next problem to solve.
---
 indra/newview/llmanipscale.cpp | 13 +++++++------
 indra/newview/llmanipscale.h   | 12 ++++++------
 2 files changed, 13 insertions(+), 12 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llmanipscale.cpp b/indra/newview/llmanipscale.cpp
index 087f617bbb..18201f9074 100755
--- a/indra/newview/llmanipscale.cpp
+++ b/indra/newview/llmanipscale.cpp
@@ -870,7 +870,7 @@ void LLManipScale::dragCorner( S32 x, S32 y )
 	}
 	mDragPointGlobal = lerp(mDragStartCenterGlobal, mDragStartPointGlobal, t);
 
-	LLBBox bbox	     = LLSelectMgr::getInstance()->getBBoxOfSelection();
+	LLBBox bbox      = LLSelectMgr::getInstance()->getBBoxOfSelection();
 	F32 scale_factor = 1.f;
 	F32 max_scale    = partToMaxScale(mManipPart, bbox);
 	F32 min_scale    = partToMinScale(mManipPart, bbox);
@@ -888,9 +888,6 @@ void LLManipScale::dragCorner( S32 x, S32 y )
 	LLVector3 projected_drag_pos1 = inverse_projected_vec(mScaleDir, orthogonal_component(mouse_on_plane1, mSnapGuideDir1));
 	LLVector3 projected_drag_pos2 = inverse_projected_vec(mScaleDir, orthogonal_component(mouse_on_plane2, mSnapGuideDir2));
 
-	LLVector3 mouse_offset_from_scale_line_1 = orthogonal_component(mouse_on_plane1, mScaleDir);
-	LLVector3 mouse_offset_from_scale_line_2 = orthogonal_component(mouse_on_plane2, mScaleDir);
-
 	BOOL snap_enabled = gSavedSettings.getBOOL("SnapEnabled");
 	if (snap_enabled && (mouse_on_plane1 - projected_drag_pos1) * mSnapGuideDir1 > mSnapRegimeOffset)
 	{
@@ -1729,7 +1726,9 @@ void LLManipScale::renderSnapGuides(const LLBBox& bbox)
 
 				F32 text_highlight = 0.8f;
 
-				if (is_approx_equal(tick_val, mScaleSnapValue) && mInSnapRegime)
+				F32 measured_distance = -(mSnapGuideDir2 * (mScaleDir * mScaleSnapValue)); // The other snap guide points down the vector we are measuring against, which when the snapvalue along the scale direction is projected against gives the distance along the relevant axis of measurement.
+
+				if (is_approx_equal(tick_val, measured_distance) && mInSnapRegime)
 				{
 					text_highlight = 1.f;
 				}
@@ -1781,7 +1780,9 @@ void LLManipScale::renderSnapGuides(const LLBBox& bbox)
 
 					F32 text_highlight = 0.8f;
 
-					if (is_approx_equal(tick_val, mScaleSnapValue) && mInSnapRegime)
+					F32 measured_distance = -(mSnapGuideDir1 * (mScaleDir * mScaleSnapValue)); // The other snap guide points down the vector we are measuring against, which when the snapvalue along the scale direction is projected against gives the distance along the relevant axis of measurement.
+
+					if (is_approx_equal(tick_val, measured_distance) && mInSnapRegime)
 					{
 						text_highlight = 1.f;
 					}
diff --git a/indra/newview/llmanipscale.h b/indra/newview/llmanipscale.h
index 5cb8898fd0..652b90d59e 100755
--- a/indra/newview/llmanipscale.h
+++ b/indra/newview/llmanipscale.h
@@ -148,10 +148,10 @@ private:
 	typedef std::set<ManipulatorHandle*, compare_manipulators> minpulator_list_t;
 	minpulator_list_t mProjectedManipulators;
 	LLVector4		mManipulatorVertices[14];
-	F32				mScaleSnapUnit1;  // size of snap multiples for axis 1
-	F32				mScaleSnapUnit2;  // size of snap multiples for axis 2
-	LLVector3		mScalePlaneNormal1; // normal of plane in which scale occurs that most faces camera
-	LLVector3		mScalePlaneNormal2; // normal of plane in which scale occurs that most faces camera
+	F32				mScaleSnapUnit1;  //!< Size of snap multiples for axis 1.
+	F32				mScaleSnapUnit2;  //!< Size of snap multiples for axis 2.
+	LLVector3		mScalePlaneNormal1; //!< Normal of plane in which scale occurs that most faces camera.
+	LLVector3		mScalePlaneNormal2; //!< Normal of plane in which scale occurs that most faces camera.
 	LLVector3		mSnapGuideDir1;
 	LLVector3		mSnapGuideDir2;
 	LLVector3		mSnapDir1;
@@ -159,8 +159,8 @@ private:
 	F32				mSnapRegimeOffset;
 	F32				mSnapGuideLength;
 	LLVector3		mScaleCenter;
-	LLVector3		mScaleDir;
-	F32				mScaleSnapValue;
+	LLVector3		mScaleDir; //!< The direction of the scaling action.  In face-dragging this is aligned with one of the cardinal axis relative to the prim, but in corner-dragging this is along the diagonal.
+	F32				mScaleSnapValue; //!< The distance of the current position nearest the mouse location, measured along mScaleDir.  Is measured either from the center or from the far face/corner depending upon whether uniform scaling is true or false respectively.
 	BOOL			mInSnapRegime;
 	F32*			mManipulatorScales;
 };
-- 
cgit v1.2.3


From 12dc73c74dfd7799b91af42098e6d600a7b1c591 Mon Sep 17 00:00:00 2001
From: Ricky Curtice <kf6kjg+hg@gmail.com>
Date: Sat, 22 Feb 2014 22:12:34 -0800
Subject: Simple variable cleanup.

There was a lot of repeated division that was obscuring meaning, along with a variable that was always identical to another preexisting variable.  This last was probably an archaism, and was just due for removal.
---
 indra/newview/llmanipscale.cpp | 52 ++++++++++++++++++++++--------------------
 1 file changed, 27 insertions(+), 25 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llmanipscale.cpp b/indra/newview/llmanipscale.cpp
index 18201f9074..34092f8823 100755
--- a/indra/newview/llmanipscale.cpp
+++ b/indra/newview/llmanipscale.cpp
@@ -1501,7 +1501,6 @@ void LLManipScale::renderSnapGuides(const LLBBox& bbox)
 		return;
 	}
 
-	F32 max_subdivisions = sGridMaxSubdivisionLevel;
 	F32 grid_alpha = gSavedSettings.getF32("GridOpacity");
 
 	F32 max_point_on_scale_line = partToMaxScale(mManipPart, bbox);
@@ -1543,22 +1542,25 @@ void LLManipScale::renderSnapGuides(const LLBBox& bbox)
 		LLGLDepthTest gls_depth(GL_FALSE);
 
 		F32 dist_grid_axis = (drag_point - mScaleCenter) * mScaleDir;
+		F32 smallest_subdivision1 = mScaleSnapUnit1 / sGridMaxSubdivisionLevel;
+		F32 smallest_subdivision2 = mScaleSnapUnit2 / sGridMaxSubdivisionLevel;
+
 		// find distance to nearest smallest grid unit
-		F32 grid_offset1 = fmodf(dist_grid_axis, mScaleSnapUnit1 / max_subdivisions);
-		F32 grid_offset2 = fmodf(dist_grid_axis, mScaleSnapUnit2 / max_subdivisions);
+		F32 grid_offset1 = fmodf(dist_grid_axis, smallest_subdivision1);
+		F32 grid_offset2 = fmodf(dist_grid_axis, smallest_subdivision2);
 
 		// how many smallest grid units are we away from largest grid scale?
-		S32 sub_div_offset_1 = llround(fmod(dist_grid_axis - grid_offset1, mScaleSnapUnit1 / sGridMinSubdivisionLevel) / (mScaleSnapUnit1 / max_subdivisions));
-		S32 sub_div_offset_2 = llround(fmod(dist_grid_axis - grid_offset2, mScaleSnapUnit2 / sGridMinSubdivisionLevel) / (mScaleSnapUnit2 / max_subdivisions));
+		S32 sub_div_offset_1 = llround(fmod(dist_grid_axis - grid_offset1, mScaleSnapUnit1 / sGridMinSubdivisionLevel) / smallest_subdivision1);
+		S32 sub_div_offset_2 = llround(fmod(dist_grid_axis - grid_offset2, mScaleSnapUnit2 / sGridMinSubdivisionLevel) / smallest_subdivision2);
 
-		S32 num_ticks_per_side1 = llmax(1, lltrunc(0.5f * mSnapGuideLength / (mScaleSnapUnit1 / max_subdivisions)));
-		S32 num_ticks_per_side2 = llmax(1, lltrunc(0.5f * mSnapGuideLength / (mScaleSnapUnit2 / max_subdivisions)));
-		F32 dist_scale_units_1 = dist_grid_axis / (mScaleSnapUnit1 / max_subdivisions);
-		F32 dist_scale_units_2 = dist_grid_axis / (mScaleSnapUnit2 / max_subdivisions);
+		S32 num_ticks_per_side1 = llmax(1, lltrunc(0.5f * mSnapGuideLength / smallest_subdivision1));
+		S32 num_ticks_per_side2 = llmax(1, lltrunc(0.5f * mSnapGuideLength / smallest_subdivision2));
+		F32 dist_scale_units_1 = dist_grid_axis / smallest_subdivision1;
+		F32 dist_scale_units_2 = dist_grid_axis / smallest_subdivision2;
 		S32 ticks_from_scale_center_1 = lltrunc(dist_scale_units_1);
 		S32 ticks_from_scale_center_2 = lltrunc(dist_scale_units_2);
-		S32 max_ticks1 = llceil(max_point_on_scale_line / (mScaleSnapUnit1 / max_subdivisions) - dist_scale_units_1);
-		S32 max_ticks2 = llceil(max_point_on_scale_line / (mScaleSnapUnit2 / max_subdivisions) - dist_scale_units_2);
+		S32 max_ticks1 = llceil(max_point_on_scale_line / smallest_subdivision1 - dist_scale_units_1);
+		S32 max_ticks2 = llceil(max_point_on_scale_line / smallest_subdivision2 - dist_scale_units_2);
 		S32 start_tick = 0;
 		S32 stop_tick = 0;
 
@@ -1619,17 +1621,17 @@ void LLManipScale::renderSnapGuides(const LLBBox& bbox)
 			for (S32 i = start_tick; i <= stop_tick; i++)
 			{
 				F32 alpha = (1.f - (1.f *  ((F32)llabs(i) / (F32)num_ticks_per_side1)));
-				LLVector3 tick_pos = drag_point + (mScaleDir * (mScaleSnapUnit1 / max_subdivisions * (F32)i - grid_offset1));
+				LLVector3 tick_pos = drag_point + (mScaleDir * (smallest_subdivision1 * (F32)i - grid_offset1));
 
 				F32 cur_subdivisions = llclamp(getSubdivisionLevel(tick_pos, mScaleDir, mScaleSnapUnit1), sGridMinSubdivisionLevel, sGridMaxSubdivisionLevel);
 
-				if (fmodf((F32)(i + sub_div_offset_1), (max_subdivisions / cur_subdivisions)) != 0.f)
+				if (fmodf((F32)(i + sub_div_offset_1), (sGridMaxSubdivisionLevel / cur_subdivisions)) != 0.f)
 				{
 					continue;
 				}
 
 				F32 tick_scale = 1.f;
-				for (F32 division_level = max_subdivisions; division_level >= sGridMinSubdivisionLevel; division_level /= 2.f)
+				for (F32 division_level = sGridMaxSubdivisionLevel; division_level >= sGridMinSubdivisionLevel; division_level /= 2.f)
 				{
 					if (fmodf((F32)(i + sub_div_offset_1), division_level) == 0.f)
 					{
@@ -1652,17 +1654,17 @@ void LLManipScale::renderSnapGuides(const LLBBox& bbox)
 			for (S32 i = start_tick; i <= stop_tick; i++)
 			{
 				F32 alpha = (1.f - (1.f *  ((F32)llabs(i) / (F32)num_ticks_per_side2)));
-				LLVector3 tick_pos = drag_point + (mScaleDir * (mScaleSnapUnit2 / max_subdivisions * (F32)i - grid_offset2));
+				LLVector3 tick_pos = drag_point + (mScaleDir * (smallest_subdivision2 * (F32)i - grid_offset2));
 
 				F32 cur_subdivisions = llclamp(getSubdivisionLevel(tick_pos, mScaleDir, mScaleSnapUnit2), sGridMinSubdivisionLevel, sGridMaxSubdivisionLevel);
 
-				if (fmodf((F32)(i + sub_div_offset_2), (max_subdivisions / cur_subdivisions)) != 0.f)
+				if (fmodf((F32)(i + sub_div_offset_2), (sGridMaxSubdivisionLevel / cur_subdivisions)) != 0.f)
 				{
 					continue;
 				}
 
 				F32 tick_scale = 1.f;
-				for (F32 division_level = max_subdivisions; division_level >= sGridMinSubdivisionLevel; division_level /= 2.f)
+				for (F32 division_level = sGridMaxSubdivisionLevel; division_level >= sGridMinSubdivisionLevel; division_level /= 2.f)
 				{
 					if (fmodf((F32)(i + sub_div_offset_2), division_level) == 0.f)
 					{
@@ -1685,16 +1687,16 @@ void LLManipScale::renderSnapGuides(const LLBBox& bbox)
 		stop_tick = llmin(max_ticks1, num_ticks_per_side1);
 
 		F32 grid_resolution = mObjectSelection->getSelectType() == SELECT_TYPE_HUD ? 0.25f : llmax(gSavedSettings.getF32("GridResolution"), 0.001f);
-		S32 label_sub_div_offset_1 = llround(fmod(dist_grid_axis - grid_offset1, mScaleSnapUnit1  * 32.f) / (mScaleSnapUnit1 / max_subdivisions));
-		S32 label_sub_div_offset_2 = llround(fmod(dist_grid_axis - grid_offset2, mScaleSnapUnit2  * 32.f) / (mScaleSnapUnit2 / max_subdivisions));
+		S32 label_sub_div_offset_1 = llround(fmod(dist_grid_axis - grid_offset1, mScaleSnapUnit1  * 32.f) / smallest_subdivision1);
+		S32 label_sub_div_offset_2 = llround(fmod(dist_grid_axis - grid_offset2, mScaleSnapUnit2  * 32.f) / smallest_subdivision2);
 
 		for (S32 i = start_tick; i <= stop_tick; i++)
 		{
 			F32 tick_scale = 1.f;
 			F32 alpha = grid_alpha * (1.f - (0.5f *  ((F32)llabs(i) / (F32)num_ticks_per_side1)));
-			LLVector3 tick_pos = drag_point + (mScaleDir * (mScaleSnapUnit1 / max_subdivisions * (F32)i - grid_offset1));
+			LLVector3 tick_pos = drag_point + (mScaleDir * (smallest_subdivision1 * (F32)i - grid_offset1));
 
-			for (F32 division_level = max_subdivisions; division_level >= sGridMinSubdivisionLevel; division_level /= 2.f)
+			for (F32 division_level = sGridMaxSubdivisionLevel; division_level >= sGridMinSubdivisionLevel; division_level /= 2.f)
 			{
 				if (fmodf((F32)(i + label_sub_div_offset_1), division_level) == 0.f)
 				{
@@ -1703,7 +1705,7 @@ void LLManipScale::renderSnapGuides(const LLBBox& bbox)
 				tick_scale *= 0.7f;
 			}
 
-			if (fmodf((F32)(i + label_sub_div_offset_1), (max_subdivisions / llmin(sGridMaxSubdivisionLevel, getSubdivisionLevel(tick_pos, mScaleDir, mScaleSnapUnit1, tick_label_spacing)))) == 0.f)
+			if (fmodf((F32)(i + label_sub_div_offset_1), (sGridMaxSubdivisionLevel / llmin(sGridMaxSubdivisionLevel, getSubdivisionLevel(tick_pos, mScaleDir, mScaleSnapUnit1, tick_label_spacing)))) == 0.f)
 			{
 				LLVector3 text_origin = tick_pos + 
 					(mSnapGuideDir1 * mSnapRegimeOffset * (1.f + tick_scale));
@@ -1746,9 +1748,9 @@ void LLManipScale::renderSnapGuides(const LLBBox& bbox)
 			{
 				F32 tick_scale = 1.f;
 				F32 alpha = grid_alpha * (1.f - (0.5f *  ((F32)llabs(i) / (F32)num_ticks_per_side2)));
-				LLVector3 tick_pos = drag_point + (mScaleDir * (mScaleSnapUnit2 / max_subdivisions * (F32)i - grid_offset2));
+				LLVector3 tick_pos = drag_point + (mScaleDir * (smallest_subdivision2 * (F32)i - grid_offset2));
 
-				for (F32 division_level = max_subdivisions; division_level >= sGridMinSubdivisionLevel; division_level /= 2.f)
+				for (F32 division_level = sGridMaxSubdivisionLevel; division_level >= sGridMinSubdivisionLevel; division_level /= 2.f)
 				{
 					if (fmodf((F32)(i + label_sub_div_offset_2), division_level) == 0.f)
 					{
@@ -1757,7 +1759,7 @@ void LLManipScale::renderSnapGuides(const LLBBox& bbox)
 					tick_scale *= 0.7f;
 				}
 
-				if (fmodf((F32)(i + label_sub_div_offset_2), (max_subdivisions / llmin(max_subdivisions, getSubdivisionLevel(tick_pos, mScaleDir, mScaleSnapUnit2, tick_label_spacing)))) == 0.f)
+				if (fmodf((F32)(i + label_sub_div_offset_2), (sGridMaxSubdivisionLevel / llmin(sGridMaxSubdivisionLevel, getSubdivisionLevel(tick_pos, mScaleDir, mScaleSnapUnit2, tick_label_spacing)))) == 0.f)
 				{
 					LLVector3 text_origin = tick_pos + 
 						(mSnapGuideDir2 * mSnapRegimeOffset * (1.f + tick_scale));
-- 
cgit v1.2.3


From 199e65a6c5584dfcdd24d6885dd9b19bf0af953a Mon Sep 17 00:00:00 2001
From: Jonathan Yap <none@none>
Date: Mon, 24 Feb 2014 10:57:53 -0500
Subject: STORM-2015 Region restart sound alerts from all users on a STORM-1980
 enabled viewer play inworld - should be local only.

---
 indra/newview/llviewermessage.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'indra')

diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp
index 267aa9532c..d1524b74cd 100755
--- a/indra/newview/llviewermessage.cpp
+++ b/indra/newview/llviewermessage.cpp
@@ -5985,7 +5985,7 @@ bool attempt_standard_notification(LLMessageSystem* msgsystem)
 				}
 			}
 
-			send_sound_trigger(LLUUID(gSavedSettings.getString("UISndRestart")), 1.0f);
+			make_ui_sound("UISndRestart");
 		}
 
 		LLNotificationsUtil::add(notificationID, llsdBlock);
-- 
cgit v1.2.3


From 057544757c2d713cd8bdc385fc6ea4aeac24b380 Mon Sep 17 00:00:00 2001
From: Oz Linden <oz@lindenlab.com>
Date: Tue, 25 Feb 2014 14:14:21 -0500
Subject: keywords_lsl_default.xml updates from the simulator tree

---
 .../newview/app_settings/keywords_lsl_default.xml  | 3569 ++++++++++----------
 1 file changed, 1801 insertions(+), 1768 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/app_settings/keywords_lsl_default.xml b/indra/newview/app_settings/keywords_lsl_default.xml
index 7bdd63e79d..83801a7e1e 100755
--- a/indra/newview/app_settings/keywords_lsl_default.xml
+++ b/indra/newview/app_settings/keywords_lsl_default.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><?xml-model href="llsd-lsl-syntax.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
+<?xml version="1.0" encoding="UTF-8"?>
 <llsd>
    <map>
       <key>controls</key>
@@ -6,27 +6,27 @@
          <key>default</key>
          <map>
             <key>tooltip</key>
-            <string>All scripts must have a default state, which is the first state entered when the script starts.</string>
+            <string>All scripts must have a default state, which is the first state entered when the script starts.\nIf another state is defined before the default state, the compiler will report a syntax error.</string>
          </map>
          <key>do</key>
          <map>
             <key>tooltip</key>
-            <string>do / while loop</string>
+            <string>do / while loop\ndo {\n...\n} while (&lt;condition&gt;);</string>
          </map>
          <key>else</key>
          <map>
             <key>tooltip</key>
-            <string>if / else block</string>
+            <string>if / else block\nif (&lt;condition&gt;) {\n...\n[} else [if (&lt;condition&gt;) {\n...]]\n}</string>
          </map>
          <key>for</key>
          <map>
             <key>tooltip</key>
-            <string>for loop</string>
+            <string>for loop\nfor (&lt;initialiser&gt;; &lt;condition&gt;; &lt;post-iteration-statement&gt;)\n{ ...\n}</string>
          </map>
          <key>if</key>
          <map>
             <key>tooltip</key>
-            <string>if / else block</string>
+            <string>if / else block\nif (&lt;condition&gt;) {\n...\n[} else [if (&lt;condition&gt;) {\n...]]\n}</string>
          </map>
          <key>jump</key>
          <map>
@@ -36,7 +36,7 @@
          <key>return</key>
          <map>
             <key>tooltip</key>
-            <string>Leave current event or function.</string>
+            <string>Leave current event or function.\nreturn [&lt;variable&gt;];\nOptionally pass back a variable's value, from a function.</string>
          </map>
          <key>state</key>
          <map>
@@ -64,12 +64,12 @@
          <key>key</key>
          <map>
             <key>tooltip</key>
-            <string>A 128 bit unique identifier (UUID).</string>
+            <string>A 128 bit unique identifier (UUID).\nThe key is represented as hexidecimal characters (A-F and 0-9), grouped into sections (8,4,4,4,12 characters) and separated by hyphens (for a total of 36 characters). e.g. "A822FF2B-FF02-461D-B45D-DCD10A2DE0C2".</string>
          </map>
          <key>list</key>
          <map>
             <key>tooltip</key>
-            <string>A collection of other data types.</string>
+            <string>A collection of other data types.\nLists are signified by square brackets surrounding their elements; the elements inside are separated by commas. e.g. [0, 1, 2, 3, 4] or ["Yes", "No", "Perhaps"].</string>
          </map>
          <key>quaternion</key>
          <map>
@@ -79,17 +79,17 @@
          <key>rotation</key>
          <map>
             <key>tooltip</key>
-            <string>The rotation type is one of several ways to represent an orientation in 3D.</string>
+            <string>The rotation type is one of several ways to represent an orientation in 3D.\nIt is a mathematical object called a quaternion. You can think of a quaternion as four numbers (x, y, z, w), three of which represent the direction an object is facing and a fourth that represents the object's banking left or right around that direction.</string>
          </map>
          <key>string</key>
          <map>
             <key>tooltip</key>
-            <string>Text data.</string>
+            <string>Text data.\nThe editor accepts UTF-8 encoded text.</string>
          </map>
          <key>vector</key>
          <map>
             <key>tooltip</key>
-            <string>A vector is a data type that contains a set of three float values.</string>
+            <string>A vector is a data type that contains a set of three float values.\nVectors are used to represent colours (RGB), positions, and directions/velocities.</string>
          </map>
       </map>
       <key>constants</key>
@@ -1705,7 +1705,7 @@
             <key>value</key>
             <integer>6</integer>
             <key>tooltip</key>
-            <string>Allows enabling/disbling of the "Pragma: no-cache" header.</string>
+            <string>Allows enabling/disbling of the "Pragma: no-cache" header.\nUsage: [HTTP_PRAGMA_NO_CACHE, integer SendHeader]. When SendHeader is TRUE, the "Pragma: no-cache" header is sent by the script. This matches the default behavior. When SendHeader is FALSE, no "Pragma" header is sent by the script.</string>
          </map>
          <key>HTTP_VERBOSE_THROTTLE</key>
          <map>
@@ -1941,15 +1941,6 @@
             <key>tooltip</key>
             <string>For use with KFM_COMMAND.</string>
          </map>
-         <key>KFM_CMD_SET_MODE</key>
-         <map>
-            <key>type</key>
-            <string>integer</string>
-            <key>value</key>
-            <integer>3</integer>
-            <key>tooltip</key>
-            <string/>
-         </map>
          <key>KFM_CMD_STOP</key>
          <map>
             <key>type</key>
@@ -2326,7 +2317,7 @@
             <key>value</key>
             <integer>19</integer>
             <key>tooltip</key>
-            <string>Gets the attachment point to which the object is attached.</string>
+            <string>Gets the attachment point to which the object is attached.\nReturns 0 if the object is not an attachment (or is an avatar, etc).</string>
          </map>
          <key>OBJECT_CHARACTER_TIME</key>
          <map>
@@ -2479,7 +2470,7 @@
             <key>value</key>
             <integer>18</integer>
             <key>tooltip</key>
-            <string>Gets the id of the root prim of the object requested.</string>
+            <string>Gets the id of the root prim of the object requested.\nIf id is an avatar, return the id of the root prim of the linkset the avatar is sitting on (or the avatar's own id if the avatar is not sitting on an object within the region).</string>
          </map>
          <key>OBJECT_ROT</key>
          <map>
@@ -4289,7 +4280,7 @@
             <key>type</key>
             <string>integer</string>
             <key>value</key>
-            <integer>1</integer>
+            <integer>0</integer>
             <key>tooltip</key>
             <string/>
          </map>
@@ -4460,7 +4451,7 @@
             <key>type</key>
             <string>integer</string>
             <key>value</key>
-            <integer>1024</integer>
+            <string>0x400</string>
             <key>tooltip</key>
             <string/>
          </map>
@@ -5176,7 +5167,7 @@
             <key>value</key>
             <integer>0</integer>
             <key>tooltip</key>
-            <string>Returns the % of pathfinding characters skipped each frame, averaged over the last minute.</string>
+            <string>Returns the % of pathfinding characters skipped each frame, averaged over the last minute.\nThe returned value corresponds to the "Characters Updated" stat in the viewer's Statistics Bar.</string>
          </map>
          <key>SMOOTH</key>
          <map>
@@ -5203,7 +5194,7 @@
             <key>value</key>
             <integer>64</integer>
             <key>tooltip</key>
-            <string>Controls whether the object can be grabbed.</string>
+            <string>Controls whether the object can be grabbed.\nA grab is the default action when in third person, and is available as the hand tool in build mode. This is useful for physical objects that you don't want other people to be able to trivially disturb. The default is FALSE</string>
          </map>
          <key>STATUS_BLOCK_GRAB_OBJECT</key>
          <map>
@@ -5239,7 +5230,7 @@
             <key>value</key>
             <string>0x80</string>
             <key>tooltip</key>
-            <string>Controls whether the object is returned to the owners inventory if it wanders off the edge of the world.</string>
+            <string>Controls whether the object is returned to the owners inventory if it wanders off the edge of the world.\nIt is useful to set this status TRUE for things like bullets or rockets. The default is TRUE</string>
          </map>
          <key>STATUS_INTERNAL_ERROR</key>
          <map>
@@ -5293,7 +5284,7 @@
             <key>value</key>
             <string>0x10</string>
             <key>tooltip</key>
-            <string>Controls/indicates whether the object collides or not.</string>
+            <string>Controls/indicates whether the object collides or not.\nSetting the value to TRUE makes the object non-colliding with all objects. It is a good idea to use this for most objects that move or rotate, but are non-physical. It is also useful for simulating volumetric lighting. The default is FALSE.</string>
          </map>
          <key>STATUS_PHYSICS</key>
          <map>
@@ -5302,7 +5293,7 @@
             <key>value</key>
             <string>0x1</string>
             <key>tooltip</key>
-            <string>Controls/indicates whether the object moves physically.</string>
+            <string>Controls/indicates whether the object moves physically.\nThis controls the same flag that the UI check-box for Physical controls. The default is FALSE.</string>
          </map>
          <key>STATUS_RETURN_AT_EDGE</key>
          <map>
@@ -5617,7 +5608,7 @@
             <key>value</key>
             <integer>32</integer>
             <key>tooltip</key>
-            <string>A slider between minimum (0.0) and maximum (1.0) deflection of angular orientation. That is, it's a simple scalar for modulating the strength of angular deflection such that the vehicles preferred axis of motion points toward its real velocity.</string>
+            <string>A slider between minimum (0.0) and maximum (1.0) deflection of angular orientation. That is, its a simple scalar for modulating the strength of angular deflection such that the vehicles preferred axis of motion points toward its real velocity.</string>
          </map>
          <key>VEHICLE_ANGULAR_DEFLECTION_TIMESCALE</key>
          <map>
@@ -6021,28 +6012,28 @@
                <map>
                   <key>TargetNumber</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>TargetRotation</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>rotation</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>CurrentRotation</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>rotation</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -6056,28 +6047,28 @@
                <map>
                   <key>TargetNumber</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>TargetPosition</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>CurrentPosition</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -6091,10 +6082,10 @@
                <map>
                   <key>AvatarID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -6108,10 +6099,10 @@
                <map>
                   <key>Changed</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -6125,10 +6116,10 @@
                <map>
                   <key>NumberOfCollisions</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -6143,10 +6134,10 @@
                <map>
                   <key>NumberOfCollisions</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -6161,10 +6152,10 @@
                <map>
                   <key>NumberOfCollisions</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -6179,28 +6170,28 @@
                <map>
                   <key>AvatarID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Levels</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Edges</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -6215,19 +6206,19 @@
                <map>
                   <key>RequestID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Data</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -6242,46 +6233,46 @@
                <map>
                   <key>Time</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Address</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Subject</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Body</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>NumberRemaining</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -6296,28 +6287,28 @@
                <map>
                   <key>HTTPRequestID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>HTTPMethod</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Body</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -6331,37 +6322,37 @@
                <map>
                   <key>HTTPRequestID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Status</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Metadata</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Body</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -6375,10 +6366,10 @@
                <map>
                   <key>Position</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -6392,10 +6383,10 @@
                <map>
                   <key>Position</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -6409,10 +6400,10 @@
                <map>
                   <key>Position</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -6426,37 +6417,37 @@
                <map>
                   <key>SendersLink</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Value</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Text</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>ID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -6470,37 +6461,37 @@
                <map>
                   <key>Channel</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Name</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>ID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Text</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -6515,19 +6506,19 @@
                <map>
                   <key>Payer</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Amount</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -6576,10 +6567,10 @@
                <map>
                   <key>RezzedObjectsID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -6593,10 +6584,10 @@
                <map>
                   <key>StartParameter</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -6610,19 +6601,19 @@
                <map>
                   <key>Type</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Reserved</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -6636,55 +6627,55 @@
                <map>
                   <key>EventType</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>ChannelID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>MessageID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Sender</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Data</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Data</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -6698,10 +6689,10 @@
                <map>
                   <key>PermissionFlags</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -6716,10 +6707,10 @@
                <map>
                   <key>NumberDetected</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -6755,10 +6746,10 @@
                <map>
                   <key>NumberOfTouches</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -6774,10 +6765,10 @@
                <map>
                   <key>NumberOfTouches</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -6792,10 +6783,10 @@
                <map>
                   <key>NumberOfTouches</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -6810,28 +6801,28 @@
                <map>
                   <key>RequestID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Success</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Message</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -6854,10 +6845,10 @@
                <map>
                   <key>Value</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>An integer value.</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>An integer value.</string>
                   </map>
                </map>
             </array>
@@ -6877,10 +6868,10 @@
                <map>
                   <key>Value</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>A floating-point value.</string>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string>A floating-point value.</string>
                   </map>
                </map>
             </array>
@@ -6900,24 +6891,24 @@
                <map>
                   <key>ID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Agent UUID to add to ban-list.</string>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string>Agent UUID to add to ban-list.</string>
                   </map>
                </map>
                <map>
                   <key>Hours</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Period, in hours, to ban the avatar for.</string>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string>Period, in hours, to ban the avatar for.</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Add avatar ID to the parcel ban list for the specified number of Hours.</string>
+            <string>Add avatar ID to the parcel ban list for the specified number of Hours.\nA value of 0 for Hours will add the agent indefinitely.\nThe smallest value that Hours will accept is 0.01; anything smaller will be seen as 0.\nWhen values that small are used, it seems the function bans in approximately 30 second increments (Probably 36 second increments, as 0.01 of an hour is 36 seconds).\nResidents teleporting to a parcel where they are banned will be redirected to a neighbouring parcel.</string>
          </map>
          <key>llAddToLandPassList</key>
          <map>
@@ -6932,19 +6923,19 @@
                <map>
                   <key>ID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Agent UUID to add to pass-list.</string>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string>Agent UUID to add to pass-list.</string>
                   </map>
                </map>
                <map>
                   <key>Hours</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Period, in hours, to allow the avatar for.</string>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string>Period, in hours, to allow the avatar for.</string>
                   </map>
                </map>
             </array>
@@ -6964,10 +6955,10 @@
                <map>
                   <key>Volume</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>The volume to set.</string>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string>The volume to set.</string>
                   </map>
                </map>
             </array>
@@ -6987,10 +6978,10 @@
                <map>
                   <key>Flag</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Boolean, If TRUE allows anyone to drop inventory on prim, FALSE revokes.</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Boolean, If TRUE allows anyone to drop inventory on prim, FALSE revokes.</string>
                   </map>
                </map>
             </array>
@@ -7010,19 +7001,19 @@
                <map>
                   <key>Rot1</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>First rotation.</string>
                      <key>type</key>
                      <string>rotation</string>
+                     <key>tooltip</key>
+                     <string>First rotation.</string>
                   </map>
                </map>
                <map>
                   <key>Rot2</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Second rotation.</string>
                      <key>type</key>
                      <string>rotation</string>
+                     <key>tooltip</key>
+                     <string>Second rotation.</string>
                   </map>
                </map>
             </array>
@@ -7042,19 +7033,19 @@
                <map>
                   <key>Force</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Amount of impulse force to apply.</string>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string>Amount of impulse force to apply.</string>
                   </map>
                </map>
                <map>
                   <key>Local</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Boolean, if TRUE, force is treated as a local directional vector instead of region directional vector.</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Boolean, if TRUE, force is treated as a local directional vector instead of region directional vector.</string>
                   </map>
                </map>
             </array>
@@ -7074,19 +7065,19 @@
                <map>
                   <key>Force</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Amount of impulse force to apply.</string>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string>Amount of impulse force to apply.</string>
                   </map>
                </map>
                <map>
                   <key>Local</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Boolean, if TRUE, uses local axis, if FALSE, uses region axis.</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Boolean, if TRUE, uses local axis, if FALSE, uses region axis.</string>
                   </map>
                </map>
             </array>
@@ -7106,10 +7097,10 @@
                <map>
                   <key>Value</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>A floating-point value.</string>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string>A floating-point value.</string>
                   </map>
                </map>
             </array>
@@ -7129,19 +7120,19 @@
                <map>
                   <key>y</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>A floating-point value.</string>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string>A floating-point value.</string>
                   </map>
                </map>
                <map>
                   <key>x</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>A floating-point value.</string>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string>A floating-point value.</string>
                   </map>
                </map>
             </array>
@@ -7161,10 +7152,10 @@
                <map>
                   <key>AttachmentPoint</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -7184,10 +7175,10 @@
                <map>
                   <key>AttachPoint</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Valid attachment poit or ATTACH_* constant.</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Valid attachment point or ATTACH_* constant.</string>
                   </map>
                </map>
             </array>
@@ -7207,15 +7198,15 @@
                <map>
                   <key>LinkNumber</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag.</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag.</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>If an avatar is sitting on the link's sit target, return the avatar's key, NULL_KEY otherwise.</string>
+            <string>If an avatar is sitting on the link's sit target, return the avatar's key, NULL_KEY otherwise.\nReturns a key that is the UUID of the user seated on the specified link's prim.</string>
          </map>
          <key>llAvatarOnSitTarget</key>
          <map>
@@ -7228,7 +7219,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>If an avatar is seated on the sit target, returns the avatar's key, otherwise NULL_KEY.</string>
+            <string>If an avatar is seated on the sit target, returns the avatar's key, otherwise NULL_KEY.\nThis only will detect avatars sitting on sit targets defined with llSitTarget.</string>
          </map>
          <key>llAxes2Rot</key>
          <map>
@@ -7243,28 +7234,28 @@
                <map>
                   <key>Forward</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Forward/Back part of rotation.</string>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string>Forward/Back part of rotation.</string>
                   </map>
                </map>
                <map>
                   <key>Left</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Left/Right part of rotation.</string>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string>Left/Right part of rotation.</string>
                   </map>
                </map>
                <map>
                   <key>Up</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Up/Down part of rotation.</string>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string>Up/Down part of rotation.</string>
                   </map>
                </map>
             </array>
@@ -7284,19 +7275,19 @@
                <map>
                   <key>Axis</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Axis.</string>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string>Axis.</string>
                   </map>
                </map>
                <map>
                   <key>Angle</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Angle in radians.</string>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string>Angle in radians.</string>
                   </map>
                </map>
             </array>
@@ -7316,15 +7307,15 @@
                <map>
                   <key>Text</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns an integer that is the Text, Base64 decoded as a big endian integer.</string>
+            <string>Returns an integer that is the Text, Base64 decoded as a big endian integer.\nReturns zero if Text is longer then 8 characters. If Text contains fewer then 6 characters, the return value is unpredictable.</string>
          </map>
          <key>llBase64ToString</key>
          <map>
@@ -7339,10 +7330,10 @@
                <map>
                   <key>Text</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -7375,10 +7366,10 @@
                <map>
                   <key>LinkNumber</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -7398,33 +7389,33 @@
                <map>
                   <key>Start</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>End</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Options</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Casts a ray into the physics world from 'start' to 'end' and returns data according to details in Options.</string>
+            <string>Casts a ray into the physics world from 'start' to 'end' and returns data according to details in Options.\nReports collision data for intersections with objects.\nReturn value: [UUID_1, {link_number_1}, hit_position_1, {hit_normal_1}, UUID_2, {link_number_2}, hit_position_2, {hit_normal_2}, ... , status_code] where {} indicates optional data.</string>
          </map>
          <key>llCeil</key>
          <map>
@@ -7439,10 +7430,10 @@
                <map>
                   <key>Value</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -7475,24 +7466,24 @@
                <map>
                   <key>Link</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Face</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Clears (deletes) the media and all parameters from the given Face on the linked prim.</string>
+            <string>Clears (deletes) the media and all parameters from the given Face on the linked prim.\nReturns an integer that is a STATUS_* flag, which details the success/failure of the operation.</string>
          </map>
          <key>llClearPrimMedia</key>
          <map>
@@ -7507,15 +7498,15 @@
                <map>
                   <key>Face</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Number of side to clear.</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Number of side to clear.</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Clears (deletes) the media and all parameters from the given Face.</string>
+            <string>Clears (deletes) the media and all parameters from the given Face.\nReturns an integer that is a STATUS_* flag which details the success/failure of the operation.</string>
          </map>
          <key>llCloseRemoteDataChannel</key>
          <map>
@@ -7530,10 +7521,10 @@
                <map>
                   <key>ChannelID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -7553,10 +7544,10 @@
                <map>
                   <key>Offset</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -7576,33 +7567,33 @@
                <map>
                   <key>ObjectName</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>ObjectID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Accept</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>If TRUE, only accept collisions with ObjectName name AND ObjectID (either is optional), otherwise with objects not ObjectName AND ObjectID.</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>If TRUE, only accept collisions with ObjectName name AND ObjectID (either is optional), otherwise with objects not ObjectName AND ObjectID.</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>If Accept == TRUE, only accept collisions with objects Name and ID, otherwise with objects not Name or ID.</string>
+            <string>Specify an empty string or NULL_KEY for Accept, to not filter on the corresponding parameter.</string>
          </map>
          <key>llCollisionSound</key>
          <map>
@@ -7617,24 +7608,24 @@
                <map>
                   <key>ImpactSound</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>ImpactVolume</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Suppress default collision sounds, replace default impact sounds with ImpactSound.</string>
+            <string>Suppress default collision sounds, replace default impact sounds with ImpactSound.\nThe ImpactSound must be in the object inventory.\nSupply an empty string to suppress collision sounds.</string>
          </map>
          <key>llCollisionSprite</key>
          <map>
@@ -7649,10 +7640,10 @@
                <map>
                   <key>ImpactSprite</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -7672,10 +7663,10 @@
                <map>
                   <key>Theta</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -7695,15 +7686,15 @@
                <map>
                   <key>Options</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Convert link-set to AI/Physics character.</string>
+            <string>Convert link-set to AI/Physics character.\nCreates a path-finding entity, known as a "character", from the object containing the script. Required to activate use of path-finding functions.\nOptions is a list of key/value pairs.</string>
          </map>
          <key>llCreateLink</key>
          <map>
@@ -7718,24 +7709,24 @@
                <map>
                   <key>TargetPrim</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Object UUID that is in the same region.</string>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string>Object UUID that is in the same region.</string>
                   </map>
                </map>
                <map>
                   <key>Parent</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>If FALSE, then TargetPrim becomes the root. If TRUE, then the script's object becomes the root.</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>If FALSE, then TargetPrim becomes the root. If TRUE, then the script's object becomes the root.</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Attempt to link the object the script is in, to target (requires permission PERMISSION_CHANGE_LINKS be set).</string>
+            <string>Attempt to link the object the script is in, to target (requires permission PERMISSION_CHANGE_LINKS be set).\nRequires permission PERMISSION_CHANGE_LINKS be set.</string>
          </map>
          <key>llCSV2List</key>
          <map>
@@ -7750,10 +7741,10 @@
                <map>
                   <key>Text</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -7771,7 +7762,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Convert link-set from AI/Physics character to Physics object.</string>
+            <string>Convert link-set from AI/Physics character to Physics object.\nConvert the current link-set back to a standard object, removing all path-finding properties.</string>
          </map>
          <key>llDeleteSubList</key>
          <map>
@@ -7786,33 +7777,33 @@
                <map>
                   <key>Source</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Start</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>End</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Removes the slice from start to end and returns the remainder of the list.</string>
+            <string>Removes the slice from start to end and returns the remainder of the list.\nRemove a slice from the list and return the remainder, start and end are inclusive.\nUsing negative numbers for start and/or end causes the index to count backwards from the length of the list, so 0, -1 would delete the entire list.\nIf Start is larger than End the list deleted is the exclusion of the entries; so 6, 4 would delete the entire list except for the 5th. list entry.</string>
          </map>
          <key>llDeleteSubString</key>
          <map>
@@ -7827,33 +7818,33 @@
                <map>
                   <key>Source</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Start</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>End</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Removes the indicated sub-string and returns the result.</string>
+            <string>Removes the indicated sub-string and returns the result.\nStart and End are inclusive.\nUsing negative numbers for Start and/or End causes the index to count backwards from the length of the string, so 0, -1 would delete the entire string.\nIf Start is larger than End, the sub-string is the exclusion of the entries; so 6, 4 would delete the entire string except for the 5th. character.</string>
          </map>
          <key>llDetachFromAvatar</key>
          <map>
@@ -7881,15 +7872,15 @@
                <map>
                   <key>Number</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the grab offset of a user touching the object.</string>
+            <string>Returns the grab offset of a user touching the object.\nReturns &lt;0.0, 0.0, 0.0&gt; if Number is not a valid object.</string>
          </map>
          <key>llDetectedGroup</key>
          <map>
@@ -7904,15 +7895,15 @@
                <map>
                   <key>Number</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns TRUE if detected object or agent Number has the same user group active as this object.</string>
+            <string>Returns TRUE if detected object or agent Number has the same user group active as this object.\nIt will return FALSE if the object or agent is in the group, but the group is not active.</string>
          </map>
          <key>llDetectedKey</key>
          <map>
@@ -7927,15 +7918,15 @@
                <map>
                   <key>Number</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the key of detected object or avatar number.</string>
+            <string>Returns the key of detected object or avatar number.\nReturns NULL_KEY if Number is not a valid index.</string>
          </map>
          <key>llDetectedLinkNumber</key>
          <map>
@@ -7950,15 +7941,15 @@
                <map>
                   <key>Number</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the link position of the triggered event for touches and collisions only.</string>
+            <string>Returns the link position of the triggered event for touches and collisions only.\n0 for a non-linked object, 1 for the root of a linked object, 2 for the first child, etc.</string>
          </map>
          <key>llDetectedName</key>
          <map>
@@ -7973,15 +7964,15 @@
                <map>
                   <key>Number</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the name of detected object or avatar number.</string>
+            <string>Returns the name of detected object or avatar number.\nReturns the name of detected object number.\nReturns empty string if Number is not a valid index.</string>
          </map>
          <key>llDetectedOwner</key>
          <map>
@@ -7996,15 +7987,15 @@
                <map>
                   <key>Number</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the key of detected object's owner.</string>
+            <string>Returns the key of detected object's owner.\nReturns invalid key if Number is not a valid index.</string>
          </map>
          <key>llDetectedPos</key>
          <map>
@@ -8019,15 +8010,15 @@
                <map>
                   <key>Number</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the position of detected object or avatar number.</string>
+            <string>Returns the position of detected object or avatar number.\nReturns &lt;0.0, 0.0, 0.0&gt; if Number is not a valid index.</string>
          </map>
          <key>llDetectedRot</key>
          <map>
@@ -8042,15 +8033,15 @@
                <map>
                   <key>Number</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the rotation of detected object or avatar number.</string>
+            <string>Returns the rotation of detected object or avatar number.\nReturns &lt;0.0, 0.0, 0.0, 1.0&gt; if Number is not a valid offset.</string>
          </map>
          <key>llDetectedTouchBinormal</key>
          <map>
@@ -8065,15 +8056,15 @@
                <map>
                   <key>Index</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Index of detection information</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Index of detection information</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the surface bi-normal for a triggered touch event.</string>
+            <string>Returns the surface bi-normal for a triggered touch event.\nReturns a vector that is the surface bi-normal (tangent to the surface) where the touch event was triggered.</string>
          </map>
          <key>llDetectedTouchFace</key>
          <map>
@@ -8088,10 +8079,10 @@
                <map>
                   <key>Index</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Index of detection information</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Index of detection information</string>
                   </map>
                </map>
             </array>
@@ -8111,15 +8102,15 @@
                <map>
                   <key>Index</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Index of detection information</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Index of detection information</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the surface normal for a triggered touch event.</string>
+            <string>Returns the surface normal for a triggered touch event.\nReturns a vector that is the surface normal (perpendicular to the surface) where the touch event was triggered.</string>
          </map>
          <key>llDetectedTouchPos</key>
          <map>
@@ -8134,15 +8125,15 @@
                <map>
                   <key>Index</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Index of detected information</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Index of detected information</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the position, in region coordinates, where the object was touched in a triggered touch event.</string>
+            <string>Returns the position, in region coordinates, where the object was touched in a triggered touch event.\nUnless it is a HUD, in which case it returns the position relative to the attach point.</string>
          </map>
          <key>llDetectedTouchST</key>
          <map>
@@ -8157,15 +8148,15 @@
                <map>
                   <key>Index</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Index of detection information</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Index of detection information</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns a vector that is the surface coordinates where the prim was touched.</string>
+            <string>Returns a vector that is the surface coordinates where the prim was touched.\nThe X and Y vector positions contain the horizontal (S) and vertical (T) face coordinates respectively.\nEach component is in the interval [0.0, 1.0].\nTOUCH_INVALID_TEXCOORD is returned if the surface coordinates cannot be determined (e.g. when the viewer does not support this function).</string>
          </map>
          <key>llDetectedTouchUV</key>
          <map>
@@ -8180,15 +8171,15 @@
                <map>
                   <key>Index</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Index of detection information</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Index of detection information</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns a vector that is the texture coordinates for where the prim was touched.</string>
+            <string>Returns a vector that is the texture coordinates for where the prim was touched.\nThe X and Y vector positions contain the U and V face coordinates respectively.\nTOUCH_INVALID_TEXCOORD is returned if the touch UV coordinates cannot be determined (e.g. when the viewer does not support this function).</string>
          </map>
          <key>llDetectedType</key>
          <map>
@@ -8203,15 +8194,15 @@
                <map>
                   <key>Number</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the type (AGENT, ACTIVE, PASSIVE, SCRIPTED) of detected object.</string>
+            <string>Returns the type (AGENT, ACTIVE, PASSIVE, SCRIPTED) of detected object.\nReturns 0 if number is not a valid index.\nNote that number is a bit-field, so comparisons need to be a bitwise checked. e.g.:\ninteger iType = llDetectedType(0);\n{\n	// ...do stuff with the agent\n}</string>
          </map>
          <key>llDetectedVel</key>
          <map>
@@ -8226,15 +8217,15 @@
                <map>
                   <key>Number</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the velocity of the detected object Number.</string>
+            <string>Returns the velocity of the detected object Number.\nReturns&lt;0.0, 0.0, 0.0&gt; if Number is not a valid offset.</string>
          </map>
          <key>llDialog</key>
          <map>
@@ -8249,44 +8240,51 @@
                <map>
                   <key>AvatarID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Text</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Buttons</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Channel</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
             <string>Shows a dialog box on the avatar's screen with the message.\n
 				Up to 12 strings in the list form buttons.\n
-				If a button is clicked, the name is chatted on Channel.</string>
+				If a button is clicked, the name is chatted on Channel.\nOpens a "notify box" in the given avatars screen displaying the message.\n
+			Up to twelve buttons can be specified in a list of strings. When the user clicks a button, the name of the button is said on the specified channel.\n
+			Channels work just like llSay(), so channel 0 can be heard by everyone.\n
+			The chat originates at the object's position, not the avatar's position, even though it is said as the avatar (uses avatar's UUID and Name etc.).\n
+			Examples:\n
+			llDialog(who, "Are you a boy or a girl?", [ "Boy", "Girl" ], -4913);\n
+			llDialog(who, "This shows only an OK button.", [], -192);\n
+			llDialog(who, "This chats so you can 'hear' it.", ["Hooray"], 0);</string>
          </map>
          <key>llDie</key>
          <map>
@@ -8299,7 +8297,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Deletes the object.</string>
+            <string>Delete the object which holds the script.</string>
          </map>
          <key>llDumpList2String</key>
          <map>
@@ -8314,24 +8312,24 @@
                <map>
                   <key>Source</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Separator</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the list as a single string, using Separator between the entries.</string>
+            <string>Returns the list as a single string, using Separator between the entries.\nWrite the list out as a single string, using Separator between values.</string>
          </map>
          <key>llEdgeOfWorld</key>
          <map>
@@ -8346,24 +8344,24 @@
                <map>
                   <key>Position</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Direction</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Checks to see whether the border hit by Direction from Position is the edge of the world (has no neighboring region).</string>
+            <string>Checks to see whether the border hit by Direction from Position is the edge of the world (has no neighboring region).\nReturns TRUE if the line along Direction from Position hits the edge of the world in the current simulator, returns FALSE if that edge crosses into another simulator.</string>
          </map>
          <key>llEjectFromLand</key>
          <map>
@@ -8378,15 +8376,15 @@
                <map>
                   <key>AvatarID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Ejects AvatarID from land that you own.</string>
+            <string>Ejects AvatarID from land that you own.\nEjects AvatarID from land that the object owner (group or resident) owns.</string>
          </map>
          <key>llEmail</key>
          <map>
@@ -8401,33 +8399,33 @@
                <map>
                   <key>Address</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Subject</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Text</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Sends email to Address with Subject and Message.</string>
+            <string>Sends email to Address with Subject and Message.\nSends an email to Address with Subject and Message.</string>
          </map>
          <key>llEscapeURL</key>
          <map>
@@ -8442,15 +8440,16 @@
                <map>
                   <key>URL</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns an escaped/encoded version of url, replacing spaces with %20 etc.</string>
+            <string>Returns an escaped/encoded version of url, replacing spaces with %20 etc.\nReturns the string that is the URL-escaped version of URL (replacing spaces with %20, etc.).\n
+			This function returns the UTF-8 encoded escape codes for selected characters.</string>
          </map>
          <key>llEuler2Rot</key>
          <map>
@@ -8465,15 +8464,15 @@
                <map>
                   <key>Vector</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the rotation representation of the Euler angles.</string>
+            <string>Returns the rotation representation of the Euler angles.\nReturns the rotation represented by the Euler Angle.</string>
          </map>
          <key>llEvade</key>
          <map>
@@ -8488,24 +8487,24 @@
                <map>
                   <key>TargetID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Agent or object to evade.</string>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string>Agent or object to evade.</string>
                   </map>
                </map>
                <map>
                   <key>Options</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>No options yet.</string>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string>No options yet.</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Evade a specified target.</string>
+            <string>Evade a specified target.\nCharacters will (roughly) try to hide from their pursuers if there is a good hiding spot along their fleeing path. Hiding means no direct line of sight from the head of the character (centre of the top of its physics bounding box) to the head of its pursuer and no direct path between the two on the navigation-mesh.</string>
          </map>
          <key>llExecCharacterCmd</key>
          <map>
@@ -8520,24 +8519,24 @@
                <map>
                   <key>Command</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Command to send.</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Command to send.</string>
                   </map>
                </map>
                <map>
                   <key>Options</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Height for CHARACTER_CMD_JUMP.</string>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string>Height for CHARACTER_CMD_JUMP.</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Execute a character command.</string>
+            <string>Execute a character command.\nSend a command to the path system.\nCurrently only supports stopping the current path-finding operation or causing the character to jump.</string>
          </map>
          <key>llFabs</key>
          <map>
@@ -8552,15 +8551,15 @@
                <map>
                   <key>Value</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the positive version of Value.</string>
+            <string>Returns the positive version of Value.\nReturns the absolute value of Value.</string>
          </map>
          <key>llFleeFrom</key>
          <map>
@@ -8575,33 +8574,33 @@
                <map>
                   <key>Source</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Global coordinate from which to flee.</string>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string>Global coordinate from which to flee.</string>
                   </map>
                </map>
                <map>
                   <key>Distance</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Distance in meters to flee from the source.</string>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string>Distance in meters to flee from the source.</string>
                   </map>
                </map>
                <map>
                   <key>Options</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>No options available at this time.</string>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string>No options available at this time.</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Flee from a point.</string>
+            <string>Flee from a point.\nDirects a character (llCreateCharacter) to keep away from a defined position in the region or adjacent regions.</string>
          </map>
          <key>llFloor</key>
          <map>
@@ -8616,10 +8615,10 @@
                <map>
                   <key>Value</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -8639,16 +8638,15 @@
                <map>
                   <key>Enable</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Boolean, if TRUE when an avatar sits on the prim, the avatar will be forced into mouse-look mode.
-				FALSE is the default setting and will undo a previously set TRUE or do nothing.</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Boolean, if TRUE when an avatar sits on the prim, the avatar will be forced into mouse-look mode.\nFALSE is the default setting and will undo a previously set TRUE or do nothing.</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>If Enable is TRUE any avatar that sits on this object is forced into mouse-look mode.</string>
+            <string>If Enable is TRUE any avatar that sits on this object is forced into mouse-look mode.\nAfter calling this function with Enable set to TRUE, any agent sitting down on the prim will be forced into mouse-look.\nJust like llSitTarget, this changes a permanent property of the prim (not the object) and needs to be reset by calling this function with Enable set to FALSE in order to disable it.</string>
          </map>
          <key>llFrand</key>
          <map>
@@ -8663,15 +8661,15 @@
                <map>
                   <key>Magnitude</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns a pseudo random number in the range [0, Magnitude] or [Magnitude, 0].</string>
+            <string>Returns a pseudo random number in the range [0, Magnitude] or [Magnitude, 0].\nReturns a pseudo-random number between [0, Magnitude].</string>
          </map>
          <key>llGenerateKey</key>
          <map>
@@ -8684,7 +8682,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Generates a key (SHA-1 hash) using UUID generation to create a unique key.</string>
+            <string>Generates a key (SHA-1 hash) using UUID generation to create a unique key.\nAs the UUID produced is versioned, it should never return a value of NULL_KEY.\nThe specific UUID version is an implementation detail that has changed in the past and may change again in the future. Do not depend upon the UUID that is returned to be version 5 SHA-1 hash.</string>
          </map>
          <key>llGetAccel</key>
          <map>
@@ -8697,7 +8695,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Returns the acceleration of the object relative to the region's axes.</string>
+            <string>Returns the acceleration of the object relative to the region's axes.\nGets the acceleration of the object.</string>
          </map>
          <key>llGetAgentInfo</key>
          <map>
@@ -8712,16 +8710,16 @@
                <map>
                   <key>AvatarID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
             <string>Returns an integer bit-field containing the agent information about id.\n
-				Returns AGENT_FLYING, AGENT_ATTACHMENTS, AGENT_SCRIPTED, AGENT_SITTING, AGENT_ON_OBJECT, AGENT_MOUSELOOK, AGENT_AWAY, AGENT_BUSY, AGENT_TYPING, AGENT_CROUCHING, AGENT_ALWAYS_RUN, AGENT_WALKING and/or AGENT_IN_AIR.</string>
+				Returns AGENT_FLYING, AGENT_ATTACHMENTS, AGENT_SCRIPTED, AGENT_SITTING, AGENT_ON_OBJECT, AGENT_MOUSELOOK, AGENT_AWAY, AGENT_BUSY, AGENT_TYPING, AGENT_CROUCHING, AGENT_ALWAYS_RUN, AGENT_WALKING and/or AGENT_IN_AIR.\nReturns information about the given agent ID as a bit-field of agent info constants.</string>
          </map>
          <key>llGetAgentLanguage</key>
          <map>
@@ -8736,15 +8734,15 @@
                <map>
                   <key>AvatarID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the language code of the preferred interface language of the avatar.</string>
+            <string>Returns the language code of the preferred interface language of the avatar.\nReturns a string that is the language code of the preferred interface language of the resident.</string>
          </map>
          <key>llGetAgentList</key>
          <map>
@@ -8759,24 +8757,24 @@
                <map>
                   <key>Scope</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>The scope (region, parcel, parcel same owner) to return agents for.</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>The scope (region, parcel, parcel same owner) to return agents for.</string>
                   </map>
                </map>
                <map>
                   <key>Options</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>List of options to apply. Current unused.</string>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string>List of options to apply. Current unused.</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Requests a list of agents currently in the region, limited by the scope parameter.</string>
+            <string>Requests a list of agents currently in the region, limited by the scope parameter.\nReturns a list [key UUID-0, key UUID-1, ..., key UUID-n] or [string error_msg] - returns avatar keys for all agents in the region limited to the area(s) specified by scope</string>
          </map>
          <key>llGetAgentSize</key>
          <map>
@@ -8791,15 +8789,15 @@
                <map>
                   <key>AvatarID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>If the avatar is in the same region, returns the size of the bounding box of the requested avatar by id, otherwise returns ZERO_VECTOR.</string>
+            <string>If the avatar is in the same region, returns the size of the bounding box of the requested avatar by id, otherwise returns ZERO_VECTOR.\nIf the agent is in the same region as the object, returns the size of the avatar.</string>
          </map>
          <key>llGetAlpha</key>
          <map>
@@ -8814,15 +8812,15 @@
                <map>
                   <key>Face</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the alpha value of Face.</string>
+            <string>Returns the alpha value of Face.\nReturns the 'alpha' of the given face. If face is ALL_SIDES the value returned is the mean average of all faces.</string>
          </map>
          <key>llGetAndResetTime</key>
          <map>
@@ -8835,7 +8833,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Returns the script time in seconds and then resets the script timer to zero.</string>
+            <string>Returns the script time in seconds and then resets the script timer to zero.\nGets the time in seconds since starting and resets the time to zero.</string>
          </map>
          <key>llGetAnimation</key>
          <map>
@@ -8850,15 +8848,15 @@
                <map>
                   <key>AvatarID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the name of the currently playing locomotion animation for the avatar id.</string>
+            <string>Returns the name of the currently playing locomotion animation for the avatar id.\nReturns the currently playing animation for the specified avatar ID.</string>
          </map>
          <key>llGetAnimationList</key>
          <map>
@@ -8873,15 +8871,15 @@
                <map>
                   <key>AvatarID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns a list of keys of playing animations for an avatar.</string>
+            <string>Returns a list of keys of playing animations for an avatar.\nReturns a list of keys of all playing animations for the specified avatar ID.</string>
          </map>
          <key>llGetAnimationOverride</key>
          <map>
@@ -8896,15 +8894,15 @@
                <map>
                   <key>AnimationState</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns a string that is the name of the animation that is used for the specified animation state</string>
+            <string>Returns a string that is the name of the animation that is used for the specified animation state\nTo use this function the script must obtain either the PERMISSION_OVERRIDE_ANIMATIONS or PERMISSION_TRIGGER_ANIMATION permission (automatically granted to attached objects).</string>
          </map>
          <key>llGetAttached</key>
          <map>
@@ -8917,7 +8915,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Returns the object's attachment point, or 0 if not attached.</string>
+            <string>Returns the object's attachment point, or 0 if not attached.\nReturns the object attachment point, or 0 if not attached.</string>
          </map>
          <key>llGetBoundingBox</key>
          <map>
@@ -8932,10 +8930,10 @@
                <map>
                   <key>ID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -8953,7 +8951,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Returns the current camera position for the agent the task has permissions for.</string>
+            <string>Returns the current camera position for the agent the task has permissions for.\nReturns the position of the camera, of the user that granted the script PERMISSION_TRACK_CAMERA. If no user has granted the permission, it returns ZERO_VECTOR.</string>
          </map>
          <key>llGetCameraRot</key>
          <map>
@@ -8966,7 +8964,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Returns the current camera orientation for the agent the task has permissions for.</string>
+            <string>Returns the current camera orientation for the agent the task has permissions for. If no user has granted the PERMISSION_TRACK_CAMERA permission, returns ZERO_ROTATION.</string>
          </map>
          <key>llGetCenterOfMass</key>
          <map>
@@ -8994,24 +8992,24 @@
                <map>
                   <key>Point</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>A point in region-local space.</string>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string>A point in region-local space.</string>
                   </map>
                </map>
                <map>
                   <key>Options</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>No options at this time.</string>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string>No options at this time.</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Get the closest navigable point to the point provided.</string>
+            <string>Get the closest navigable point to the point provided.\nThe function accepts a point in region-local space (like all the other path-finding methods) and returns either an empty list or a list containing a single vector which is the closest point on the navigation-mesh to the point provided.</string>
          </map>
          <key>llGetColor</key>
          <map>
@@ -9026,15 +9024,15 @@
                <map>
                   <key>Face</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the color on Face.</string>
+            <string>Returns the color on Face.\nReturns the colour of Face as a vector of red, green, and blue values between 0 and 1. If face is ALL_SIDES the colour returned is the mean average of each channel.</string>
          </map>
          <key>llGetCreator</key>
          <map>
@@ -9047,7 +9045,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Returns a key for the creator of the prim.</string>
+            <string>Returns a key for the creator of the prim.\nReturns the key of the object's original creator. Similar to llGetOwner.</string>
          </map>
          <key>llGetDate</key>
          <map>
@@ -9060,7 +9058,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Returns the current date in the UTC time zone in the format YYYY-MM-DD.</string>
+            <string>Returns the current date in the UTC time zone in the format YYYY-MM-DD.\nReturns the current UTC date as YYYY-MM-DD.</string>
          </map>
          <key>llGetDisplayName</key>
          <map>
@@ -9075,15 +9073,15 @@
                <map>
                   <key>AvatarID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Avatar UUID that is in the same region, or is otherwise known to the region.</string>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string>Avatar UUID that is in the same region, or is otherwise known to the region.</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the name of an avatar, if the avatar is in the current region, and the name has been cached, otherwise the same as llGetUsername.	Use llRequestDisplayName if you absolutely must have the display name.</string>
+            <string>Returns the display name of an avatar, if the avatar is connected to the current region, or if the name has been cached.  Otherwise, returns an empty string. Use llRequestDisplayName if the avatar may be absent from the region.</string>
          </map>
          <key>llGetEnergy</key>
          <map>
@@ -9111,10 +9109,10 @@
                <map>
                   <key>DataRequest</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>The type of data to request. Any other string will cause an empty string to be returned.</string>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string>The type of data to request. Any other string will cause an empty string to be returned.</string>
                   </map>
                </map>
             </array>
@@ -9132,7 +9130,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Returns the force (if the script is physical).</string>
+            <string>Returns the force (if the script is physical).\nReturns the current force if the script is physical.</string>
          </map>
          <key>llGetFreeMemory</key>
          <map>
@@ -9145,7 +9143,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Returns the number of free bytes of memory the script can use.</string>
+            <string>Returns the number of free bytes of memory the script can use.\nReturns the available free space for the current script. This is inaccurate with LSO.</string>
          </map>
          <key>llGetFreeURLs</key>
          <map>
@@ -9158,7 +9156,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Returns the number of available URLs for the current script.</string>
+            <string>Returns the number of available URLs for the current script.\nReturns an integer that is the number of available URLs.</string>
          </map>
          <key>llGetGeometricCenter</key>
          <map>
@@ -9171,7 +9169,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Returns the geometric center of the linked set the script is attached to.</string>
+            <string>Returns the vector that is the geometric center of the object relative to the root prim.</string>
          </map>
          <key>llGetGMTclock</key>
          <map>
@@ -9184,7 +9182,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Returns the time in seconds since midnight GMT.</string>
+            <string>Returns the time in seconds since midnight GMT.\nGets the time in seconds since midnight in GMT/UTC.</string>
          </map>
          <key>llGetHTTPHeader</key>
          <map>
@@ -9199,24 +9197,24 @@
                <map>
                   <key>HTTPRequestID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>A valid HTTP request key</string>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string>A valid HTTP request key</string>
                   </map>
                </map>
                <map>
                   <key>Header</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Header value name</string>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string>Header value name</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the value for header for request_id.</string>
+            <string>Returns the value for header for request_id.\nReturns a string that is the value of the Header for HTTPRequestID.</string>
          </map>
          <key>llGetInventoryCreator</key>
          <map>
@@ -9231,15 +9229,15 @@
                <map>
                   <key>InventoryItem</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns a key for the creator of the inventory item.</string>
+            <string>Returns a key for the creator of the inventory item.\nThis function returns the UUID of the creator of item. If item is not found in inventory, the object says "No item named 'name'".</string>
          </map>
          <key>llGetInventoryKey</key>
          <map>
@@ -9254,15 +9252,15 @@
                <map>
                   <key>InventoryItem</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the key that is the UUID of the inventory named.</string>
+            <string>Returns the key that is the UUID of the inventory named.\nReturns the key of the inventory named.</string>
          </map>
          <key>llGetInventoryName</key>
          <map>
@@ -9277,24 +9275,24 @@
                <map>
                   <key>InventoryType</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>inventory item type</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Inventory item type</string>
                   </map>
                </map>
                <map>
                   <key>Index</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Index number of inventory item.</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Index number of inventory item.</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the name of the inventory item number of a given type.</string>
+            <string>Returns the name of the inventory item of a given type, specified by index number.\nUse the inventory constants INVENTORY_* to specify the type.</string>
          </map>
          <key>llGetInventoryNumber</key>
          <map>
@@ -9309,15 +9307,15 @@
                <map>
                   <key>InventoryType</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Inventory item type</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Inventory item type</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the number of items of a given type (INVENTORY_* flag) in the prim's inventory.</string>
+            <string>Returns the quantity of items of a given type (INVENTORY_* flag) in the prim's inventory.\nUse the inventory constants INVENTORY_* to specify the type.</string>
          </map>
          <key>llGetInventoryPermMask</key>
          <map>
@@ -9332,24 +9330,24 @@
                <map>
                   <key>InventoryItem</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Inventory item name.</string>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string>Inventory item name.</string>
                   </map>
                </map>
                <map>
                   <key>BitMask</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>MASK_BASE, MASK_OWNER, MASK_GROUP, MASK_EVERYONE or MASK_NEXT</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>MASK_BASE, MASK_OWNER, MASK_GROUP, MASK_EVERYONE or MASK_NEXT</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the requested permission mask for the inventory item.</string>
+            <string>Returns the requested permission mask for the inventory item.\nReturns the requested permission mask for the inventory item defined by InventoryItem. If item is not in the object's inventory, llGetInventoryPermMask returns FALSE and causes the object to say "No item named '&lt;item&gt;'", where "&lt;item&gt;" is item.</string>
          </map>
          <key>llGetInventoryType</key>
          <map>
@@ -9364,15 +9362,15 @@
                <map>
                   <key>InventoryItem</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the type of the inventory item named.</string>
+            <string>Returns the type of the named inventory item.\nLike all inventory functions, llGetInventoryType is case-sensitive.</string>
          </map>
          <key>llGetKey</key>
          <map>
@@ -9385,7 +9383,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Returns the key of the prim the script is attached to.</string>
+            <string>Returns the key of the prim the script is attached to.\nGet the key for the object which has this script.</string>
          </map>
          <key>llGetLandOwnerAt</key>
          <map>
@@ -9400,15 +9398,15 @@
                <map>
                   <key>Position</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the key of the land owner, returns NULL_KEY if public.</string>
+            <string>Returns the key of the land owner, returns NULL_KEY if public.\nReturns the key of the land owner at Position, or NULL_KEY if public.</string>
          </map>
          <key>llGetLinkKey</key>
          <map>
@@ -9423,15 +9421,15 @@
                <map>
                   <key>LinkNumber</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the key of the linked prim LinkNumber.</string>
+            <string>Returns the key of the linked prim LinkNumber.\nReturns the key of LinkNumber in the link set.</string>
          </map>
          <key>llGetLinkMedia</key>
          <map>
@@ -9446,28 +9444,28 @@
                <map>
                   <key>LinkNumber</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag</string>
                   </map>
                </map>
                <map>
                   <key>Face</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>The prim's side number</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>The prim's side number</string>
                   </map>
                </map>
                <map>
                   <key>Parameters</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>A list of PRIM_* property constants to return values of.</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>A list of PRIM_* property constants to return values of.</string>
                   </map>
                </map>
             </array>
@@ -9487,15 +9485,15 @@
                <map>
                   <key>LinkNumber</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the name of LinkNumber in a link set.</string>
+            <string>Returns the name of LinkNumber in a link set.\nReturns the name of LinkNumber the link set.</string>
          </map>
          <key>llGetLinkNumber</key>
          <map>
@@ -9508,7 +9506,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Returns the link number of the prim containing the script (0 means not linked, 1 the prim is the root, 2 the prim is the first child, etc.).</string>
+            <string>Returns the link number of the prim containing the script (0 means not linked, 1 the prim is the root, 2 the prim is the first child, etc.).\nReturns the link number of the prim containing the script. 0 means no link, 1 the root, 2 for first child, etc.</string>
          </map>
          <key>llGetLinkNumberOfSides</key>
          <map>
@@ -9523,15 +9521,15 @@
                <map>
                   <key>LinkNumber</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag.</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag.</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the number of sides of the specified linked prim.</string>
+            <string>Returns the number of sides of the specified linked prim.\nReturns an integer that is the number of faces (or sides) of the prim link.</string>
          </map>
          <key>llGetLinkPrimitiveParams</key>
          <map>
@@ -9546,24 +9544,24 @@
                <map>
                   <key>LinkNumber</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag.</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag.</string>
                   </map>
                </map>
                <map>
                   <key>Parameters</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>PRIM_* flags.</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>PRIM_* flags.</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Get primitive parameters for LinkNumber based on rules.</string>
+            <string>Returns the list of primitive attributes requested in the Parameters list for LinkNumber.\nPRIM_* flags can be broken into three categories, face flags, prim flags, and object flags.\n* Supplying a prim or object flag will return that flags attributes.\n* Face flags require the user to also supply a face index parameter.</string>
          </map>
          <key>llGetListEntryType</key>
          <map>
@@ -9578,24 +9576,24 @@
                <map>
                   <key>ListVariable</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Index</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the type of the index entry in the list (TYPE_INTEGER, TYPE_FLOAT, TYPE_STRING, TYPE_KEY, TYPE_VECTOR, TYPE_ROTATION, or TYPE_INVALID if index is off list).</string>
+            <string>Returns the type of the index entry in the list (TYPE_INTEGER, TYPE_FLOAT, TYPE_STRING, TYPE_KEY, TYPE_VECTOR, TYPE_ROTATION, or TYPE_INVALID if index is off list).\nReturns the type of the variable at Index in ListVariable.</string>
          </map>
          <key>llGetListLength</key>
          <map>
@@ -9610,15 +9608,15 @@
                <map>
                   <key>ListVariable</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the number of elements in the list.</string>
+            <string>Returns the number of elements in the list.\nReturns the number of elements in ListVariable.</string>
          </map>
          <key>llGetLocalPos</key>
          <map>
@@ -9631,7 +9629,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Returns the position relative to the root.</string>
+            <string>Returns the position relative to the root.\nReturns the local position of a child object relative to the root.</string>
          </map>
          <key>llGetLocalRot</key>
          <map>
@@ -9644,7 +9642,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Returns the rotation local to the root.</string>
+            <string>Returns the rotation local to the root.\nReturns the local rotation of a child object relative to the root.</string>
          </map>
          <key>llGetMass</key>
          <map>
@@ -9657,7 +9655,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Returns the mass of object that the script is attached to.</string>
+            <string>Returns the mass of object that the script is attached to.\nReturns the scripted object's mass. When called from a script in a link-set, the parent will return the sum of the link-set weights, while a child will return just its own mass. When called from a script inside an attachment, this function will return the mass of the avatar it's attached to, not its own.</string>
          </map>
          <key>llGetMassMKS</key>
          <map>
@@ -9724,24 +9722,24 @@
                <map>
                   <key>Address</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Subject</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Get the next waiting email with appropriate address and/or subject (if blank they are ignored).</string>
+            <string>Fetch the next queued email with that matches the given address and/or subject, via the email event.\nIf the parameters are blank, they are not used for filtering.</string>
          </map>
          <key>llGetNotecardLine</key>
          <map>
@@ -9756,24 +9754,24 @@
                <map>
                   <key>NotecardName</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>LineNumber</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns line from NotecardName via the dataserver event.</string>
+            <string>Returns LineNumber from NotecardName via the dataserver event. The line index starts at zero.\nIf the requested line is passed the end of the note-card the dataserver event will return the constant EOF string.\nThe key returned by this function is a unique identifier which will be supplied to the dataserver event in the requested parameter.</string>
          </map>
          <key>llGetNumberOfNotecardLines</key>
          <map>
@@ -9788,15 +9786,15 @@
                <map>
                   <key>NotecardName</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns number of lines in NotecardName via the dataserver event (cast return value to integer).</string>
+            <string>Returns the number of lines contained within a notecard via the dataserver event.\nThe key returned by this function is a query ID for identifying the dataserver reply.</string>
          </map>
          <key>llGetNumberOfPrims</key>
          <map>
@@ -9809,7 +9807,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Returns the number of prims in a link set the script is attached to.</string>
+            <string>Returns the number of prims in a link set the script is attached to.\nReturns the number of prims in (and avatars seated on) the object the script is in.</string>
          </map>
          <key>llGetNumberOfSides</key>
          <map>
@@ -9822,7 +9820,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Returns the number of faces (or sides) of the prim.</string>
+            <string>Returns the number of faces (or sides) of the prim.\nReturns the number of sides of the prim which has the script.</string>
          </map>
          <key>llGetObjectDesc</key>
          <map>
@@ -9835,7 +9833,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Returns the description of the prim the script is attached to.</string>
+            <string>Returns the description of the prim the script is attached to.\nReturns the description of the scripted object/prim. You can set the description using llSetObjectDesc.</string>
          </map>
          <key>llGetObjectDetails</key>
          <map>
@@ -9850,25 +9848,24 @@
                <map>
                   <key>ID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Prim or avatar UUID that is in the same region.</string>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string>Prim or avatar UUID that is in the same region.</string>
                   </map>
                </map>
                <map>
                   <key>Parameters</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>List of OBJECT_* flags.</string>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string>List of OBJECT_* flags.</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the object details specified in Parameters for the object with key ID.\n
-				Parameters are OBJECT_NAME, _DESC, _POS, _ROT, _VELOCITY, _OWNER, _GROUP, _CREATOR.</string>
+            <string>Returns a list of object details specified in the Parameters list for the object or avatar in the region with key ID.\nParameters are specified by the OBJECT_* constants.</string>
          </map>
          <key>llGetObjectMass</key>
          <map>
@@ -9883,15 +9880,15 @@
                <map>
                   <key>ID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the mass of the avatar or object in the region.</string>
+            <string>Returns the mass of the avatar or object in the region.\nGets the mass of the object or avatar corresponding to ID.</string>
          </map>
          <key>llGetObjectName</key>
          <map>
@@ -9904,7 +9901,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Returns the name of the prim which the script is attached to.</string>
+            <string>Returns the name of the prim which the script is attached to.\nReturns the name of the prim (not object) which contains the script.</string>
          </map>
          <key>llGetObjectPermMask</key>
          <map>
@@ -9917,17 +9914,17 @@
             <key>arguments</key>
             <array>
                <map>
-                  <key>PermissionMask</key>
+                  <key>Category</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Category is one of MASK_BASE, MASK_OWNER, MASK_GROUP, MASK_EVERYONE, or MASK_NEXT</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the requested permission mask for the root object the task is attached to.</string>
+            <string>Returns the permission mask of the requested category for the object.</string>
          </map>
          <key>llGetObjectPrimCount</key>
          <map>
@@ -9942,15 +9939,15 @@
                <map>
                   <key>ObjectID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the total number of prims for an object in the region.</string>
+            <string>Returns the total number of prims for an object in the region.\nReturns the prim count for any object id in the same region.</string>
          </map>
          <key>llGetOmega</key>
          <map>
@@ -9963,7 +9960,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Returns the rotation velocity in radians per second.</string>
+            <string>Returns the rotation velocity in radians per second.\nReturns a vector that is the rotation velocity of the object in radians per second.</string>
          </map>
          <key>llGetOwner</key>
          <map>
@@ -9976,7 +9973,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Returns the object owner's UUID.</string>
+            <string>Returns the object owner's UUID.\nReturns the key for the owner of the object.</string>
          </map>
          <key>llGetOwnerKey</key>
          <map>
@@ -9991,15 +9988,15 @@
                <map>
                   <key>ObjectID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the owner of ObjectID.</string>
+            <string>Returns the owner of ObjectID.\nReturns the key for the owner of object ObjectID.</string>
          </map>
          <key>llGetParcelDetails</key>
          <map>
@@ -10014,25 +10011,24 @@
                <map>
                   <key>Position</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Location within the region.</string>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string>Location within the region.</string>
                   </map>
                </map>
                <map>
                   <key>ParcelDetails</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>List of details requested for the specified parcel location.</string>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string>List of details requested for the specified parcel location.</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the parcel details specified in ParcelDetails for the parcel at Position.\n
- 				Parameters is one or more of: PARCEL_DETAILS_NAME, _DESC, _OWNER, _GROUP, _AREA, _ID, _SEE_AVATARS.</string>
+            <string>Returns a list of parcel details specified in the ParcelDetails list for the parcel at Position.\nParameters is one or more of: PARCEL_DETAILS_NAME, _DESC, _OWNER, _GROUP, _AREA, _ID, _SEE_AVATARS.\nReturns a list that is the parcel details specified in ParcelDetails (in the same order) for the parcel at Position.</string>
          </map>
          <key>llGetParcelFlags</key>
          <map>
@@ -10047,15 +10043,15 @@
                <map>
                   <key>Position</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns a mask of the parcel flags (PARCEL_FLAG_*) for the parcel that includes the point Position.</string>
+            <string>Returns a mask of the parcel flags (PARCEL_FLAG_*) for the parcel that includes the point Position.\nReturns a bit-field specifying the parcel flags (PARCEL_FLAG_*) for the parcel at Position.</string>
          </map>
          <key>llGetParcelMaxPrims</key>
          <map>
@@ -10070,24 +10066,24 @@
                <map>
                   <key>Position</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Region coordinates (z is ignored) of parcel.</string>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string>Region coordinates (z is ignored) of parcel.</string>
                   </map>
                </map>
                <map>
                   <key>SimWide</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Boolean. If FALSE then the return is the maximum prims supported by the parcel. If TRUE then it is the combined number of prims on all parcels in the region owned by the specified parcel's owner.</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Boolean. If FALSE then the return is the maximum prims supported by the parcel. If TRUE then it is the combined number of prims on all parcels in the region owned by the specified parcel's owner.</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the maximum number of prims allowed on the parcel at Position.</string>
+            <string>Returns the maximum number of prims allowed on the parcel at Position for a given scope.\nThe scope may be set to an individual parcel or the combined resources of all parcels with the same ownership in the region.</string>
          </map>
          <key>llGetParcelMusicURL</key>
          <map>
@@ -10100,7 +10096,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Gets the streaming audio URL for the parcel object is on.</string>
+            <string>Gets the streaming audio URL for the parcel object is on.\nThe object owner, avatar or group, must also be the land owner.</string>
          </map>
          <key>llGetParcelPrimCount</key>
          <map>
@@ -10115,34 +10111,33 @@
                <map>
                   <key>Position</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>region coordinate</string>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string>Region coordinates of parcel to query.</string>
                   </map>
                </map>
                <map>
                   <key>Category</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>A PARCEL_COUNT_* flag.</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>A PARCEL_COUNT_* flag.</string>
                   </map>
                </map>
                <map>
                   <key>SimWide</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Boolean. If FALSE then the return is the maximum prims supported by the parcel. If TRUE then it is the combined number of prims on all parcels in the region owned by the specified parcel's owner.</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Boolean. If FALSE then the return is the maximum prims supported by the parcel. If TRUE then it is the combined number of prims on all parcels in the region owned by the specified parcel's owner.</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the number of prims on the parcel at Position of the given category.
-				Categories: PARCEL_COUNT_TOTAL, _OWNER, _GROUP, _OTHER, _SELECTED, _TEMP.</string>
+            <string>Returns the number of prims on the parcel at Position of the given category.\nCategories: PARCEL_COUNT_TOTAL, _OWNER, _GROUP, _OTHER, _SELECTED, _TEMP.\nReturns the number of prims used on the parcel at Position which are in Category.\nIf SimWide is TRUE, it returns the total number of objects for all parcels with matching ownership in the category specified.\nIf SimWide is FALSE, it returns the number of objects on this specific parcel in the category specified</string>
          </map>
          <key>llGetParcelPrimOwners</key>
          <map>
@@ -10157,16 +10152,15 @@
                <map>
                   <key>Position</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns a list of all residents who own objects on the parcel at Position, with individual prim counts.
-				Requires owner-like permissions for the parcel.</string>
+            <string>Returns a list of up to 100 residents who own objects on the parcel at Position, with per-owner land impact totals.\nRequires owner-like permissions for the parcel, and for the script owner to be present in the region.\nThe list is formatted as [ key agentKey1, integer agentLI1, key agentKey2, integer agentLI2, ... ], sorted by agent key.\nThe integers are the combined land impacts of the objects owned by the corresponding agents.</string>
          </map>
          <key>llGetPermissions</key>
          <map>
@@ -10179,7 +10173,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Returns an integer bit-field with the permissions that have been granted.</string>
+            <string>Returns an integer bitmask of the permissions that have been granted to the script.  Individual permissions can be determined using a bit-wise "and" operation against the PERMISSION_* constants</string>
          </map>
          <key>llGetPermissionsKey</key>
          <map>
@@ -10192,7 +10186,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Returns the key of the avatar that last granted permissions to the script.</string>
+            <string>Returns the key of the avatar that last granted or declined permissions to the script.\nReturns NULL_KEY if permissions were never granted or declined.</string>
          </map>
          <key>llGetPhysicsMaterial</key>
          <map>
@@ -10218,7 +10212,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Returns the position of the task in region coordinates.</string>
+            <string>Returns the position of the task in region coordinates.\nReturns the vector position of the task in region coordinates.</string>
          </map>
          <key>llGetPrimitiveParams</key>
          <map>
@@ -10233,15 +10227,15 @@
                <map>
                   <key>Parameters</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>PRIM_* flags</string>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string>PRIM_* flags and face parameters</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the primitive parameters specified in the parameters list.</string>
+            <string>Returns the primitive parameters specified in the parameters list.\nReturns primitive parameters specified in the Parameters list.</string>
          </map>
          <key>llGetPrimMediaParams</key>
          <map>
@@ -10256,19 +10250,19 @@
                <map>
                   <key>Face</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>face number</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>face number</string>
                   </map>
                </map>
                <map>
                   <key>Parameters</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>a set PRIM_* flags (in no particular order)</string>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string>One or more PRIM_MEDIA_* flags</string>
                   </map>
                </map>
             </array>
@@ -10286,7 +10280,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Returns the number of avatars in the region.</string>
+            <string>Returns the number of avatars in the region.\nReturns an integer that is the number of avatars in the region.</string>
          </map>
          <key>llGetRegionCorner</key>
          <map>
@@ -10299,7 +10293,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Returns a vector, in meters, that is the global location of the south-west corner of the region which the object is in.</string>
+            <string>Returns a vector, in meters, that is the global location of the south-west corner of the region which the object is in.\nReturns the Region-Corner of the simulator containing the task. The region-corner is a vector (values in meters) representing distance from the first region.</string>
          </map>
          <key>llGetRegionFlags</key>
          <map>
@@ -10312,7 +10306,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Returns the region flags (REGION_FLAG_*) for the region the object is in.</string>
+            <string>Returns the region flags (REGION_FLAG_*) for the region the object is in.\nReturns a bit-field specifying the region flags (REGION_FLAG_*) for the region the object is in.</string>
          </map>
          <key>llGetRegionFPS</key>
          <map>
@@ -10351,7 +10345,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Returns the current time dilation as a float between 0.0 (full dilation) and 1.0 (no dilation).</string>
+            <string>Returns the current time dilation as a float between 0.0 (full dilation) and 1.0 (no dilation).\nReturns the current time dilation as a float between 0.0 and 1.0.</string>
          </map>
          <key>llGetRootPosition</key>
          <map>
@@ -10364,7 +10358,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Returns the position (in region coordinates) of the root prim of the object which the script is attached to.</string>
+            <string>Returns the position (in region coordinates) of the root prim of the object which the script is attached to.\nThis is used to allow a child prim to determine where the root is.</string>
          </map>
          <key>llGetRootRotation</key>
          <map>
@@ -10377,7 +10371,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Returns the rotation (relative to the region) of the root prim of the object which the script is attached to.</string>
+            <string>Returns the rotation (relative to the region) of the root prim of the object which the script is attached to.\nGets the global rotation of the root object of the object script is attached to.</string>
          </map>
          <key>llGetRot</key>
          <map>
@@ -10390,7 +10384,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Returns the rotation relative to the region's axes.</string>
+            <string>Returns the rotation relative to the region's axes.\nReturns the rotation.</string>
          </map>
          <key>llGetScale</key>
          <map>
@@ -10403,7 +10397,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Returns the scale of the prim.</string>
+            <string>Returns the scale of the prim.\nReturns a vector that is the scale (dimensions) of the prim.</string>
          </map>
          <key>llGetScriptName</key>
          <map>
@@ -10416,7 +10410,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Returns the name of the script that this function is used in.</string>
+            <string>Returns the name of the script that this function is used in.\nReturns the name of this script.</string>
          </map>
          <key>llGetScriptState</key>
          <map>
@@ -10431,15 +10425,15 @@
                <map>
                   <key>ScriptName</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns TRUE if the script named is running.</string>
+            <string>Returns TRUE if the script named is running.\nReturns TRUE if ScriptName is running.</string>
          </map>
          <key>llGetSimStats</key>
          <map>
@@ -10454,10 +10448,10 @@
                <map>
                   <key>StatType</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Statistic type. Currently only SIM_STAT_PCT_CHARS_STEPPED is supported.</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Statistic type. Currently only SIM_STAT_PCT_CHARS_STEPPED is supported.</string>
                   </map>
                </map>
             </array>
@@ -10475,7 +10469,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Returns the host-name of the machine which the script is running on (same as string in viewer Help dialog).</string>
+            <string>Returns the host-name of the machine which the script is running on.\nFor example, "sim225.agni.lindenlab.com".</string>
          </map>
          <key>llGetSPMaxMemory</key>
          <map>
@@ -10488,7 +10482,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Returns the maximum used memory for the current script. Only valid after using PROFILE_SCRIPT_MEMORY. Non-mono scripts always use 16k.</string>
+            <string>Returns the maximum used memory for the current script. Only valid after using PROFILE_SCRIPT_MEMORY. Non-mono scripts always use 16k.\nReturns the integer of the most bytes used while llScriptProfiler was last active.</string>
          </map>
          <key>llGetStartParameter</key>
          <map>
@@ -10501,7 +10495,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Returns an integer that is the script start parameter.</string>
+            <string>Returns an integer that is the script rez parameter.\nIf the object was rezzed by an agent, this function returns 0.</string>
          </map>
          <key>llGetStaticPath</key>
          <map>
@@ -10516,37 +10510,37 @@
                <map>
                   <key>Start</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Starting position.</string>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string>Starting position.</string>
                   </map>
                </map>
                <map>
                   <key>End</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Ending position.</string>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string>Ending position.</string>
                   </map>
                </map>
                <map>
                   <key>Radius</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Radius of the character that the path is for, between 0.125m and 5.0m.</string>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string>Radius of the character that the path is for, between 0.125m and 5.0m.</string>
                   </map>
                </map>
                <map>
                   <key>Parameters</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Currently only accepts the parameter CHARACTER_TYPE; the options are identical to those used for llCreateCharacter. The default value is CHARACTER_TYPE_NONE.</string>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string>Currently only accepts the parameter CHARACTER_TYPE; the options are identical to those used for llCreateCharacter. The default value is CHARACTER_TYPE_NONE.</string>
                   </map>
                </map>
             </array>
@@ -10566,15 +10560,15 @@
                <map>
                   <key>StatusFlag</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>A STATUS_* flag</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>A STATUS_* flag</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns value of status (STATUS_PHYSICS, STATUS_PHANTOM, STATUS_BLOCK_GRAB, STATUS_ROTATE_X, STATUS_ROTATE_Y, and/or STATUS_ROTATE_Z).</string>
+            <string>Returns boolean value of the specified status (e.g. STATUS_PHANTOM) of the object the script is attached to.</string>
          </map>
          <key>llGetSubString</key>
          <map>
@@ -10589,33 +10583,33 @@
                <map>
                   <key>String</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Start</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>End</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the indicated substring.</string>
+            <string>Returns a sub-string from String, in a range specified by the Start and End indicies (inclusive).\nUsing negative numbers for Start and/or End causes the index to count backwards from the length of the string, so 0, -1 would capture the entire string.\nIf Start is greater than End, the sub string is the exclusion of the entries.</string>
          </map>
          <key>llGetSunDirection</key>
          <map>
@@ -10628,7 +10622,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Returns a normalized vector of the direction of the sun in the region.</string>
+            <string>Returns a normalized vector of the direction of the sun in the region.\nReturns the sun's direction on the simulator.</string>
          </map>
          <key>llGetTexture</key>
          <map>
@@ -10643,15 +10637,15 @@
                <map>
                   <key>Face</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns a string that is the texture on face (the inventory name if it is a texture in the prim's inventory, otherwise the key).</string>
+            <string>Returns a string that is the texture on face (the inventory name if it is a texture in the prim's inventory, otherwise the key).\nReturns the texture of a face, if it is found in object inventory, its key otherwise.</string>
          </map>
          <key>llGetTextureOffset</key>
          <map>
@@ -10666,10 +10660,10 @@
                <map>
                   <key>Face</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -10689,10 +10683,10 @@
                <map>
                   <key>Face</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -10712,15 +10706,15 @@
                <map>
                   <key>Face</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the texture scale of side in the x and y components of a vector.</string>
+            <string>Returns the texture scale of side in the x and y components of a vector.\nReturns the texture scale of a side in the x and y components of a vector.</string>
          </map>
          <key>llGetTime</key>
          <map>
@@ -10746,7 +10740,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Returns the time in seconds since [SECOND_LIFE] server midnight or since region up-time, whichever is smaller.</string>
+            <string>Returns the time in seconds since Second Life midnight or since region up-time, whichever is smaller.\nThe Second Life day cycle is 4 hours.</string>
          </map>
          <key>llGetTimestamp</key>
          <map>
@@ -10772,7 +10766,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Returns the torque (if the script is physical).</string>
+            <string>Returns the torque (if the script is physical).\nReturns a vector that is the torque (if the script is physical).</string>
          </map>
          <key>llGetUnixTime</key>
          <map>
@@ -10798,7 +10792,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Returns the current used memory for the current script. Non-mono scripts always use 16K.</string>
+            <string>Returns the current used memory for the current script. Non-mono scripts always use 16K.\nReturns the integer of the number of bytes of memory currently in use by the script. Non-mono scripts always use 16K.</string>
          </map>
          <key>llGetUsername</key>
          <map>
@@ -10813,15 +10807,15 @@
                <map>
                   <key>AvatarID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the single-word user-name of an avatar, if the avatar is in the current region, otherwise the empty string.</string>
+            <string>Returns the username of an avatar, if the avatar is connected to the current region, or if the name has been cached.  Otherwise, returns an empty string. Use llRequestUsername if the avatar may be absent from the region.</string>
          </map>
          <key>llGetVel</key>
          <map>
@@ -10834,7 +10828,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Returns the velocity of the object.</string>
+            <string>Returns the velocity of the object.\nReturns a vector that is the velocity of the object.</string>
          </map>
          <key>llGetWallclock</key>
          <map>
@@ -10847,7 +10841,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Returns the time in seconds since midnight California Pacific time (PST/PDT).</string>
+            <string>Returns the time in seconds since midnight California Pacific time (PST/PDT).\nReturns the time in seconds since simulator's time-zone midnight (Pacific Time).</string>
          </map>
          <key>llGiveInventory</key>
          <map>
@@ -10862,24 +10856,24 @@
                <map>
                   <key>TargetID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>InventoryItem</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Give InventoryItem to destination represented by TargetID.</string>
+            <string>Give InventoryItem to destination represented by TargetID, as permitted by the permissions system.\nTargetID may be any agent or an object in the same region.</string>
          </map>
          <key>llGiveInventoryList</key>
          <map>
@@ -10894,33 +10888,33 @@
                <map>
                   <key>TargetID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>FolderName</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>InventoryItems</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Give InventoryItems to destination (represented by TargetID) as a new folder of items.</string>
+            <string>Give InventoryItems to destination (represented by TargetID) as a new folder of items, as permitted by the permissions system.\nTargetID may be any agent or an object in the same region. If TargetID is an object, the items are passed directly to the object inventory (no folder is created).</string>
          </map>
          <key>llGiveMoney</key>
          <map>
@@ -10935,24 +10929,24 @@
                <map>
                   <key>AvatarID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Amount</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Transfers Amount of L from script owner to AvatarID.</string>
+            <string>Transfers Amount of L$ from script owner to AvatarID.\nThis call will silently fail if PERMISSION_DEBIT has not been granted.</string>
          </map>
          <key>llGodLikeRezObject</key>
          <map>
@@ -10969,19 +10963,19 @@
                <map>
                   <key>InventoryItemID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Position</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -11001,15 +10995,15 @@
                <map>
                   <key>Offset</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the ground height at the object position + offset.</string>
+            <string>Returns the ground height at the object position + offset.\nReturns the ground height at the object's position + Offset.</string>
          </map>
          <key>llGroundContour</key>
          <map>
@@ -11024,15 +11018,15 @@
                <map>
                   <key>Offset</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the ground contour direction below the object position + Offset.</string>
+            <string>Returns the ground contour direction below the object position + Offset.\nReturns the ground contour at the object's position + Offset.</string>
          </map>
          <key>llGroundNormal</key>
          <map>
@@ -11047,15 +11041,15 @@
                <map>
                   <key>Offset</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the ground normal below the object position + offset.</string>
+            <string>Returns the ground normal below the object position + offset.\nReturns the ground contour at the object's position + Offset.</string>
          </map>
          <key>llGroundRepel</key>
          <map>
@@ -11070,33 +11064,35 @@
                <map>
                   <key>Height</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>.Distance above the ground.</string>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string>Distance above the ground.</string>
                   </map>
                </map>
                <map>
                   <key>Water</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Boolean, if TRUE then hover above water too.</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Boolean, if TRUE then hover above water too.</string>
                   </map>
                </map>
                <map>
                   <key>Tau</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Seconds to critically damp in.</string>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string>Seconds to critically damp in.</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Critically damps to height if within height * 0.5 of level (either above ground level or above the higher of land and water if water == TRUE).</string>
+            <string>Critically damps to height if within height * 0.5 of level (either above ground level or above the higher of land and water if water == TRUE).\nCritically damps to fHeight if within fHeight * 0.5 of ground or water level.\n
+				The height is above ground level if iWater is FALSE or above the higher of land and water if iWater is TRUE.\n
+				Do not use with vehicles. Only works in physics-enabled objects.</string>
          </map>
          <key>llGroundSlope</key>
          <map>
@@ -11111,15 +11107,15 @@
                <map>
                   <key>Offset</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the ground slope below the object position + Offset.</string>
+            <string>Returns the ground slope below the object position + Offset.\nReturns the ground slope at the object position + Offset.</string>
          </map>
          <key>llHTTPRequest</key>
          <map>
@@ -11134,33 +11130,33 @@
                <map>
                   <key>URL</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>A valid HTTP/HTTPS URL.</string>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string>A valid HTTP/HTTPS URL.</string>
                   </map>
                </map>
                <map>
                   <key>Parameters</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Configuration parameters, specified as HTTP_* flag-value pairs.</string>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string>Configuration parameters, specified as HTTP_* flag-value pairs.</string>
                   </map>
                </map>
                <map>
                   <key>Body</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Contents of the request.</string>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string>Contents of the request.</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Sends an HTTP request to the specified URL with the Body of the request and Parameters.</string>
+            <string>Sends an HTTP request to the specified URL with the Body of the request and Parameters.\nReturns a key that is a handle identifying the HTTP request made.</string>
          </map>
          <key>llHTTPResponse</key>
          <map>
@@ -11175,33 +11171,33 @@
                <map>
                   <key>HTTPRequestID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>A valid HTTP request key.</string>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string>A valid HTTP request key.</string>
                   </map>
                </map>
                <map>
                   <key>Status</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>HTTP Status (200, 400, 404, etc.).</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>HTTP Status (200, 400, 404, etc.).</string>
                   </map>
                </map>
                <map>
                   <key>Body</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Contents of the response.</string>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string>Contents of the response.</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Responds to HTTPRequestID with Status and Body.</string>
+            <string>Responds to an incoming HTTP request which was triggerd by an http_request event within the script. HTTPRequestID specifies the request to respond to (this ID is supplied in the http_request event handler).  Status and Body specify the status code and message to respond with.</string>
          </map>
          <key>llInsertString</key>
          <map>
@@ -11216,33 +11212,33 @@
                <map>
                   <key>TargetVariable</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Position</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>SourceVariable</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Inserts SourceVariable into TargetVariable at Position, and returns the result.</string>
+            <string>Inserts SourceVariable into TargetVariable at Position, and returns the result.\nInserts SourceVariable into TargetVariable at Position and returns the result. Note this does not alter TargetVariable.</string>
          </map>
          <key>llInstantMessage</key>
          <map>
@@ -11257,24 +11253,24 @@
                <map>
                   <key>AvatarID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Text</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
-                  </map>
+                     <key>tooltip</key>
+                     <string/>
+                  </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>IMs Text to the user identified.</string>
+            <string>IMs Text to the user identified.\nSend Text to the user as an instant message.</string>
          </map>
          <key>llIntegerToBase64</key>
          <map>
@@ -11289,15 +11285,15 @@
                <map>
                   <key>Value</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns a string that is a Base64 big endian encode of Value.</string>
+            <string>Returns a string that is a Base64 big endian encode of Value.\nEncodes the Value as an 8-character Base64 string.</string>
          </map>
          <key>llJson2List</key>
          <map>
@@ -11312,10 +11308,10 @@
                <map>
                   <key>JSON</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -11335,19 +11331,19 @@
                <map>
                   <key>JSON</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Specifiers</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -11367,28 +11363,28 @@
                <map>
                   <key>JSON</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Specifiers</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Value</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -11408,19 +11404,19 @@
                <map>
                   <key>JSON</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Specifiers</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -11440,15 +11436,15 @@
                <map>
                   <key>ID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Avatar or rezzed prim UUID.</string>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string>Avatar or rezzed prim UUID.</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the name of the prim or avatar specified by ID. The ID must be a valid rezzed prim or avatar key in the current simulator, otherwise an empty string is returned.</string>
+            <string>Returns the name of the prim or avatar specified by ID. The ID must be a valid rezzed prim or avatar key in the current simulator, otherwise an empty string is returned.\nFor avatars, the returned name is the legacy name</string>
          </map>
          <key>llLinkParticleSystem</key>
          <map>
@@ -11463,25 +11459,24 @@
                <map>
                   <key>LinkNumber</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag</string>
                   </map>
                </map>
                <map>
                   <key>Rules</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Particle system rules list in the format [ rule1, data1, rule2, data2 . . . ruleN, dataN ]</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Particle system rules list in the format [ rule1, data1, rule2, data2 . . . ruleN, dataN ]</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Creates a particle system based on Rules. An empty list removes a particle system from object.\n
-				List format is [ rule-1, data-1, rule-2, data-2 ... rule-n, data-n ].</string>
+            <string>Creates a particle system in prim LinkNumber based on Rules. An empty list removes a particle system from object.\nList format is [ rule-1, data-1, rule-2, data-2 ... rule-n, data-n ].\nThis is identical to llParticleSystem except that it applies to a specified linked prim and not just the prim the script is in.</string>
          </map>
          <key>llLinkSitTarget</key>
          <map>
@@ -11496,33 +11491,33 @@
                <map>
                   <key>LinkNumber</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag of the prim.</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag of the prim.</string>
                   </map>
                </map>
                <map>
                   <key>Offset</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Position for the sit target, relative to the prim's position.</string>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string>Position for the sit target, relative to the prim's position.</string>
                   </map>
                </map>
                <map>
                   <key>Rotation</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Rotation (relative to the prim's rotation) for the avatar.</string>
                      <key>type</key>
                      <string>rotation</string>
+                     <key>tooltip</key>
+                     <string>Rotation (relative to the prim's rotation) for the avatar.</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Set the sit location for the linked prim(s). If Offset == &lt;0,0,0&gt; clear it.</string>
+            <string>Set the sit location for the linked prim(s). If Offset == &lt;0,0,0&gt; clear it.\nSet the sit location for the linked prim(s). The sit location is relative to the prim's position and rotation.</string>
          </map>
          <key>llList2CSV</key>
          <map>
@@ -11537,15 +11532,15 @@
                <map>
                   <key>ListVariable</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Creates a string of comma separated values from the list.</string>
+            <string>Creates a string of comma separated values from the list.\nCreate a string of comma separated values from the specified list.</string>
          </map>
          <key>llList2Float</key>
          <map>
@@ -11560,24 +11555,24 @@
                <map>
                   <key>ListVariable</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Index</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Copies the float at Index in the list.</string>
+            <string>Copies the float at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to a float, then zero is returned.</string>
          </map>
          <key>llList2Integer</key>
          <map>
@@ -11592,24 +11587,24 @@
                <map>
                   <key>ListVariable</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Index</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Copies the integer at Index in the list.</string>
+            <string>Copies the integer at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to an integer, then zero is returned.</string>
          </map>
          <key>llList2Json</key>
          <map>
@@ -11624,19 +11619,19 @@
                <map>
                   <key>JsonType</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Type is JSON_ARRAY or JSON_OBJECT.</string>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string>Type is JSON_ARRAY or JSON_OBJECT.</string>
                   </map>
                </map>
                <map>
                   <key>Values</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>List of values to convert.</string>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string>List of values to convert.</string>
                   </map>
                </map>
             </array>
@@ -11656,24 +11651,24 @@
                <map>
                   <key>ListVariable</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Index</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Copies the key at Index in the list.</string>
+            <string>Copies the key at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to a key, then null string is returned.</string>
          </map>
          <key>llList2List</key>
          <map>
@@ -11688,33 +11683,33 @@
                <map>
                   <key>ListVariable</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Start</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>End</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Copies the slice of the list from Start to End.</string>
+            <string>Returns a subset of entries from ListVariable, in a range specified by the Start and End indicies (inclusive).\nUsing negative numbers for Start and/or End causes the index to count backwards from the length of the string, so 0, -1 would capture the entire string.\nIf Start is greater than End, the sub string is the exclusion of the entries.</string>
          </map>
          <key>llList2ListStrided</key>
          <map>
@@ -11729,42 +11724,42 @@
                <map>
                   <key>ListVariable</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Start</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>End</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Stride</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Copies the strided slice of the list from Start to End.</string>
+            <string>Copies the strided slice of the list from Start to End.\nReturns a copy of the strided slice of the specified list from Start to End.</string>
          </map>
          <key>llList2Rot</key>
          <map>
@@ -11779,24 +11774,24 @@
                <map>
                   <key>ListVariable</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Index</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Copies the rotation at Index in the list.</string>
+            <string>Copies the rotation at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to rotation, thenZERO_ROTATION is returned.</string>
          </map>
          <key>llList2String</key>
          <map>
@@ -11811,24 +11806,24 @@
                <map>
                   <key>ListVariable</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Index</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Copies the string at Index in the list.</string>
+            <string>Copies the string at Index in the list.\nReturns the value at Index in the specified list as a string. If Index describes a location not in the list then null string is returned.</string>
          </map>
          <key>llList2Vector</key>
          <map>
@@ -11843,24 +11838,24 @@
                <map>
                   <key>ListVariable</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Index</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Copies the vector at Index in the list.</string>
+            <string>Copies the vector at Index in the list.\nReturns the value at Index in the specified list. If Index describes a location not in the list, or the value cannot be type-cast to a vector, then ZERO_VECTOR is returned.</string>
          </map>
          <key>llListen</key>
          <map>
@@ -11875,42 +11870,42 @@
                <map>
                   <key>Channel</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>SpeakersName</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>SpeakersID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Text</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Sets a callback for Text on Channel from SpeakersName and SpeakersID (SpeakersName, SpeakersID, and/or Text can be empty) and returns an identifier that can be used to deactivate or remove the listen.</string>
+            <string>Creates a listen callback for Text on Channel from SpeakersName and SpeakersID (SpeakersName, SpeakersID, and/or Text can be empty) and returns an identifier that can be used to deactivate or remove the listen.\nNon-empty values for SpeakersName, SpeakersID, and Text will filter the results accordingly, while empty strings and NULL_KEY will not filter the results, for string and key parameters respectively.\nPUBLIC_CHANNEL is the public chat channel that all avatars see as chat text. DEBUG_CHANNEL is the script debug channel, and is also visible to nearby avatars. All other channels are are not sent to avatars, but may be used to communicate with scripts.</string>
          </map>
          <key>llListenControl</key>
          <map>
@@ -11925,24 +11920,24 @@
                <map>
                   <key>ChannelHandle</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Active</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Makes a listen event callback active or inactive.</string>
+            <string>Makes a listen event callback active or inactive. Pass in the value returned from llListen to the iChannelHandle parameter to specify which listener you are controlling.\nUse boolean values to specify Active</string>
          </map>
          <key>llListenRemove</key>
          <map>
@@ -11957,15 +11952,15 @@
                <map>
                   <key>ChannelHandle</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Removes listen event callback number.</string>
+            <string>Removes a listen event callback. Pass in the value returned from llListen to the iChannelHandle parameter to specify which listener to remove.</string>
          </map>
          <key>llListFindList</key>
          <map>
@@ -11980,24 +11975,24 @@
                <map>
                   <key>ListVariable</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Find</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the index of the first instance of Find in ListVariable. Returns -1 if not found.</string>
+            <string>Returns the index of the first instance of Find in ListVariable. Returns -1 if not found.\nReturns the position of the first instance of the Find list in the ListVariable. Returns -1 if not found.</string>
          </map>
          <key>llListInsertList</key>
          <map>
@@ -12012,33 +12007,33 @@
                <map>
                   <key>Target</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>ListVariable</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Position</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns a list that contains all the elements from Target but with the elements from ListVariable inserted at Position start.</string>
+            <string>Returns a list that contains all the elements from Target but with the elements from ListVariable inserted at Position start.\nReturns a new list, created by inserting ListVariable into the Target list at Position. Note this does not alter the Target.</string>
          </map>
          <key>llListRandomize</key>
          <map>
@@ -12053,24 +12048,24 @@
                <map>
                   <key>ListVariable</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Stride</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns a randomized list of blocks of size Stride.</string>
+            <string>Returns a version of the input ListVariable which has been randomized by blocks of size Stride.\nIf the remainder from the length of the list, divided by the stride is non-zero, this function does not randomize the list.</string>
          </map>
          <key>llListReplaceList</key>
          <map>
@@ -12085,42 +12080,42 @@
                <map>
                   <key>Target</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>ListVariable</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Start</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>End</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns a list that is Target with Start through End removed and ListVariable inserted at Start.</string>
+            <string>Returns a list that is Target with Start through End removed and ListVariable inserted at Start.\nReturns a list replacing the slice of the Target list from Start to End with the specified ListVariable. Start and End are inclusive, so 0, 1 would replace the first two entries and 0, 0 would replace only the first list entry.</string>
          </map>
          <key>llListSort</key>
          <map>
@@ -12135,33 +12130,33 @@
                <map>
                   <key>ListVariable</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>List to sort.</string>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string>List to sort.</string>
                   </map>
                </map>
                <map>
                   <key>Stride</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Stride length.</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Stride length.</string>
                   </map>
                </map>
                <map>
                   <key>Ascending</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Boolean. TRUE = result in ascending order, FALSE = result in descending order.</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Boolean. TRUE = result in ascending order, FALSE = result in descending order.</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Sorts the list into blocks of stride, in Ascending order if Ascending == TRUE. The sort order is affected by type.</string>
+            <string>Returns the specified list, sorted into blocks of stride in ascending order (if Ascending is TRUE, otherwise descending). Note that sort only works if the first entry of each block is the same datatype.</string>
          </map>
          <key>llListStatistics</key>
          <map>
@@ -12176,31 +12171,31 @@
                <map>
                   <key>Operation</key>
                   <map>
-                     <key>tooltip</key>
-                     <string> One of LIST_STAT_* values </string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>One of LIST_STAT_* values</string>
                   </map>
                </map>
                <map>
                   <key>ListVariable</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Variable to analyse.</string>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string>Variable to analyze.</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Performs statistical aggregate functions on ListVariable using LIST_STAT_* Operations.</string>
+            <string>Performs a statistical aggregate function, specified by a LIST_STAT_* constant, on ListVariables.\nThis function allows a script to perform a statistical operation as defined by operation on a list composed of integers and floats.</string>
          </map>
          <key>llLoadURL</key>
          <map>
             <key>energy</key>
             <real>10.0</real>
             <key>sleep</key>
-            <real>10.0</real>
+            <real>0.1</real>
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
@@ -12208,33 +12203,33 @@
                <map>
                   <key>AvatarID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Text</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>URL</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Shows dialog to avatar AvatarID offering to load web page at URL.	If user clicks yes, launches their web browser.</string>
+            <string>Shows dialog to avatar AvatarID offering to load web page at URL.	If user clicks yes, launches their web browser.\nllLoadURL displays a dialogue box to the user, offering to load the specified web page using the default web browser.</string>
          </map>
          <key>llLog</key>
          <map>
@@ -12249,15 +12244,15 @@
                <map>
                   <key>Value</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
-                  </map>
+                     <key>tooltip</key>
+                     <string/>
+                  </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the natural logarithm of Value. Returns zero if Value &lt;= 0.</string>
+            <string>Returns the natural logarithm of Value. Returns zero if Value &lt;= 0.\nReturns the base e (natural) logarithm of the specified Value.</string>
          </map>
          <key>llLog10</key>
          <map>
@@ -12272,15 +12267,15 @@
                <map>
                   <key>Value</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the base 10 logarithm of Value. Returns zero if Value &lt;= 0.</string>
+            <string>Returns the base 10 logarithm of Value. Returns zero if Value &lt;= 0.\nReturns the base 10 (common) logarithm of the specified Value.</string>
          </map>
          <key>llLookAt</key>
          <map>
@@ -12295,33 +12290,33 @@
                <map>
                   <key>Target</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Strength</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Damping</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Cause object name to point it's forward axis towards Target.</string>
+            <string>Cause object name to point its forward axis towards Target, at a force controlled by Strength and Damping.\nGood Strength values are around half the mass of the object and good Damping values are less than 1/10th of the Strength.\nAsymmetrical shapes require smaller Damping. A Strength of 0.0 cancels the look at.</string>
          </map>
          <key>llLoopSound</key>
          <map>
@@ -12336,24 +12331,24 @@
                <map>
                   <key>Sound</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Volume</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Plays attached Sound, looping indefinitely, at Volume (0.0 - 1.0).</string>
+            <string>Plays specified Sound, looping indefinitely, at Volume (0.0 - 1.0).\nOnly one sound may be attached to an object at a time.\nA second call to llLoopSound with the same key will not restart the sound, but the new volume will be used. This allows control over the volume of already playing sounds.\nSetting the volume to 0 is not the same as calling llStopSound; a sound with 0 volume will continue to loop.\nTo restart the sound from the beginning, call llStopSound before calling llLoopSound again.</string>
          </map>
          <key>llLoopSoundMaster</key>
          <map>
@@ -12368,24 +12363,24 @@
                <map>
                   <key>Sound</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Volume</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Plays attached Sound, looping at volume (0.0 - 1.0), and declares it a sync master.</string>
+            <string>Plays attached Sound, looping at volume (0.0 - 1.0), and declares it a sync master.\nBehaviour is identical to llLoopSound, with the addition of marking the source as a "Sync Master", causing "Slave" sounds to sync to it. If there are multiple masters within a viewers interest area, the most audible one (a function of both distance and volume) will win out as the master.\nThe use of multiple masters within a small area is unlikely to produce the desired effect.</string>
          </map>
          <key>llLoopSoundSlave</key>
          <map>
@@ -12400,24 +12395,24 @@
                <map>
                   <key>Sound</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Volume</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Plays attached sound looping at volume (0.0 - 1.0), synced to most audible sync master.</string>
+            <string>Plays attached sound looping at volume (0.0 - 1.0), synced to most audible sync master.\nBehaviour is identical to llLoopSound, unless there is a "Sync Master" present.\nIf a Sync Master is already playing the Slave sound will begin playing from the same point the master is in its loop synchronizing the loop points of both sounds.\nIf a Sync Master is started when the Slave is already playing, the Slave will skip to the correct position to sync with the Master.</string>
          </map>
          <key>llMakeExplosion</key>
          <map>
@@ -12434,69 +12429,69 @@
                <map>
                   <key>Particles</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Scale</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Velocity</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Lifetime</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Arc</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Texture</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Offset</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Make a round explosion of particles. Deprecated: Use llParticleSystem instead.</string>
+            <string>Make a round explosion of particles. Deprecated: Use llParticleSystem instead.\nMake a round explosion of particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.</string>
          </map>
          <key>llMakeFire</key>
          <map>
@@ -12513,69 +12508,69 @@
                <map>
                   <key>Particles</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Scale</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Velocity</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Lifetime</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Arc</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Texture</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Offset</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Make fire like particles. Deprecated: Use llParticleSystem instead.</string>
+            <string>Make fire like particles. Deprecated: Use llParticleSystem instead.\nMake fire particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.</string>
          </map>
          <key>llMakeFountain</key>
          <map>
@@ -12592,69 +12587,69 @@
                <map>
                   <key>Particles</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Scale</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Velocity</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Lifetime</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Arc</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Texture</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Offset</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Make a fountain of particles. Deprecated: Use llParticleSystem instead.</string>
+            <string>Make a fountain of particles. Deprecated: Use llParticleSystem instead.\nMake a fountain of particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.</string>
          </map>
          <key>llMakeSmoke</key>
          <map>
@@ -12671,69 +12666,69 @@
                <map>
                   <key>Particles</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Scale</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Velocity</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Lifetime</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Arc</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Texture</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Offset</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Make smoke like particles. Deprecated: Use llParticleSystem instead.</string>
+            <string>Make smoke like particles. Deprecated: Use llParticleSystem instead.\nMake smoky particles using texture from the objects inventory. Deprecated: Use llParticleSystem instead.</string>
          </map>
          <key>llManageEstateAccess</key>
          <map>
@@ -12748,24 +12743,24 @@
                <map>
                   <key>Action</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>One of the ESTATE_ACCESS_ALLOWED_* actions.</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>One of the ESTATE_ACCESS_ALLOWED_* actions.</string>
                   </map>
                </map>
                <map>
                   <key>AvatarID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>UUID of the avatar or group to act upon.</string>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string>UUID of the avatar or group to act upon.</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Use to add or remove agents from the estate's agent access or ban lists or groups from the estate's group access list.</string>
+            <string>Adds or removes agents from the estate's agent access or ban lists, or groups to the estate's group access list. Action is one of the ESTATE_ACCESS_ALLOWED_* operations to perform.\nReturns an integer representing a boolean, TRUE if the call was successful; FALSE if throttled, invalid action, invalid or null id or object owner is not allowed to manage the estate.\nThe object owner is notified of any changes, unless PERMISSION_SILENT_ESTATE_MANAGEMENT has been granted to the script.</string>
          </map>
          <key>llMapDestination</key>
          <map>
@@ -12780,33 +12775,33 @@
                <map>
                   <key>RegionName</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Position</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Direction</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Opens world map centred on region with Position highlighted. Only works for scripts attached to avatar, or during touch events. NOTE: Direction currently does nothing.</string>
+            <string>Opens world map for avatar who touched is is wearing the script, centred on RegionName with Position highlighted. Only works for scripts attached to avatar, or during touch events.\nDirection currently has no effect.</string>
          </map>
          <key>llMD5String</key>
          <map>
@@ -12821,24 +12816,24 @@
                <map>
                   <key>Text</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Nonce</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns a string of 32 hex characters that is an RSA Data Security Inc., MD5 Message-Digest Algorithm of Text with Nonce.</string>
+            <string>Returns a string of 32 hex characters that is an RSA Data Security Inc., MD5 Message-Digest Algorithm of Text with Nonce used as the salt.\nReturns a 32-character hex string. (128-bit in binary.)</string>
          </map>
          <key>llMessageLinked</key>
          <map>
@@ -12853,42 +12848,42 @@
                <map>
                   <key>LinkNumber</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Number</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Text</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>ID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Sends Number, Text, and ID to members of the link set identified by LinkNumber (LINK_ROOT sends to root task in a linked set, LINK_SET sends to all tasks, LINK_ALL_OTHERS to all other tasks, LINK_ALL_CHILDREN to all children, LINK_THIS to the task the script it is in).</string>
+            <string>Sends Number, Text, and ID to members of the link set identified by LinkNumber.\nLinkNumber is either a linked number (available through llGetLinkNumber) or a LINK_* constant.</string>
          </map>
          <key>llMinEventDelay</key>
          <map>
@@ -12903,10 +12898,10 @@
                <map>
                   <key>Delay</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -12926,24 +12921,24 @@
                <map>
                   <key>Action</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>LAND_LEVEL, LAND_RAISE, LAND_LOWER, LAND_SMOOTH, LAND_NOISE or LAND_REVERT</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>LAND_LEVEL, LAND_RAISE, LAND_LOWER, LAND_SMOOTH, LAND_NOISE or LAND_REVERT</string>
                   </map>
                </map>
                <map>
                   <key>Area</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>LAND_SMALL_BRUSH, LAND_MEDIUM_BRUSH or LAND_LARGE_BRUSH</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>0, 1, 2 (2m x 2m, 4m x 4m, or 8m x 8m)</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Modify land with action (LAND_LEVEL, LAND_RAISE, LAND_LOWER, LAND_SMOOTH, LAND_NOISE, LAND_REVERT) on size (LAND_SMALL_BRUSH, LAND_MEDIUM_BRUSH, LAND_LARGE_BRUSH).</string>
+            <string>Modify land with action (LAND_LEVEL, LAND_RAISE, LAND_LOWER, LAND_SMOOTH, LAND_NOISE, LAND_REVERT) on size (0, 1, 2, corresponding to 2m x 2m, 4m x 4m, 8m x 8m).</string>
          </map>
          <key>llModPow</key>
          <map>
@@ -12958,33 +12953,33 @@
                <map>
                   <key>Value</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Power</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Modulus</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns a Value raised to the Power, mod Modulus. ((a**b)%c) b is capped at 0xFFFF (16 bits).</string>
+            <string>Returns a Value raised to the Power, mod Modulus. ((a**b)%c) b is capped at 0xFFFF (16 bits).\nReturns (Value ^ Power) % Modulus. (Value raised to the Power, Modulus). Value is capped at 0xFFFF (16 bits).</string>
          </map>
          <key>llMoveToTarget</key>
          <map>
@@ -12999,24 +12994,24 @@
                <map>
                   <key>Target</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Tau</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Critically damp to Target in Tau seconds (if the script is physical).</string>
+            <string>Critically damp to Target in Tau seconds (if the script is physical).\nCritically damp to position target in tau-seconds if the script is physical. Good tau-values are greater than 0.2. A tau of 0.0 stops the critical damping.</string>
          </map>
          <key>llNavigateTo</key>
          <map>
@@ -13031,24 +13026,24 @@
                <map>
                   <key>Location</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Region coordinates for the character to navigate to.</string>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string>Region coordinates for the character to navigate to.</string>
                   </map>
                </map>
                <map>
                   <key>Options</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>List of parameters to control the type of path-finding used. Currently only FORCE_DIRECT_PATH supported.</string>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string>List of parameters to control the type of path-finding used. Currently only FORCE_DIRECT_PATH supported.</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Navigate to destination.</string>
+            <string>Navigate to destination.\nDirects an object to travel to a defined position in the region or adjacent regions.</string>
          </map>
          <key>llOffsetTexture</key>
          <map>
@@ -13063,33 +13058,33 @@
                <map>
                   <key>OffsetS</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>OffsetT</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Face</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Sets the texture S and T offsets for the chosen Face.</string>
+            <string>Sets the texture S and T offsets for the chosen Face.\nIf Face is ALL_SIDES this function sets the texture offsets for all faces.</string>
          </map>
          <key>llOpenRemoteDataChannel</key>
          <map>
@@ -13104,7 +13099,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Requests a channel to listen for XML-RPC calls. Will trigger a remote_data event with channel ID once it is available.</string>
+            <string>Requests a channel to listen for XML-RPC calls. (Deprecated: XML-RPC should not be used. Use http-in instead.)\nWill trigger a remote_data event with type = REMOTE_DATA_CHANNEL and a channel ID (key) once it is available.\nThis channel ID must be referenced in the XML-RPC call to the script (from the internet) -- so the key must somehow get to the external XML-RPC client.</string>
          </map>
          <key>llOverMyLand</key>
          <map>
@@ -13119,15 +13114,15 @@
                <map>
                   <key>ID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns TRUE if id ID over land owned by the script owner, otherwise FALSE.</string>
+            <string>Returns TRUE if id ID over land owned by the script owner, otherwise FALSE.\nReturns TRUE if key ID is over land owned by the object owner, FALSE otherwise.</string>
          </map>
          <key>llOwnerSay</key>
          <map>
@@ -13142,15 +13137,15 @@
                <map>
                   <key>Text</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
-                  </map>
+                     <key>tooltip</key>
+                     <string/>
+                  </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>says Text to owner only (if owner is in region).</string>
+            <string>says Text to owner only (if owner is in region).\nSays Text to the owner of the object running the script, if the owner has been within the object's simulator since logging into Second Life, regardless of where they may be in-world.</string>
          </map>
          <key>llParcelMediaCommandList</key>
          <map>
@@ -13165,15 +13160,15 @@
                <map>
                   <key>CommandList</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>A list of PARCEL_MEDIA_COMMAND_* flags and their parameters </string>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string>A list of PARCEL_MEDIA_COMMAND_* flags and their parameters </string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Sends a list of commands, some with arguments, to a parcel.</string>
+            <string>Controls the playback of multimedia resources on a parcel or for an agent, via one or more PARCEL_MEDIA_COMMAND_* arguments specified in CommandList.</string>
          </map>
          <key>llParcelMediaQuery</key>
          <map>
@@ -13188,15 +13183,15 @@
                <map>
                   <key>QueryList</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns a list containing results of the sent query.</string>
+            <string>Queries the media properties of the parcel containing the script, via one or more PARCEL_MEDIA_COMMAND_* arguments specified in CommandList.\nThis function will only work if the script is contained within an object owned by the land-owner (or if the land is owned by a group, only if the object has been deeded to the group).</string>
          </map>
          <key>llParseString2List</key>
          <map>
@@ -13211,33 +13206,33 @@
                <map>
                   <key>Text</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Separators</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Spacers</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Breaks Text into a list, discarding Separators, keeping Spacers (Separators and Spacers must be lists of strings, maximum of 8 each).</string>
+            <string>Converts Text into a list, discarding Separators, keeping Spacers (Separators and Spacers must be lists of strings, maximum of 8 each).\nSeparators and Spacers are lists of strings with a maximum of 8 entries each.</string>
          </map>
          <key>llParseStringKeepNulls</key>
          <map>
@@ -13252,33 +13247,33 @@
                <map>
                   <key>Text</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Separators</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Spacers</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Breaks Text into a list, discarding separators, keeping spacers, keeping any null values generated. (separators and spacers must be lists of strings, maximum of 8 each).</string>
+            <string>Breaks Text into a list, discarding separators, keeping spacers, keeping any null values generated. (separators and spacers must be lists of strings, maximum of 8 each).\nllParseStringKeepNulls works almost exactly like llParseString2List, except that if a null is found it will add a null-string instead of discarding it like llParseString2List does.</string>
          </map>
          <key>llParticleSystem</key>
          <map>
@@ -13293,16 +13288,15 @@
                <map>
                   <key>Parameters</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Creates a particle system based on Parameters.	An empty list removes particle system from object.
-				List format is [ rule-1, data-1, rule-2, data-2 . . . rule-n, data-n ].</string>
+            <string>Creates a particle system in the prim the script is attached to, based on Parameters. An empty list removes a particle system from object.\nList format is [ rule-1, data-1, rule-2, data-2 ... rule-n, data-n ].</string>
          </map>
          <key>llPassCollisions</key>
          <map>
@@ -13317,15 +13311,15 @@
                <map>
                   <key>Pass</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Boolean, if TRUE, collisions are passed from children on to parents.</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Boolean, if TRUE, collisions are passed from children on to parents.</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>If Pass == TRUE, collisions are passed from children on to parents (default is FALSE).</string>
+            <string>Configures how collision events are passed to scripts in the linkset.\nIf Pass == TRUE, collisions involving collision-handling scripted child prims are also passed on to the root prim. If Pass == FALSE (default behavior), such collisions will only trigger events in the affected child prim.</string>
          </map>
          <key>llPassTouches</key>
          <map>
@@ -13340,15 +13334,15 @@
                <map>
                   <key>Pass</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Boolean, if TRUE, touches are passed from children on to parents.</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Boolean, if TRUE, touches are passed from children on to parents.</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>If pass == TRUE, touches are passed from children on to parents (default is FALSE).</string>
+            <string>Configures how touch events are passed to scripts in the linkset.\nIf Pass == TRUE, touches involving touch-handling scripted child prims are also passed on to the root prim. If Pass == FALSE (default behavior), such touches will only trigger events in the affected child prim.</string>
          </map>
          <key>llPatrolPoints</key>
          <map>
@@ -13363,24 +13357,24 @@
                <map>
                   <key>Points</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>A list of vectors for the character to travel through sequentially. The list must contain at least two entries.</string>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string>A list of vectors for the character to travel through sequentially. The list must contain at least two entries.</string>
                   </map>
                </map>
                <map>
                   <key>Options</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>No options available at this time.</string>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string>No options available at this time.</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Patrol a list of points.</string>
+            <string>Patrol a list of points.\nSets the points for a character (llCreateCharacter) to patrol along.</string>
          </map>
          <key>llPlaySound</key>
          <map>
@@ -13395,24 +13389,24 @@
                <map>
                   <key>Sound</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Volume</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Plays attached Sound once, at Volume (0.0 - 1.0).</string>
+            <string>Plays Sound once, at Volume (0.0 - 1.0) and attached to the object.\nOnly one sound may be attached to an object at a time, and attaching a new sound or calling llStopSound will stop the previously attached sound.\nA second call to llPlaySound with the same sound will not restart the sound, but the new volume will be used, which allows control over the volume of already playing sounds.\nTo restart the sound from the beginning, call llStopSound before calling llPlaySound again.</string>
          </map>
          <key>llPlaySoundSlave</key>
          <map>
@@ -13427,24 +13421,24 @@
                <map>
                   <key>Sound</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Volume</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Plays attached Sound once, at Volume (0.0 - 1.0), synced to next loop of most audible sync master.</string>
+            <string>Plays attached Sound once, at Volume (0.0 - 1.0), synced to next loop of most audible sync master.\nBehaviour is identical to llPlaySound, unless there is a "Sync Master" present. If a Sync Master is already playing, the Slave sound will not be played until the Master hits its loop point and returns to the beginning.\nllPlaySoundSlave will play the sound exactly once; if it is desired to have the sound play every time the Master loops, either use llLoopSoundSlave with extra silence padded on the end of the sound or ensure that llPlaySoundSlave is called at least once per loop of the Master.</string>
          </map>
          <key>llPow</key>
          <map>
@@ -13459,24 +13453,24 @@
                <map>
                   <key>Value</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Exponent</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the Value raised to the power Exponent, or returns 0 and triggers Math Error for imaginary results.</string>
+            <string>Returns the Value raised to the power Exponent, or returns 0 and triggers Math Error for imaginary results.\nReturns the Value raised to the Exponent.</string>
          </map>
          <key>llPreloadSound</key>
          <map>
@@ -13491,15 +13485,15 @@
                <map>
                   <key>Sound</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Preloads a sound on viewers within range.</string>
+            <string>Causes nearby viewers to preload the Sound from the object's inventory.\nThis is intended to prevent delays in starting new sounds when called upon.</string>
          </map>
          <key>llPursue</key>
          <map>
@@ -13514,24 +13508,24 @@
                <map>
                   <key>TargetID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Agent or object to pursue.</string>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string>Agent or object to pursue.</string>
                   </map>
                </map>
                <map>
                   <key>Options</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Parameters for pursuit.</string>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string>Parameters for pursuit.</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Chase after a target.</string>
+            <string>Chase after a target.\nCauses the character (llCharacter) to pursue the target defined by TargetID.</string>
          </map>
          <key>llPushObject</key>
          <map>
@@ -13546,42 +13540,42 @@
                <map>
                   <key>ObjectID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Impulse</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>AngularImpulse</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Local</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Applies Impulse and AngularImpulse to ObjectID.</string>
+            <string>Applies Impulse and AngularImpulse to ObjectID.\nApplies the supplied impulse and angular impulse to the object specified.</string>
          </map>
          <key>llRefreshPrimURL</key>
          <map>
@@ -13609,24 +13603,24 @@
                <map>
                   <key>Channel</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Any integer value except zero.</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Any integer value except zero.</string>
                   </map>
                </map>
                <map>
                   <key>Text</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Message to be transmitted.</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Message to be transmitted.</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Broadcasts Text to entire region on Channel (not 0.).</string>
+            <string>Broadcasts Text to entire region on Channel (except for channel 0).</string>
          </map>
          <key>llRegionSayTo</key>
          <map>
@@ -13641,33 +13635,33 @@
                <map>
                   <key>TargetID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Avatar or object to say to.</string>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string>Avatar or object to say to.</string>
                   </map>
                </map>
                <map>
                   <key>Channel</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Output channel, any integer value.</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Output channel, any integer value.</string>
                   </map>
                </map>
                <map>
                   <key>Text</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Message to be transmitted.</string>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string>Message to be transmitted.</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Says Text, on Channel, to avatar or object indicated by TargetID (if within region).</string>
+            <string>Says Text, on Channel, to avatar or object indicated by TargetID (if within region).\nIf TargetID is an avatar and Channel is nonzero, Text can be heard by any attachment on the avatar.</string>
          </map>
          <key>llReleaseCamera</key>
          <map>
@@ -13684,15 +13678,15 @@
                <map>
                   <key>AvatarID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Return camera to agent.</string>
+            <string>Return camera to agent.\nDeprecated: Use llClearCameraParams instead.</string>
          </map>
          <key>llReleaseControls</key>
          <map>
@@ -13705,7 +13699,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Stop taking inputs.</string>
+            <string>Stop taking inputs.\nStop taking inputs from the avatar.</string>
          </map>
          <key>llReleaseURL</key>
          <map>
@@ -13720,15 +13714,15 @@
                <map>
                   <key>URL</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>URL to release.</string>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string>URL to release.</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Releases the specified URL, it will no longer be usable.</string>
+            <string>Releases the specified URL, which was previously obtained using llRequestURL.  Once released, the URL will no longer be usable.</string>
          </map>
          <key>llRemoteDataReply</key>
          <map>
@@ -13745,42 +13739,42 @@
                <map>
                   <key>ChannelID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>MessageID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
-                  <key>Data</key>
+                  <key>sData</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string>String data to send</string>
                   </map>
                </map>
                <map>
-                  <key>Data</key>
+                  <key>iData</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Integer data to send</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Send an XML-RPC reply to MessageID on ChannelID with payload of string sData and integer iData. Deprecated: Use HTTP functions/events instead.</string>
+            <string>Send an XML-RPC reply to MessageID on ChannelID with payload of string sData and integer iData. Deprecated: Use HTTP functions/events instead.\nThe size of sData is limited to 254 characters.</string>
          </map>
          <key>llRemoteDataSetRegion</key>
          <map>
@@ -13795,9 +13789,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Deprecated: Use HTTP functions/events instead.\n
-				If an object using remote data channels changes regions, you must call this function to re-register the remote data channels.
-				You do not need to make this call if you don't change regions.</string>
+            <string>Deprecated: Use HTTP functions/events instead.\nIf an object using remote data channels changes regions, you must call this function to re-register the remote data channels.\nYou do not need to make this call if you don't change regions.</string>
          </map>
          <key>llRemoteLoadScriptPin</key>
          <map>
@@ -13812,51 +13804,51 @@
                <map>
                   <key>ObjectID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Target prim to attempt copying into.</string>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string>Target prim to attempt copying into.</string>
                   </map>
                </map>
                <map>
                   <key>ScriptName</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Name of the script in current inventory to copy.</string>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string>Name of the script in current inventory to copy.</string>
                   </map>
                </map>
                <map>
                   <key>PIN</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Integer set on target prim as a Personal Information Number code.</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Integer set on target prim as a Personal Information Number code.</string>
                   </map>
                </map>
                <map>
                   <key>Running</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>If the script should be set running in the target prim.</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>If the script should be set running in the target prim.</string>
                   </map>
                </map>
                <map>
                   <key>StartParameter</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Integer. Parameter passed to the script if set to be running.</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Integer. Parameter passed to the script if set to be running.</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>If the owner of the object this script is attached to can modify ObjectID, they are in the same region, and the matching PIN is used, copy ScriptName into target, if Running == TRUE, start the script with StartParameter.</string>
+            <string>If the owner of the object containing this script can modify the object identified by the specified object key, and if the PIN matches the PIN previously set using llSetRemoteScriptAccessPin (on the target prim), then the script will be copied into target. Running is a boolean specifying whether the script should be enabled once copied into the target object.</string>
          </map>
          <key>llRemoveFromLandBanList</key>
          <map>
@@ -13871,15 +13863,15 @@
                <map>
                   <key>AvatarID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Remove avatar from the land ban list.</string>
+            <string>Remove avatar from the land ban list.\nRemove specified avatar from the land parcel ban list.</string>
          </map>
          <key>llRemoveFromLandPassList</key>
          <map>
@@ -13894,15 +13886,15 @@
                <map>
                   <key>AvatarID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Remove avatar from the land pass list.</string>
+            <string>Remove avatar from the land pass list.\nRemove specified avatar from the land parcel pass list.</string>
          </map>
          <key>llRemoveInventory</key>
          <map>
@@ -13917,15 +13909,15 @@
                <map>
                   <key>InventoryItem</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Remove the named inventory item.</string>
+            <string>Remove the named inventory item.\nRemove the named inventory item from the object inventory.</string>
          </map>
          <key>llRemoveVehicleFlags</key>
          <map>
@@ -13940,15 +13932,15 @@
                <map>
                   <key>Vehiclelags</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Removes the enabled bits in 'flags'.</string>
+            <string>Removes the enabled bits in 'flags'.\nSets the vehicle flags to FALSE. Valid parameters can be found in the vehicle flags constants section.</string>
          </map>
          <key>llRequestAgentData</key>
          <map>
@@ -13963,24 +13955,24 @@
                <map>
                   <key>AvatarID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Data</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Requests data about AvatarID. When data is available the dataserver event will be raised.</string>
+            <string>Requests data about AvatarID. When data is available the dataserver event will be raised.\nThis function requests data about an avatar. If and when the information is collected, the dataserver event is triggered with the key returned from this function passed in the requested parameter. See the agent data constants (DATA_*) for details about valid values of data and what each will return in the dataserver event.</string>
          </map>
          <key>llRequestDisplayName</key>
          <map>
@@ -13995,15 +13987,15 @@
                <map>
                   <key>AvatarID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Avatar UUID</string>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string>Avatar UUID</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Requests name of an avatar. When data is available, the dataserver event will be raised.</string>
+            <string>Requests the display name of the agent. When the display name is available the dataserver event will be raised.\nThe avatar identified does not need to be in the same region or online at the time of the request.\nReturns a key that is used to identify the dataserver event when it is raised.</string>
          </map>
          <key>llRequestInventoryData</key>
          <map>
@@ -14018,15 +14010,15 @@
                <map>
                   <key>InventoryItem</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Requests data from object's inventory object. When data is available the dataserver event will be raised.</string>
+            <string>Requests data for the named InventoryItem.\nWhen data is available, the dataserver event will be raised with the key returned from this function in the requested parameter.\nThe only request currently implemented is to request data from landmarks, where the data returned is in the form "&lt;float, float, float&gt;" which can be cast to a vector. This position is in region local coordinates.</string>
          </map>
          <key>llRequestPermissions</key>
          <map>
@@ -14041,24 +14033,24 @@
                <map>
                   <key>AvatarID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
-                  <key>PermmissionMask</key>
+                  <key>PermissionMask</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Ask AvatarID to allow the script to do PermmissionMask (NB: Debit, ownership, link, joint, and permission requests can only go to the task's owner).</string>
+            <string>Ask AvatarID to allow the script to perform certain actions, specified in the PermissionMask bitmask. PermissionMask should be one or more PERMISSION_* constants. Multiple permissions can be requested simultaneously by ORing the constants together. Many of the permissions requests can only go to object owner.\nThis call will not stop script execution. If the avatar grants the requested permissions, the run_time_permissions event will be called.</string>
          </map>
          <key>llRequestSecureURL</key>
          <map>
@@ -14071,7 +14063,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Requests one HTTPS:// (SSL) URL for use by this object. An http_request event is triggered with the results.</string>
+            <string>Requests one HTTPS:// (SSL) URL for use by this object. The http_request event is triggered with results.\nReturns a key that is the handle used for identifying the request in the http_request event.</string>
          </map>
          <key>llRequestSimulatorData</key>
          <map>
@@ -14086,24 +14078,24 @@
                <map>
                   <key>RegionName</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Data</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Requests data about a simulator. When data is available the dataserver event will be raised.</string>
+            <string>Requests the specified Data about RegionName. When the specified data is available, the dataserver event is raised.\nData should use one of the DATA_SIM_* constants.\nReturns a dataserver query ID and triggers the dataserver event when data is found.</string>
          </map>
          <key>llRequestURL</key>
          <map>
@@ -14116,7 +14108,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Requests one HTTP:// URL for use by this object. An http_request event is triggered with the results.</string>
+            <string>Requests one HTTP:// URL for use by this script. The http_request event is triggered with the result of the request.\nReturns a key that is the handle used for identifying the result in the http_request event.</string>
          </map>
          <key>llRequestUsername</key>
          <map>
@@ -14131,15 +14123,15 @@
                <map>
                   <key>AvatarID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Requests single-word user-name of an avatar. When data is available the dataserver event will be raised.</string>
+            <string>Requests single-word user-name of an avatar. When data is available the dataserver event will be raised.\nRequests the user-name of the identified agent. When the user-name is available the dataserver event is raised.\nThe agent identified does not need to be in the same region or online at the time of the request.\nReturns a key that is used to identify the dataserver event when it is raised.</string>
          </map>
          <key>llResetAnimationOverride</key>
          <map>
@@ -14154,15 +14146,15 @@
                <map>
                   <key>AnimationState</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Resets the animation of the specified animation state to the default value.</string>
+            <string>Resets the animation of the specified animation state to the default value.\nIf animation state equals "ALL", then all animation states are reset.</string>
          </map>
          <key>llResetLandBanList</key>
          <map>
@@ -14203,10 +14195,10 @@
                <map>
                   <key>ScriptName</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -14237,7 +14229,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Sets the time to zero.</string>
+            <string>Sets the time to zero.\nSets the internal timer to zero.</string>
          </map>
          <key>llReturnObjectsByID</key>
          <map>
@@ -14252,15 +14244,15 @@
                <map>
                   <key>ObjectIDs</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>List of object UUIDs to be returned.</string>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string>List of object UUIDs to be returned.</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Return objects using their UUIDs</string>
+            <string>Return objects using their UUIDs.\nRequires the PERMISSION_RETURN_OBJECTS permission and that the script owner owns the parcel the returned objects are in, or is an estate manager or region owner.</string>
          </map>
          <key>llReturnObjectsByOwner</key>
          <map>
@@ -14275,24 +14267,24 @@
                <map>
                   <key>ID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Object owner's UUID.</string>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string>Object owner's UUID.</string>
                   </map>
                </map>
                <map>
                   <key>Scope</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Return objects based upon their owner and a scope of parcel, parcel owner, or region.</string>
+            <string>Return objects based upon their owner and a scope of parcel, parcel owner, or region.\nRequires the PERMISSION_RETURN_OBJECTS permission and that the script owner owns the parcel the returned objects are in, or is an estate manager or region owner.</string>
          </map>
          <key>llRezAtRoot</key>
          <map>
@@ -14307,51 +14299,51 @@
                <map>
                   <key>InventoryItem</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Position</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Velocity</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Rotation</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>rotation</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>StartParameter</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Instantiate owner's InventoryItem at Position with Velocity, Rotation and with StartParameter. The last selected root object's location will be set to Position.</string>
+            <string>Instantiate owner's InventoryItem at Position with Velocity, Rotation and with StartParameter. The last selected root object's location will be set to Position.\nCreates object's inventory item at the given Position, with Velocity, Rotation, and StartParameter.</string>
          </map>
          <key>llRezObject</key>
          <map>
@@ -14366,51 +14358,51 @@
                <map>
                   <key>InventoryItem</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Position</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Velocity</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Rotation</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>rotation</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>StartParameter</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Instantiate owners InventoryItem at Position with Velocity, Rotation and with start StartParameter.</string>
+            <string>Instantiate owners InventoryItem at Position with Velocity, Rotation and with start StartParameter.\nCreates object's inventory item at Position with Velocity and Rotation supplied. The StartParameter value will be available to the newly created object in the on_rez event or through the llGetStartParameter function.\nThe Velocity parameter is ignored if the rezzed object is not physical.</string>
          </map>
          <key>llRot2Angle</key>
          <map>
@@ -14425,15 +14417,15 @@
                <map>
                   <key>Rotation</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>rotation</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the rotation angle represented by Rotation.</string>
+            <string>Returns the rotation angle represented by Rotation.\nReturns the angle represented by the Rotation.</string>
          </map>
          <key>llRot2Axis</key>
          <map>
@@ -14448,15 +14440,15 @@
                <map>
                   <key>Rotation</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>rotation</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the rotation axis represented by Rotation.</string>
+            <string>Returns the rotation axis represented by Rotation.\nReturns the axis represented by the Rotation.</string>
          </map>
          <key>llRot2Euler</key>
          <map>
@@ -14471,15 +14463,15 @@
                <map>
                   <key>Rotation</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>rotation</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the Euler representation (roll, pitch, yaw) of Rotation.</string>
+            <string>Returns the Euler representation (roll, pitch, yaw) of Rotation.\nReturns the Euler Angle representation of the Rotation.</string>
          </map>
          <key>llRot2Fwd</key>
          <map>
@@ -14494,15 +14486,15 @@
                <map>
                   <key>Rotation</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>rotation</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the forward vector defined by Rotation.</string>
+            <string>Returns the forward vector defined by Rotation.\nReturns the forward axis represented by the Rotation.</string>
          </map>
          <key>llRot2Left</key>
          <map>
@@ -14517,15 +14509,15 @@
                <map>
                   <key>Rotation</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>rotation</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the left vector defined by Rotation.</string>
+            <string>Returns the left vector defined by Rotation.\nReturns the left axis represented by the Rotation.</string>
          </map>
          <key>llRot2Up</key>
          <map>
@@ -14540,15 +14532,15 @@
                <map>
                   <key>Rotation</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>rotation</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the up vector defined by Rotation.</string>
+            <string>Returns the up vector defined by Rotation.\nReturns the up axis represented by the Rotation.</string>
          </map>
          <key>llRotateTexture</key>
          <map>
@@ -14563,24 +14555,24 @@
                <map>
                   <key>Radians</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Face</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Sets the texture rotation for the chosen face.</string>
+            <string>Sets the texture rotation for the specified Face to angle Radians.\nIf Face is ALL_SIDES, rotates the texture of all sides.</string>
          </map>
          <key>llRotBetween</key>
          <map>
@@ -14595,24 +14587,24 @@
                <map>
                   <key>Vector1</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Vector2</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the rotation to rotate Vector1 to Vector2.</string>
+            <string>Returns the rotation to rotate Vector1 to Vector2.\nReturns the rotation needed to rotate Vector1 to Vector2.</string>
          </map>
          <key>llRotLookAt</key>
          <map>
@@ -14627,33 +14619,33 @@
                <map>
                   <key>Rotation</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>rotation</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Strength</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Damping</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Cause object to point it's forward axis towards Rotation.</string>
+            <string>Cause object to rotate to Rotation, with a force function defined by Strength and Damping parameters. Good strength values are around half the mass of the object and good damping values are less than 1/10th of the strength.\nAsymmetrical shapes require smaller damping.\nA strength of 0.0 cancels the look at.</string>
          </map>
          <key>llRotTarget</key>
          <map>
@@ -14668,24 +14660,24 @@
                <map>
                   <key>Rotation</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>rotation</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>LeeWay</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Set rotations with error of LeeWay as a rotational target and return an ID for the rotational target.</string>
+            <string>Set rotations with error of LeeWay radians as a rotational target, and return an ID for the rotational target.\nThe returned number is a handle that can be used in at_rot_target and llRotTargetRemove.</string>
          </map>
          <key>llRotTargetRemove</key>
          <map>
@@ -14700,15 +14692,15 @@
                <map>
                   <key>Handle</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Removes rotational target number.</string>
+            <string>Removes rotational target number.\nRemove rotational target indicated by the handle.</string>
          </map>
          <key>llRound</key>
          <map>
@@ -14723,15 +14715,15 @@
                <map>
                   <key>Value</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns Value rounded to the nearest integer.</string>
+            <string>Returns Value rounded to the nearest integer.\nReturns the Value rounded to the nearest integer.</string>
          </map>
          <key>llSameGroup</key>
          <map>
@@ -14746,15 +14738,15 @@
                <map>
                   <key>ID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns TRUE if avatar ID is in the same region and has the same active group, otherwise FALSE.</string>
+            <string>Returns TRUE if avatar ID is in the same region and has the same active group, otherwise FALSE.\nReturns TRUE if the object or agent identified is in the same simulator and has the same active group as this object. Otherwise, returns FALSE.</string>
          </map>
          <key>llSay</key>
          <map>
@@ -14769,24 +14761,24 @@
                <map>
                   <key>Channel</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Channel to use to say text on.</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Channel to use to say text on.</string>
                   </map>
                </map>
                <map>
                   <key>Text</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Text to say.</string>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string>Text to say.</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Says Text on Channel.</string>
+            <string>Says Text on Channel.\nThis chat method has a range of 20m radius.\nPUBLIC_CHANNEL is the public chat channel that all avatars see as chat text. DEBUG_CHANNEL is the script debug channel, and is also visible to nearby avatars. All other channels are are not sent to avatars, but may be used to communicate with scripts.</string>
          </map>
          <key>llScaleByFactor</key>
          <map>
@@ -14801,15 +14793,15 @@
                <map>
                   <key>ScalingFactor</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>The multiplier to be used with the prim sizes and their local positions.</string>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string>The multiplier to be used with the prim sizes and their local positions.</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Attempts to resize the entire object by scaling_factor, maintaining the size-position ratios of the prims.\n\nResizing is subject to prim scale limits and linkability limits. This function can not resize the object if the linkset is physical, a pathfinding character, in a keyframed motion, or if resizing would cause the parcel to overflow.\nReturns a boolean (an integer) TRUE if it succeeds, FALSE if it fails.</string>
+            <string>Attempts to resize the entire object by ScalingFactor, maintaining the size-position ratios of the prims.\n\nResizing is subject to prim scale limits and linkability limits. This function can not resize the object if the linkset is physical, a pathfinding character, in a keyframed motion, or if resizing would cause the parcel to overflow.\nReturns a boolean (an integer) TRUE if it succeeds, FALSE if it fails.</string>
          </map>
          <key>llScaleTexture</key>
          <map>
@@ -14824,33 +14816,33 @@
                <map>
                   <key>Horizontal</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Vertical</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Face</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Sets the texture's S and T scales for the chosen Face.</string>
+            <string>Sets the diffuse texture Horizontal and Vertical repeats on Face of the prim the script is attached to.\nIf Face == ALL_SIDES, all sides are set in one call.\nNegative values for horizontal and vertical will flip the texture.</string>
          </map>
          <key>llScriptDanger</key>
          <map>
@@ -14865,15 +14857,15 @@
                <map>
                   <key>Position</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns TRUE if Position is over public land, sandbox land, land that doesn't allow everyone to edit and build, or land that doesn't allow outside scripts.</string>
+            <string>Returns TRUE if Position is over public land, sandbox land, land that doesn't allow everyone to edit and build, or land that doesn't allow outside scripts.\nReturns true if the position is over public land, land that doesn't allow everyone to edit and build, or land that doesn't allow outside scripts.</string>
          </map>
          <key>llScriptProfiler</key>
          <map>
@@ -14888,16 +14880,15 @@
                <map>
                   <key>State</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>PROFILE_NONE or PROFILE_SCRIPT_MEMORY flags to control the state.</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>PROFILE_NONE or PROFILE_SCRIPT_MEMORY flags to control the state.</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Enables or disables script profiling options. Currently only supports PROFILE_SCRIPT_MEMORY (Mono only) and PROFILE_NONE.\n
-				MAY SIGNIFICANTLY REDUCE SCRIPT PERFORMANCE!.</string>
+            <string>Enables or disables script profiling options. Currently only supports PROFILE_SCRIPT_MEMORY (Mono only) and PROFILE_NONE.\nMay significantly reduce script performance.</string>
          </map>
          <key>llSendRemoteData</key>
          <map>
@@ -14914,44 +14905,42 @@
                <map>
                   <key>ChannelID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Destination</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Value</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Text</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Deprecated: use HTTP instead.\n
-				Sends an XML-RPC request to Destination through ChannelID with payload of ChannelID (in a string), integer Value and string Text.
-				Returns a key that is the message_id for the resulting remote_data events.</string>
+            <string>Deprecated: use HTTP functions and events instead.\nSends an XML-RPC request to Destination through ChannelID with payload of ChannelID (in a string), integer Value and string Text.\nReturns a key that is the message_id for the resulting remote_data events.</string>
          </map>
          <key>llSensor</key>
          <map>
@@ -14966,51 +14955,51 @@
                <map>
                   <key>Name</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Object or avatar name.</string>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string>Object or avatar name.</string>
                   </map>
                </map>
                <map>
                   <key>ID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Object or avatar UUID.</string>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string>Object or avatar UUID.</string>
                   </map>
                </map>
                <map>
                   <key>Type</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Bit-field mask of AGENT, AGENT_BY_LEGACY_NAME, AGENT_BY_USERNAME, ACTIVE, PASSIVE, and/or SCRIPTED</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Bit-field mask of AGENT, AGENT_BY_LEGACY_NAME, AGENT_BY_USERNAME, ACTIVE, PASSIVE, and/or SCRIPTED</string>
                   </map>
                </map>
                <map>
                   <key>Range</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Distance to scan. 0.0 - 96.0m.</string>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string>Distance to scan. 0.0 - 96.0m.</string>
                   </map>
                </map>
                <map>
                   <key>Arc</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Angle, in radians, from the local x-axis of the prim to scan.</string>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string>Angle, in radians, from the local x-axis of the prim to scan.</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Performs a single scan for Name and ID with Type (AGENT, ACTIVE, PASSIVE, and/or SCRIPTED) within Range meters and Arc radians of forward vector (Name, ID, and/or Type can be empty or 0).</string>
+            <string>Performs a single scan for Name and ID with Type (AGENT, ACTIVE, PASSIVE, and/or SCRIPTED) within Range meters and Arc radians of forward vector.\nSpecifying a blank Name, 0 Type, or NULL_KEY ID will prevent filtering results based on that parameter. A range of 0.0 does not perform a scan.\nResults are returned in the sensor and no_sensor events.</string>
          </map>
          <key>llSensorRemove</key>
          <map>
@@ -15023,7 +15012,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>removes sensor.</string>
+            <string>removes sensor.\nRemoves the sensor set by llSensorRepeat.</string>
          </map>
          <key>llSensorRepeat</key>
          <map>
@@ -15038,60 +15027,60 @@
                <map>
                   <key>Name</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Object or avatar name.</string>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string>Object or avatar name.</string>
                   </map>
                </map>
                <map>
                   <key>ID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Object or avatar UUID.</string>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string>Object or avatar UUID.</string>
                   </map>
                </map>
                <map>
                   <key>Type</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Bit-field mask of AGENT, AGENT_BY_LEGACY_NAME, AGENT_BY_USERNAME, ACTIVE, PASSIVE, and/or SCRIPTED</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Bit-field mask of AGENT, AGENT_BY_LEGACY_NAME, AGENT_BY_USERNAME, ACTIVE, PASSIVE, and/or SCRIPTED</string>
                   </map>
                </map>
                <map>
                   <key>Range</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Distance to scan. 0.0 - 96.0m.</string>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string>Distance to scan. 0.0 - 96.0m.</string>
                   </map>
                </map>
                <map>
                   <key>Arc</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Angle, in radians, from the local x-axis of the prim to scan.</string>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string>Angle, in radians, from the local x-axis of the prim to scan.</string>
                   </map>
                </map>
                <map>
                   <key>Rate</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Period, in seconds, between scans.</string>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string>Period, in seconds, between scans.</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Sets a callback for Name and ID with Type (AGENT, ACTIVE, PASSIVE, and/or SCRIPTED) within Range meters and Arc radians of forward vector (Name, ID, and/or Type can be empty or 0) and repeats every Rate seconds.</string>
+            <string>Initiates a periodic scan every Rate seconds, for Name and ID with Type (AGENT, ACTIVE, PASSIVE, and/or SCRIPTED) within Range meters and Arc radians of forward vector.\nSpecifying a blank Name, 0 Type, or NULL_KEY ID will prevent filtering results based on that parameter. A range of 0.0 does not perform a scan.\nResults are returned in the sensor and no_sensor events.</string>
          </map>
          <key>llSetAlpha</key>
          <map>
@@ -15106,24 +15095,24 @@
                <map>
                   <key>Opacity</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Face</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Sets the alpha (opacity) of Face.</string>
+            <string>Sets the alpha (opacity) of Face.\nSets the alpha (opacity) value for Face. If Face is ALL_SIDES, sets the alpha for all faces. The alpha value is interpreted as an opacity percentage (1.0 is fully opaque, and 0.2 is mostly transparent). This function will clamp alpha values less than 0.1 to 0.1 and greater than 1.0 to 1.</string>
          </map>
          <key>llSetAngularVelocity</key>
          <map>
@@ -15136,26 +15125,26 @@
             <key>arguments</key>
             <array>
                <map>
-                  <key>Force</key>
+                  <key>AngVel</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>The force to apply.</string>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string>The angular velocity to set the object to.</string>
                   </map>
                </map>
                <map>
                   <key>Local</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>If TRUE, the Force is treated as a local directional vector instead of a regional directional vector.</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>If TRUE, the AngVel is treated as a local directional vector instead of a regional directional vector.</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Sets an object's angular velocity, in local coordinates if local == TRUE (if the script is physical).</string>
+            <string>Sets an object's angular velocity to AngVel, in local coordinates if Local == TRUE (if the script is physical).\nHas no effect on non-physical objects.</string>
          </map>
          <key>llSetAnimationOverride</key>
          <map>
@@ -15170,24 +15159,24 @@
                <map>
                   <key>AnimationState</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>AnimationName</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Sets the animation (in object inventory) that will play for the given animation state.</string>
+            <string>Sets the animation (in object inventory) that will play for the given animation state.\nTo use this function the script must obtain the PERMISSION_OVERRIDE_ANIMATIONS permission.</string>
          </map>
          <key>llSetBuoyancy</key>
          <map>
@@ -15202,15 +15191,15 @@
                <map>
                   <key>Buoyancy</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Set the tasks buoyancy (0 is none, &lt; 1.0 sinks, 1.0 floats, &gt; 1.0 rises).</string>
+            <string>Set the tasks buoyancy (0 is none, &lt; 1.0 sinks, 1.0 floats, &gt; 1.0 rises).\nSet the object buoyancy. A value of 0 is none, less than 1.0 sinks, 1.0 floats, and greater than 1.0 rises.</string>
          </map>
          <key>llSetCameraAtOffset</key>
          <map>
@@ -15225,15 +15214,15 @@
                <map>
                   <key>Offset</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Sets the camera used in this object, at offset, if an avatar sits on it.</string>
+            <string>Sets the camera used in this object, at offset, if an avatar sits on it.\nSets the offset that an avatar's camera will be moved to if the avatar sits on the object.</string>
          </map>
          <key>llSetCameraEyeOffset</key>
          <map>
@@ -15248,10 +15237,10 @@
                <map>
                   <key>Offset</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -15271,10 +15260,10 @@
                <map>
                   <key>Parameters</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -15294,10 +15283,10 @@
                <map>
                   <key>Action</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>A CLICK_ACTION_* flag</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>A CLICK_ACTION_* flag</string>
                   </map>
                </map>
             </array>
@@ -15317,24 +15306,24 @@
                <map>
                   <key>Colour</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Face</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Sets the color, for the face.</string>
+            <string>Sets the color, for the face.\nSets the colour of the side specified. If Face is ALL_SIDES, sets the colour on all faces.</string>
          </map>
          <key>llSetContentType</key>
          <map>
@@ -15349,24 +15338,24 @@
                <map>
                   <key>HTTPRequestID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>A valid http_request() key</string>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string>A valid http_request() key</string>
                   </map>
                </map>
                <map>
                   <key>ContentType</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Media type to use with any following llHTTPResponse(HTTPRequestID, ...)</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Media type to use with any following llHTTPResponse(HTTPRequestID, ...)</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Set the media type of an LSL HTTP server response.</string>
+            <string>Set the media type of an LSL HTTP server response to ContentType.\nHTTPRequestID must be a valid http_request ID. ContentType must be one of the CONTENT_TYPE_* constants.</string>
          </map>
          <key>llSetDamage</key>
          <map>
@@ -15381,15 +15370,15 @@
                <map>
                   <key>Damage</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Sets the amount of damage that will be done to an avatar that this task hits.	Task will be killed.</string>
+            <string>Sets the amount of damage that will be done to an avatar that this task hits.	Task will be killed.\nSets the amount of damage that will be done to an avatar that this object hits. This object will be destroyed on damaging an avatar, and no collision event is triggered.</string>
          </map>
          <key>llSetForce</key>
          <map>
@@ -15404,24 +15393,24 @@
                <map>
                   <key>Force</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Directional force.</string>
                      <key>type</key>
                      <string>vector</string>
-                  </map>
+                     <key>tooltip</key>
+                     <string>Directional force.</string>
+                  </map>
                </map>
                <map>
                   <key>Local</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Boolean, if TRUE uses local axis, if FALSE uses region axis.</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Boolean, if TRUE uses local axis, if FALSE uses region axis.</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Sets Force on object, in local coordinates if Local == TRUE (if the script is physical).</string>
+            <string>Sets Force on object, in object-local coordinates if Local == TRUE (otherwise, the region reference frame is used).\nOnly works on physical objects.</string>
          </map>
          <key>llSetForceAndTorque</key>
          <map>
@@ -15436,33 +15425,33 @@
                <map>
                   <key>Force</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Directional force.</string>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string>Directional force.</string>
                   </map>
                </map>
                <map>
                   <key>Torque</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Torque force.</string>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string>Torque force.</string>
                   </map>
                </map>
                <map>
                   <key>Local</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Boolean, if TRUE uses local axis, if FALSE uses region axis.</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Boolean, if TRUE uses local axis, if FALSE uses region axis.</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Sets the Force and Torque of object, in local coordinates if Local == TRUE (if the script is physical).</string>
+            <string>Sets the Force and Torque of object, in object-local coordinates if Local == TRUE (otherwise, the region reference frame is used).\nOnly works on physical objects.</string>
          </map>
          <key>llSetHoverHeight</key>
          <map>
@@ -15477,33 +15466,33 @@
                <map>
                   <key>Height</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Distance above the ground.</string>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string>Distance above the ground.</string>
                   </map>
                </map>
                <map>
                   <key>Water</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Boolean, if TRUE then hover above water too.</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Boolean, if TRUE then hover above water too.</string>
                   </map>
                </map>
                <map>
                   <key>Tau</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Seconds to critically damp in.</string>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string>Seconds to critically damp in.</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Critically damps to a Height (either above ground level or above the higher of land and water if water == TRUE).</string>
+            <string>Critically damps a physical object to a Height (either above ground level or above the higher of land and water if water == TRUE).\nDo not use with vehicles. Use llStopHover to stop hovering.</string>
          </map>
          <key>llSetInventoryPermMask</key>
          <map>
@@ -15520,28 +15509,28 @@
                <map>
                   <key>InventoryItem</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>An item in the prim's inventory</string>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string>An item in the prim's inventory</string>
                   </map>
                </map>
                <map>
                   <key>PermissionFlag</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>MASK_* flag</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>MASK_* flag</string>
                   </map>
                </map>
                <map>
                   <key>PermissionMask</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Permission bit-field (PERM_* flags)</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Permission bit-field (PERM_* flags)</string>
                   </map>
                </map>
             </array>
@@ -15561,24 +15550,24 @@
                <map>
                   <key>Keyframes</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Strided keyframe list of the form: position, orientation, time. Each keyframe is interpreted relative to the previous transform of the object.</string>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string>Strided keyframe list of the form: position, orientation, time. Each keyframe is interpreted relative to the previous transform of the object.</string>
                   </map>
                </map>
                <map>
                   <key>Options</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Requests that a non-physical object be key-framed according to key-frame list.</string>
+            <string>Requests that a non-physical object be key-framed according to key-frame list.\nSpecify a list of times, positions, and orientations to be followed by an object. The object will be smoothly moved between key-frames by the simulator. Collisions with other non-physical or key-framed objects will be ignored (no script events will fire and collision processing will not occur). Collisions with physical objects will be computed and reported, but the key-framed object will be unaffected by those collisions.\nKeyframes is a strided list containing positional, rotational, and time data for each step in the motion.  Options is a list containing optional arguments and parameters (specified by KFM_* constants).</string>
          </map>
          <key>llSetLinkAlpha</key>
          <map>
@@ -15593,33 +15582,33 @@
                <map>
                   <key>LinkNumber</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Opacity</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Face</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>If a prim exists in the link chain at LinkNumber, set Face to Opacity.</string>
+            <string>If a prim exists in the link chain at LinkNumber, set Face to Opacity.\nSets the Face, on the linked prim specified, to the Opacity.</string>
          </map>
          <key>llSetLinkCamera</key>
          <map>
@@ -15634,28 +15623,28 @@
                <map>
                   <key>LinkNumber</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Prim link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Prim link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag</string>
                   </map>
                </map>
                <map>
                   <key>EyeOffset</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Offset, relative to the object's centre and expressed in local coordinates, that the camera looks from.</string>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string>Offset, relative to the object's centre and expressed in local coordinates, that the camera looks from.</string>
                   </map>
                </map>
                <map>
                   <key>LookOffset</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Offset, relative to the object's centre and expressed in local coordinates, that the camera looks toward.</string>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string>Offset, relative to the object's centre and expressed in local coordinates, that the camera looks toward.</string>
                   </map>
                </map>
             </array>
@@ -15675,33 +15664,33 @@
                <map>
                   <key>LinkNumber</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag.</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag.</string>
                   </map>
                </map>
                <map>
                   <key>Colour</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Colour in RGB &lt;R.R, G.G, B.B&gt;</string>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string>Color in RGB &lt;R.R, G.G, B.B&gt;</string>
                   </map>
                </map>
                <map>
                   <key>Face</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Side number or ALL_SIDES.</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Side number or ALL_SIDES.</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>If a task exists in the link chain at LinkNumber, set the Face to color.</string>
+            <string>If a task exists in the link chain at LinkNumber, set the Face to color.\nSets the colour of the linked child's side, specified by LinkNumber.</string>
          </map>
          <key>llSetLinkMedia</key>
          <map>
@@ -15716,33 +15705,33 @@
                <map>
                   <key>Link</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims).</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims).</string>
                   </map>
                </map>
                <map>
                   <key>Face</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Face number.</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Face number.</string>
                   </map>
                </map>
                <map>
                   <key>Parameters</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>A set of name/value pairs (in no particular order)</string>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string>A set of name/value pairs (in no particular order)</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Set the media parameters for a particular face on linked prim.	Parameters is a list of name/value pairs (in no particular order). If media is not already on this object, add it. Parameters not specified are unchanged, or if new media is added set to the default specified.</string>
+            <string>Set the media parameters for a particular face on linked prim, specified by Link. Returns an integer that is a STATUS_* flag which details the success/failure of the operation(s).\nMediaParameters is a set of name/value pairs in no particular order. Parameters not specified are unchanged, or if new media is added then set to the default specified.</string>
          </map>
          <key>llSetLinkPrimitiveParams</key>
          <map>
@@ -15757,24 +15746,24 @@
                <map>
                   <key>LinkNumber</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag</string>
                   </map>
                </map>
                <map>
                   <key>Parameters</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Set primitive parameters for LinkNumber based on Parameters.</string>
+            <string>Set primitive parameters for LinkNumber based on Parameters.\nSets the parameters (or properties) of any linked prim in one step.</string>
          </map>
          <key>llSetLinkPrimitiveParamsFast</key>
          <map>
@@ -15789,24 +15778,24 @@
                <map>
                   <key>LinkNumber</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag</string>
                   </map>
                </map>
                <map>
                   <key>Parameters</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Set primitive parameters for LinkNumber based on Parameters, without a delay.</string>
+            <string>Set primitive parameters for LinkNumber based on Parameters, without a delay.\nSet parameters for link number, from the list of Parameters, with no built-in script sleep. This function is identical to llSetLinkPrimitiveParams, except without the delay.</string>
          </map>
          <key>llSetLinkTexture</key>
          <map>
@@ -15821,28 +15810,28 @@
                <map>
                   <key>LinkNumber</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Texture</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Face</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -15862,78 +15851,78 @@
                <map>
                   <key>LinkNumber</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag to effect</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Link number (0: unlinked, 1: root prim, &gt;1: child prims) or a LINK_* flag to effect</string>
                   </map>
                </map>
                <map>
                   <key>Mode</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Bitmask of animation options.</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Bitmask of animation options.</string>
                   </map>
                </map>
                <map>
                   <key>Face</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Specifies which object face to animate or ALL_SIDES.</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Specifies which object face to animate or ALL_SIDES.</string>
                   </map>
                </map>
                <map>
                   <key>SizeX</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Horizontal frames (ignored for ROTATE and SCALE).</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Horizontal frames (ignored for ROTATE and SCALE).</string>
                   </map>
                </map>
                <map>
                   <key>SizeY</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Vertical frames (ignored for ROTATE and SCALE).</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Vertical frames (ignored for ROTATE and SCALE).</string>
                   </map>
                </map>
                <map>
                   <key>Start</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Start position/frame number (or radians for ROTATE).</string>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string>Start position/frame number (or radians for ROTATE).</string>
                   </map>
                </map>
                <map>
                   <key>Length</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Specifies the animation duration, in frames (or radians for ROTATE).</string>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string>Specifies the animation duration, in frames (or radians for ROTATE).</string>
                   </map>
                </map>
                <map>
                   <key>Rate</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Specifies the animation playback rate, in frames per second (must be greater than zero).</string>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string>Specifies the animation playback rate, in frames per second (must be greater than zero).</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Animates a texture on the prim specified by LinkNumber, by setting the texture scale and offset.</string>
+            <string>Animates a texture on the prim specified by LinkNumber, by setting the texture scale and offset.\nMode is a bitmask of animation options.\nFace specifies which object face to animate.\nSizeX and SizeY specify the number of horizontal and vertical frames.Start specifes the animation start point.\nLength specifies the animation duration.\nRate specifies the animation playback rate.</string>
          </map>
          <key>llSetLocalRot</key>
          <map>
@@ -15948,10 +15937,10 @@
                <map>
                   <key>Rotation</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>rotation</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -15961,7 +15950,7 @@
          <key>llSetMemoryLimit</key>
          <map>
             <key>energy</key>
-            <real/>
+            <real>10.0</real>
             <key>sleep</key>
             <real>0.0</real>
             <key>return</key>
@@ -15971,10 +15960,10 @@
                <map>
                   <key>Limit</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>The amount to reserve, which must be less than the allowed maximum (currently 64KB) and not already have been exceeded.</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>The amount to reserve, which must be less than the allowed maximum (currently 64KB) and not already have been exceeded.</string>
                   </map>
                </map>
             </array>
@@ -15994,10 +15983,10 @@
                <map>
                   <key>Description</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -16017,10 +16006,10 @@
                <map>
                   <key>Name</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -16042,19 +16031,19 @@
                <map>
                   <key>PermissionFlag</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>MASK_* flag</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>MASK_* flag</string>
                   </map>
                </map>
                <map>
                   <key>PermissionMask</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Permission bit-field (PERM_* flags)</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Permission bit-field (PERM_* flags)</string>
                   </map>
                </map>
             </array>
@@ -16074,10 +16063,10 @@
                <map>
                   <key>URL</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -16097,24 +16086,24 @@
                <map>
                   <key>Price</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>The default price shown in the textu input field.</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>The default price shown in the textu input field.</string>
                   </map>
                </map>
                <map>
                   <key>QuickButtons</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Specifies the 4 payment values shown in the payment dialog's buttons (or PAY_HIDE).</string>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string>Specifies the 4 payment values shown in the payment dialog's buttons (or PAY_HIDE).</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Sets the default amount when someone chooses to pay this object.</string>
+            <string>Sets the default amount when someone chooses to pay this object.\nPrice is the default price shown in the textu input field.  QuickButtons specifies the 4 payment values shown in the payment dialog's buttons.\nInput field and buttons may be hidden with PAY_HIDE constant, and may be set to their default values using PAY_DEFAULT.</string>
          </map>
          <key>llSetPhysicsMaterial</key>
          <map>
@@ -16129,51 +16118,51 @@
                <map>
                   <key>MaterialBits</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>A bitmask specifying which of the parameters in the other arguments should be applied to the object.</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>A bitmask specifying which of the parameters in the other arguments should be applied to the object.</string>
                   </map>
                </map>
                <map>
                   <key>GravityMultiplier</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Restitution</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Friction</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Density</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Sets the selected parameters of the root object's physics behaviour.</string>
+            <string>Sets the selected parameters of the object's physics behavior.\nMaterialBits is a bitmask specifying which of the parameters in the other arguments should be applied to the object. GravityMultiplier, Restitution, Friction, and Density are the possible parameters to manipulate.</string>
          </map>
          <key>llSetPos</key>
          <map>
@@ -16188,15 +16177,15 @@
                <map>
                   <key>Position</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Region coordinates to move to (within 10m).</string>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string>Region coordinates to move to (within 10m).</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>If the object is not physical, this function sets the position of the prim.</string>
+            <string>If the object is not physical, this function sets the position of the prim.\nIf the script is in a child prim, Position is treated as root relative and the link-set is adjusted.\nIf the prim is the root prim, the entire object is moved (up to 10m) to Position in region coordinates.</string>
          </map>
          <key>llSetPrimitiveParams</key>
          <map>
@@ -16211,22 +16200,22 @@
                <map>
                   <key>Parameters</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>A list of changes.</string>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string>A list of changes.</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>This function changes the many properties (or "parameters") of a prim in one operation.</string>
+            <string>This function changes the many properties (or "parameters") of a prim in one operation. Parameters is a list of changes.</string>
          </map>
          <key>llSetPrimMediaParams</key>
          <map>
             <key>energy</key>
             <real>10.0</real>
             <key>sleep</key>
-            <real>0.1</real>
+            <real>1.0</real>
             <key>return</key>
             <string>integer</string>
             <key>arguments</key>
@@ -16234,24 +16223,24 @@
                <map>
                   <key>Face</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Face number</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Face number</string>
                   </map>
                </map>
                <map>
                   <key>MediaParameters</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>A set of name/value pairs (in no particular order)</string>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string>A set of name/value pairs (in no particular order)</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Sets the MediaParameters for a particular Face on the prim. If media is not already on this prim, adds it.</string>
+            <string>Sets the MediaParameters for a particular Face on the prim. Returns an integer that is a STATUS_* flag which details the success/failure of the operation(s).\nMediaParameters is a set of name/value pairs in no particular order. Parameters not specified are unchanged, or if new media is added then set to the default specified.</string>
          </map>
          <key>llSetPrimURL</key>
          <map>
@@ -16268,10 +16257,10 @@
                <map>
                   <key>URL</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -16291,15 +16280,15 @@
                <map>
                   <key>Position</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Vector. The location to move to, in region coordinates.</string>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string>Vector. The location to move to, in region coordinates.</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Attempts to move the object so that the root prim is within 0.1m of Position.\nReturns an integer boolean, TRUE if the object is successfully placed within 0.1 m of Position, FALSE otherwise.</string>
+            <string>Attempts to move the object so that the root prim is within 0.1m of Position.\nReturns an integer boolean, TRUE if the object is successfully placed within 0.1 m of Position, FALSE otherwise.\nPosition may be any location within the region or up to 10m across a region border.\nIf the position is below ground, it will be set to the ground level at that x,y location.</string>
          </map>
          <key>llSetRemoteScriptAccessPin</key>
          <map>
@@ -16314,10 +16303,10 @@
                <map>
                   <key>PIN</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -16337,15 +16326,15 @@
                <map>
                   <key>Rotation</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>rotation</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>If the object is not physical, this function sets the rotation of the prim.</string>
+            <string>If the object is not physical, this function sets the rotation of the prim.\nIf the script is in a child prim, Rotation is treated as root relative and the link-set is adjusted.\nIf the prim is the root prim, the entire object is rotated to Rotation in the global reference frame.</string>
          </map>
          <key>llSetScale</key>
          <map>
@@ -16360,10 +16349,10 @@
                <map>
                   <key>Scale</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -16383,24 +16372,24 @@
                <map>
                   <key>ScriptName</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
-                  </map>
+                     <key>tooltip</key>
+                     <string/>
+                  </map>
                </map>
                <map>
                   <key>Running</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Enable or disable the script Running state of ScriptName in the prim.</string>
+            <string>Enable or disable the script Running state of Script in the prim.</string>
          </map>
          <key>llSetSitText</key>
          <map>
@@ -16415,15 +16404,15 @@
                <map>
                   <key>Text</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Displays Text rather than "Sit" in the viewer's context menu.</string>
+            <string>Displays Text rather than 'Sit' in the viewer's context menu.</string>
          </map>
          <key>llSetSoundQueueing</key>
          <map>
@@ -16438,15 +16427,15 @@
                <map>
                   <key>QueueEnable</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Boolean, sound queuing: TRUE enables, FALSE disables (default).</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Boolean, sound queuing: TRUE enables, FALSE disables (default).</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Determines whether attached sound calls wait for the current sound to finish (0 = no [default], non-zero = yes).</string>
+            <string>Sets whether successive calls to llPlaySound, llLoopSound, etc., (attached sounds) interrupt the currently playing sound.\nThe default for objects is FALSE. Setting this value to TRUE will make the sound wait until the current playing sound reaches its end. The queue is one level deep.</string>
          </map>
          <key>llSetSoundRadius</key>
          <map>
@@ -16461,15 +16450,15 @@
                <map>
                   <key>Radius</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string>Maximum distance that sounds can be heard.</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Establishes a hard cut-off radius for audibility of scripted sounds (both attached and triggered).</string>
+            <string>Limits radius for audibility of scripted sounds (both attached and triggered) to distance Radius.</string>
          </map>
          <key>llSetStatus</key>
          <map>
@@ -16484,24 +16473,24 @@
                <map>
                   <key>Status</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Value</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Sets status (STATUS_PHYSICS, STATUS_PHANTOM, STATUS_BLOCK_GRAB, STATUS_ROTATE_X, STATUS_ROTATE_Y, and/or STATUS_ROTATE_Z) to value.</string>
+            <string>Sets object status specified in Status bitmask (e.g. STATUS_PHYSICS|STATUS_PHANTOM) to boolean Value.\nFor a full list of STATUS_* constants, see wiki documentation.</string>
          </map>
          <key>llSetText</key>
          <map>
@@ -16516,33 +16505,33 @@
                <map>
                   <key>Text</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
-                  <key>Colour</key>
+                  <key>Color</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Opacity</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Set text floating over object.</string>
+            <string>Causes Text to float above the prim, using the specified Color and Opacity.</string>
          </map>
          <key>llSetTexture</key>
          <map>
@@ -16557,24 +16546,24 @@
                <map>
                   <key>Texture</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Face</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Sets the Texture of Face.</string>
+            <string>Applies Texture to Face of prim.\nTexture may be a UUID or name of a texture in prim inventory.\nIf Face is ALL_SIDES, set the texture on all faces.</string>
          </map>
          <key>llSetTextureAnim</key>
          <map>
@@ -16589,69 +16578,69 @@
                <map>
                   <key>Mode</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Mask of Mode flags.</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Mask of Mode flags.</string>
                   </map>
                </map>
                <map>
                   <key>Face</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Face number or ALL_SIDES.</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Face number or ALL_SIDES.</string>
                   </map>
                </map>
                <map>
                   <key>SizeX</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Horizontal frames (ignored for ROTATE and SCALE).</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Horizontal frames (ignored for ROTATE and SCALE).</string>
                   </map>
                </map>
                <map>
                   <key>SizeY</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Vertical frames (ignored for ROTATE and SCALE).</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Vertical frames (ignored for ROTATE and SCALE).</string>
                   </map>
                </map>
                <map>
                   <key>Start</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Start position/frame number (or radians for ROTATE).</string>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string>Start position/frame number (or radians for ROTATE).</string>
                   </map>
                </map>
                <map>
                   <key>Length</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>number of frames to display (or radians for ROTATE).</string>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string>number of frames to display (or radians for ROTATE).</string>
                   </map>
                </map>
                <map>
                   <key>Rate</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Frames per second (must not greater than zero).</string>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string>Frames per second (must not greater than zero).</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Animate the texture on the specified face/faces.</string>
+            <string>Animates a texture by setting the texture scale and offset.\nMode is a bitmask of animation options.\nFace specifies which object face to animate.\nSizeX and SizeY specify the number of horizontal and vertical frames.Start specifes the animation start point.\nLength specifies the animation duration.\nRate specifies the animation playback rate.</string>
          </map>
          <key>llSetTimerEvent</key>
          <map>
@@ -16666,15 +16655,15 @@
                <map>
                   <key>Rate</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Cause the timer event to be triggered every Rate seconds.</string>
+            <string>Causes the timer event to be triggered every Rate seconds.\n Passing in 0.0 stops further timer events.</string>
          </map>
          <key>llSetTorque</key>
          <map>
@@ -16689,24 +16678,24 @@
                <map>
                   <key>Torque</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Torque force.</string>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string>Torque force.</string>
                   </map>
                </map>
                <map>
                   <key>Local</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Boolean, if TRUE uses local axis, if FALSE uses region axis.</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Boolean, if TRUE uses local axis, if FALSE uses region axis.</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Sets the Torque of object, in local coordinates if Local == TRUE (if the script is physical).</string>
+            <string>Sets the Torque acting on the script's object, in object-local coordinates if Local == TRUE (otherwise, the region reference frame is used).\nOnly works on physical objects.</string>
          </map>
          <key>llSetTouchText</key>
          <map>
@@ -16721,15 +16710,15 @@
                <map>
                   <key>Text</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Displays Text in the menu that acts on a touch.</string>
+            <string>Displays Text in the viewer context menu that acts on a touch.</string>
          </map>
          <key>llSetVehicleFlags</key>
          <map>
@@ -16744,15 +16733,15 @@
                <map>
                   <key>Flags</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Sets the enabled bits in 'flags'.</string>
+            <string>Enables the vehicle flags specified in the Flags bitmask.\nValid parameters can be found in the wiki documentation.</string>
          </map>
          <key>llSetVehicleFloatParam</key>
          <map>
@@ -16767,24 +16756,24 @@
                <map>
                   <key>ParameterName</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>ParameterValue</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Sets the specified vehicle float parameter.</string>
+            <string>Sets a vehicle float parameter.\nValid parameters can be found in the wiki documentation.</string>
          </map>
          <key>llSetVehicleRotationParam</key>
          <map>
@@ -16799,24 +16788,24 @@
                <map>
                   <key>ParameterName</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>ParameterValue</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Sets the specified vehicle rotation parameter.</string>
+            <string>Sets a vehicle rotation parameter.\nValid parameters can be found in the wiki documentation.</string>
          </map>
          <key>llSetVehicleType</key>
          <map>
@@ -16831,15 +16820,15 @@
                <map>
                   <key>Type</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Sets vehicle to one of the default types.</string>
+            <string>Activates the vehicle action on the object with vehicle preset Type.\nValid Types and an explanation of their characteristics can be found in wiki documentation.</string>
          </map>
          <key>llSetVehicleVectorParam</key>
          <map>
@@ -16854,24 +16843,24 @@
                <map>
                   <key>ParameterName</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>ParameterValue</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Sets the specified vehicle vector parameter.</string>
+            <string>Sets a vehicle vector parameter.\nValid parameters can be found in the wiki documentation.</string>
          </map>
          <key>llSetVelocity</key>
          <map>
@@ -16884,26 +16873,26 @@
             <key>arguments</key>
             <array>
                <map>
-                  <key>Force</key>
+                  <key>Velocity</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>The force to apply.</string>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string>The velocity to apply.</string>
                   </map>
                </map>
                <map>
                   <key>Local</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>If TRUE, the vForce is treated as a local directional vector instead of a regional directional vector.</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>If TRUE, the Velocity is treated as a local directional vector instead of a regional directional vector.</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Sets an objects velocity, in local coordinates if Local == TRUE (if the script is physical).</string>
+            <string>If the object is physics-enabled, sets the object's linear velocity to Velocity.\nIf Local==TRUE, Velocity is treated as a local directional vector; otherwise, Velocity is treated as a global directional vector.</string>
          </map>
          <key>llSHA1String</key>
          <map>
@@ -16918,10 +16907,10 @@
                <map>
                   <key>Text</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -16941,24 +16930,24 @@
                <map>
                   <key>Channel</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Text</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>shouts Text on Channel.</string>
+            <string>Shouts Text on Channel.\nThis chat method has a range of 100m radius.\nPUBLIC_CHANNEL is the public chat channel that all avatars see as chat text. DEBUG_CHANNEL is the script debug channel, and is also visible to nearby avatars. All other channels are are not sent to avatars, but may be used to communicate with scripts.</string>
          </map>
          <key>llSin</key>
          <map>
@@ -16973,10 +16962,10 @@
                <map>
                   <key>Theta</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -16996,24 +16985,24 @@
                <map>
                   <key>Offset</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Rotation</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>rotation</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Set the sit location for this object (if offset == &lt;0,0,0&gt; clear it).</string>
+            <string>Set the sit location for this object. If offset == ZERO_VECTOR, clears the sit target.</string>
          </map>
          <key>llSleep</key>
          <map>
@@ -17028,10 +17017,10 @@
                <map>
                   <key>Time</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -17053,42 +17042,42 @@
                <map>
                   <key>Sound</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Volume</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Queue</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Loop</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Deprecated: Use llPlaySound instead.</string>
+            <string>Deprecated: Use llPlaySound instead.\nPlays Sound at Volume and specifies whether the sound should loop and/or be enqueued.</string>
          </map>
          <key>llSoundPreload</key>
          <map>
@@ -17105,15 +17094,15 @@
                <map>
                   <key>Sound</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Deprecated: Use llPreloadSound instead.</string>
+            <string>Deprecated: Use llPreloadSound instead.\nPreloads a sound on viewers within range.</string>
          </map>
          <key>llSqrt</key>
          <map>
@@ -17128,15 +17117,15 @@
                <map>
                   <key>Value</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the square root of Value, or returns 0 and triggers a Math Error for imaginary results.</string>
+            <string>Returns the square root of Value.\nTriggers a math runtime error for imaginary results (if Value &lt; 0.0).</string>
          </map>
          <key>llStartAnimation</key>
          <map>
@@ -17151,15 +17140,15 @@
                <map>
                   <key>Animation</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Start Animation for agent that owns object.</string>
+            <string>This function plays the specified animation from playing on the avatar who received the script's most recent permissions request.\nAnimation may be an animation in task inventory or a built-in animation.\nRequires PERMISSION_TRIGGER_ANIMATION.</string>
          </map>
          <key>llStopAnimation</key>
          <map>
@@ -17174,15 +17163,15 @@
                <map>
                   <key>Animation</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Stop Animation for agent that owns object.</string>
+            <string>This function stops the specified animation on the avatar who received the script's most recent permissions request.\nAnimation may be an animation in task inventory, a built-in animation, or the uuid of an animation.\nRequires PERMISSION_TRIGGER_ANIMATION.</string>
          </map>
          <key>llStopHover</key>
          <map>
@@ -17195,7 +17184,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Stop hovering to a height.</string>
+            <string>Stop hovering to a height (due to llSetHoverHeight()).</string>
          </map>
          <key>llStopLookAt</key>
          <map>
@@ -17208,7 +17197,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Stop causing object to point at a target.</string>
+            <string>Stop causing object to point at a target (due to llLookAt() or llRotLookAt()).</string>
          </map>
          <key>llStopMoveToTarget</key>
          <map>
@@ -17221,7 +17210,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Stops critically damped motion.</string>
+            <string>Stops critically damped motion (due to llMoveToTarget()).</string>
          </map>
          <key>llStopSound</key>
          <map>
@@ -17234,7 +17223,7 @@
             <key>arguments</key>
             <undef/>
             <key>tooltip</key>
-            <string>Stops currently attached sound.</string>
+            <string>Stops playback of the currently attached sound.</string>
          </map>
          <key>llStringLength</key>
          <map>
@@ -17249,15 +17238,15 @@
                <map>
                   <key>Text</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the length of string.</string>
+            <string>Returns an integer that is the number of characters in Text (not counting the null).</string>
          </map>
          <key>llStringToBase64</key>
          <map>
@@ -17272,15 +17261,15 @@
                <map>
                   <key>Text</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Converts a string to the Base64 representation of the string.</string>
+            <string>Returns the string Base64 representation of the input string.</string>
          </map>
          <key>llStringTrim</key>
          <map>
@@ -17295,25 +17284,24 @@
                <map>
                   <key>Text</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>String to trim</string>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string>String to trim</string>
                   </map>
                </map>
                <map>
                   <key>TrimType</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>STRING_TRIM_HEAD, STRING_TRIM_TAIL, or STRING_TRIM.</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>STRING_TRIM_HEAD, STRING_TRIM_TAIL, or STRING_TRIM.</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Trims the leading and/or trailing white spaces from a string.\n
-				TrimType can be STRING_TRIM, STRING_TRIM_HEAD or STRING_TRIM_TAIL.</string>
+            <string>Outputs a string, eliminating white-space from the start and/or end of the input string Text.\nValid options for TrimType:\nSTRING_TRIM_HEAD: trim all leading spaces in Text\nSTRING_TRIM_TAIL: trim all trailing spaces in Text\nSTRING_TRIM: trim all leading and trailing spaces in Text.</string>
          </map>
          <key>llSubStringIndex</key>
          <map>
@@ -17328,24 +17316,24 @@
                <map>
                   <key>Text</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Sequence</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns an integer that is the index in source where pattern first appears. Returns -1 if not found.</string>
+            <string>Returns an integer that is the index in Text where string pattern Sequence first appears. Returns -1 if not found.</string>
          </map>
          <key>llTakeCamera</key>
          <map>
@@ -17362,10 +17350,10 @@
                <map>
                   <key>AvatarID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -17385,33 +17373,33 @@
                <map>
                   <key>Controls</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Bit-field of CONTROL_* flags.</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Bit-field of CONTROL_* flags.</string>
                   </map>
                </map>
                <map>
                   <key>Accept</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Boolean, determines whether control events are generated.</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Boolean, determines whether control events are generated.</string>
                   </map>
                </map>
                <map>
                   <key>PassOn</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Boolean, determines whether controls are disabled.</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>Boolean, determines whether controls are disabled.</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Take controls from agent task has permissions for.	If (Accept == (controls &amp; input)), send input to task.	If PassOn send to agent also.</string>
+            <string>Take controls from the agent the script has permissions for.\nIf (Accept == (Controls &amp; input)), send input to the script.  PassOn determines whether Controls also perform their normal functions.\nRequires the PERMISSION_TAKE_CONTROLS permission to run.</string>
          </map>
          <key>llTan</key>
          <map>
@@ -17426,10 +17414,10 @@
                <map>
                   <key>Theta</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -17449,24 +17437,24 @@
                <map>
                   <key>Position</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Range</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Sets positions within range of position as a target and return an ID for the target.</string>
+            <string>This function is to have the script know when it has reached a position.\nIt registers a Position with a Range that triggers at_target and not_at_target events continuously until unregistered.</string>
          </map>
          <key>llTargetOmega</key>
          <map>
@@ -17481,33 +17469,33 @@
                <map>
                   <key>Axis</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>SpinRate</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Gain</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Attempt to spin at SpinRate with strength Gain.</string>
+            <string>Attempt to spin at SpinRate with strength Gain on Axis.\nA spin rate of 0.0 cancels the spin. This function always works in object-local coordinates.</string>
          </map>
          <key>llTargetRemove</key>
          <map>
@@ -17522,15 +17510,15 @@
                <map>
                   <key>Target</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Removes target number.</string>
+            <string>Removes positional target Handle registered with llTarget.</string>
          </map>
          <key>llTeleportAgent</key>
          <map>
@@ -17545,43 +17533,42 @@
                <map>
                   <key>AvatarID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>UUID of avatar.</string>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string>UUID of avatar.</string>
                   </map>
                </map>
                <map>
                   <key>LandmarkName</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Name of landmark (in object contents), or empty string, to use.</string>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string>Name of landmark (in object contents), or empty string, to use.</string>
                   </map>
                </map>
                <map>
                   <key>Position</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>If no landmark was provided, the position within the current region to teleport the avatar to.</string>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string>If no landmark was provided, the position within the current region to teleport the avatar to.</string>
                   </map>
                </map>
                <map>
                   <key>LookAtPoint</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>The position within the target region that the avatar should be turned to face upon arrival.</string>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string>The position within the target region that the avatar should be turned to face upon arrival.</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Requests a teleport of avatar to a landmark stored in the object's inventory. If no landmark is provided (an empty string), the avatar is teleported to the location position in the current region. In either case, the avatar is turned to face the position given by look_at in local coordinates.
-				Requires the PERMISSION_TELEPORT permission. This function can only teleport the owner of the object.</string>
+            <string>Requests a teleport of avatar to a landmark stored in the object's inventory. If no landmark is provided (an empty string), the avatar is teleported to the location position in the current region. In either case, the avatar is turned to face the position given by look_at in local coordinates.\nRequires the PERMISSION_TELEPORT permission. This function can only teleport the owner of the object.</string>
          </map>
          <key>llTeleportAgentGlobalCoords</key>
          <map>
@@ -17596,42 +17583,42 @@
                <map>
                   <key>AvatarID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>UUID of avatar.</string>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string>UUID of avatar.</string>
                   </map>
                </map>
                <map>
                   <key>GlobalPosition</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Global coordinates of the destination region. Can be retrieved by using llRequestSimulatorData(region_name, DATA_SIM_POS).</string>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string>Global coordinates of the destination region. Can be retrieved by using llRequestSimulatorData(region_name, DATA_SIM_POS).</string>
                   </map>
                </map>
                <map>
                   <key>RegionPosition</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>The position within the target region to teleport the avatar to, if no landmark was provided.</string>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string>The position within the target region to teleport the avatar to, if no landmark was provided.</string>
                   </map>
                </map>
                <map>
                   <key>LookAtPoint</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>The position within the target region that the avatar should be turned to face upon arrival.</string>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string>The position within the target region that the avatar should be turned to face upon arrival.</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Teleports an agent to set of a region_coordinates within a region at the specified global_coordinates. The agent lands facing the position defined by look_at local coordinates.</string>
+            <string>Teleports an agent to the RegionPosition local coordinates within a region which is specified by the GlobalPosition global coordinates. The agent lands facing the position defined by LookAtPoint local coordinates.\nRequires the PERMISSION_TELEPORT permission. This function can only teleport the owner of the object.</string>
          </map>
          <key>llTeleportAgentHome</key>
          <map>
@@ -17646,15 +17633,15 @@
                <map>
                   <key>AvatarID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Teleports agent on owner's land to agent's home location.</string>
+            <string>Teleport agent over the owner's land to agent's home location.</string>
          </map>
          <key>llTextBox</key>
          <map>
@@ -17669,33 +17656,33 @@
                <map>
                   <key>AvatarID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Text</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Channel</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Shows a dialog box on the avatar's screen with the message. A text box asks for input, and if entered the Text is chatted on Channel.</string>
+            <string>Opens a dialog for the specified avatar with message Text, which contains a text box for input. Any text that is entered is said on the specified Channel (as if by the avatar) when the "OK" button is clicked.</string>
          </map>
          <key>llToLower</key>
          <map>
@@ -17710,10 +17697,10 @@
                <map>
                   <key>Text</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -17733,10 +17720,10 @@
                <map>
                   <key>Text</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -17746,7 +17733,7 @@
          <key>llTransferLindenDollars</key>
          <map>
             <key>energy</key>
-            <real/>
+            <real>10.0</real>
             <key>sleep</key>
             <real>0.0</real>
             <key>return</key>
@@ -17756,24 +17743,24 @@
                <map>
                   <key>AvatarID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Amount</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Transfer Amount of linden dollars (L$) from script owner to AvatarID. Returns a key to a corresponding transaction_result event for the success of the transfer.</string>
+            <string>Transfer Amount of linden dollars (L$) from script owner to AvatarID. Returns a key to a corresponding transaction_result event for the success of the transfer.\nAttempts to send the amount of money to the specified avatar, and trigger a transaction_result event identified by the returned key.</string>
          </map>
          <key>llTriggerSound</key>
          <map>
@@ -17788,24 +17775,24 @@
                <map>
                   <key>Sound</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Volume</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Plays Sound at Volume (0.0 - 1.0), centered at but not attached to object.</string>
+            <string>Plays Sound at Volume (0.0 - 1.0), centered at but not attached to object.\nThere is no limit to the number of triggered sounds which can be generated by an object, and calling llTriggerSound does not affect the attached sounds created by llPlaySound and llLoopSound. This is very useful for things like collision noises, explosions, etc. There is no way to stop or alter the volume of a sound triggered by this function.</string>
          </map>
          <key>llTriggerSoundLimited</key>
          <map>
@@ -17820,42 +17807,42 @@
                <map>
                   <key>Sound</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Volume</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>TNE</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>BSW</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Plays Sound at Volume (0.0 - 1.0), centered at but not attached to object, limited to axis-aligned bounding box defined by vectors top-north-east (TNE) and bottom-south-west (BSW).</string>
+            <string>Plays Sound at Volume (0.0 - 1.0), centered at but not attached to object, limited to axis-aligned bounding box defined by vectors top-north-east (TNE) and bottom-south-west (BSW).\nThere is no limit to the number of triggered sounds which can be generated by an object, and calling llTriggerSound does not affect the attached sounds created by llPlaySound and llLoopSound. This is very useful for things like collision noises, explosions, etc. There is no way to stop or alter the volume of a sound triggered by this function.</string>
          </map>
          <key>llUnescapeURL</key>
          <map>
@@ -17870,15 +17857,15 @@
                <map>
                   <key>URL</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns an unescaped/ unencoded version of URL, replacing %20 with spaces etc.</string>
+            <string>Returns the string that is the URL unescaped, replacing "%20" with spaces, etc., version of URL.\nThis function can output raw UTF-8 strings.</string>
          </map>
          <key>llUnSit</key>
          <map>
@@ -17893,10 +17880,10 @@
                <map>
                   <key>AvatarID</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>key</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
@@ -17906,9 +17893,9 @@
          <key>llUpdateCharacter</key>
          <map>
             <key>energy</key>
-            <real/>
+            <real>10.0</real>
             <key>sleep</key>
-            <real/>
+            <real>0.0</real>
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
@@ -17916,15 +17903,15 @@
                <map>
                   <key>Options</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Character configuration options. Takes the same constants as llCreateCharacter().</string>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string>Character configuration options. Takes the same constants as llCreateCharacter().</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Change the character's settings.</string>
+            <string>Updates settings for a pathfinding character.</string>
          </map>
          <key>llVecDist</key>
          <map>
@@ -17939,24 +17926,24 @@
                <map>
                   <key>Location1</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Location2</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the 3D distance between Location1 and Location2.</string>
+            <string>Returns the distance between Location1 and Location2.</string>
          </map>
          <key>llVecMag</key>
          <map>
@@ -17971,15 +17958,15 @@
                <map>
                   <key>Vector</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the magnitude of Vector.</string>
+            <string>Returns the magnitude of the vector.</string>
          </map>
          <key>llVecNorm</key>
          <map>
@@ -17994,15 +17981,15 @@
                <map>
                   <key>Vector</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the v normalized.</string>
+            <string>Returns normalized vector.</string>
          </map>
          <key>llVolumeDetect</key>
          <map>
@@ -18017,22 +18004,22 @@
                <map>
                   <key>DetectEnabled</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>.TRUE enables, FALSE disables.</string>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string>TRUE enables, FALSE disables.</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>If DetectEnabled = TRUE, object becomes phantom but triggers collision_start and collision_end events when other objects start and stop interpenetrating. Must be applied to the root object.</string>
+            <string>If DetectEnabled = TRUE, object becomes phantom but triggers collision_start and collision_end events when other objects start and stop interpenetrating.\nIf another object (including avatars) interpenetrates it, it will get a collision_start event.\nWhen an object stops interpenetrating, a collision_end event is generated. While the other is inter-penetrating, collision events are NOT generated.</string>
          </map>
          <key>llWanderWithin</key>
          <map>
             <key>energy</key>
-            <real/>
+            <real>10.0</real>
             <key>sleep</key>
-            <real/>
+            <real>0.0</real>
             <key>return</key>
             <string>void</string>
             <key>arguments</key>
@@ -18040,33 +18027,33 @@
                <map>
                   <key>Origin</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Central point to wander about.</string>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string>Central point to wander about.</string>
                   </map>
                </map>
                <map>
                   <key>Area</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>Half-extents of an area the character may wander within. (i.e., it can wander from the specified origin by up to +/-Distance.x in x, +/-Distance.y in y, etc.)</string>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string>Half-extents of an area the character may wander within. (i.e., it can wander from the specified origin by up to +/-Distance.x in x, +/-Distance.y in y, etc.)</string>
                   </map>
                </map>
                <map>
                   <key>Options</key>
                   <map>
-                     <key>tooltip</key>
-                     <string>No options available at this time.</string>
                      <key>type</key>
                      <string>list</string>
+                     <key>tooltip</key>
+                     <string>No options available at this time.</string>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Wander within a specified volume.</string>
+            <string>Wander within a specified volume.\nSets a character to wander about a central spot within a specified area.</string>
          </map>
          <key>llWater</key>
          <map>
@@ -18081,15 +18068,15 @@
                <map>
                   <key>Offset</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the water height below the object position + offset.</string>
+            <string>Returns the water height below the object position + Offset.</string>
          </map>
          <key>llWhisper</key>
          <map>
@@ -18104,24 +18091,24 @@
                <map>
                   <key>Channel</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>integer</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Text</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Whispers Text on Channel.</string>
+            <string>Whispers Text on Channel.\nThis chat method has a range of 10m radius.\nPUBLIC_CHANNEL is the public chat channel that all avatars see as chat text. DEBUG_CHANNEL is the script debug channel, and is also visible to nearby avatars. All other channels are are not sent to avatars, but may be used to communicate with scripts.</string>
          </map>
          <key>llWind</key>
          <map>
@@ -18136,22 +18123,22 @@
                <map>
                   <key>Offset</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>vector</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the wind velocity at the object position + offset.</string>
+            <string>Returns the wind velocity at the object position + Offset.</string>
          </map>
          <key>llXorBase64</key>
          <map>
             <key>energy</key>
             <real>10.0</real>
             <key>sleep</key>
-            <real>0.3</real>
+            <real>0.0</real>
             <key>return</key>
             <string>string</string>
             <key>arguments</key>
@@ -18159,24 +18146,24 @@
                <map>
                   <key>Text1</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Text2</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Performs an exclusive OR on two Base64 strings and returns a Base64 string.	Text2 repeats if it is shorter than Text1.	Retained for backwards compatibility.</string>
+            <string>Performs an exclusive OR on two Base64 strings and returns a Base64 string. Text2 repeats if it is shorter than Text1.</string>
          </map>
          <key>llXorBase64Strings</key>
          <map>
@@ -18193,25 +18180,24 @@
                <map>
                   <key>Text1</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Text2</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Deprecated: Please use llXorBase64 instead.\n
-				Incorrectly performs an exclusive OR on two Base64 strings and returns a Base64 string.	Text2 repeats if it is shorter than Text1.	Retained for backwards compatibility.</string>
+            <string>Deprecated: Please use llXorBase64 instead.\nIncorrectly performs an exclusive OR on two Base64 strings and returns a Base64 string. Text2 repeats if it is shorter than Text1.\nRetained for backwards compatibility.</string>
          </map>
          <key>llXorBase64StringsCorrect</key>
          <map>
@@ -18228,29 +18214,76 @@
                <map>
                   <key>Text1</key>
                   <map>
-                     <key>tooltip</key>
-                     <string/>
                      <key>type</key>
                      <string>string</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
                <map>
                   <key>Text2</key>
                   <map>
+                     <key>type</key>
+                     <string>string</string>
                      <key>tooltip</key>
                      <string/>
+                  </map>
+               </map>
+            </array>
+            <key>tooltip</key>
+            <string>Deprecated: Please use llXorBase64 instead.\nCorrectly (unless nulls are present) performs an exclusive OR on two Base64 strings and returns a Base64 string.\nText2 repeats if it is shorter than Text1.</string>
+         </map>
+         <key>llGetMinScaleFactor</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the smallest multiplicative uniform scale factor that can be successfully applied (via llScaleByFactor()) to the object without violating prim size or linkability rules.</string>
+         </map>
+         <key>llGetMaxScaleFactor</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <undef/>
+            <key>tooltip</key>
+            <string>Returns the largest multiplicative uniform scale factor that can be successfully applied (via llScaleByFactor()) to the object without violating prim size or linkability rules.</string>
+         </map>
+         <key>llScaleByFactor</key>
+         <map>
+            <key>energy</key>
+            <real>10.0</real>
+            <key>sleep</key>
+            <real>0.0</real>
+            <key>return</key>
+            <string>float</string>
+            <key>arguments</key>
+            <array>
+               <map>
+                  <key>Factor</key>
+                  <map>
                      <key>type</key>
-                     <string>string</string>
+                     <string>float</string>
+                     <key>tooltip</key>
+                     <string/>
                   </map>
                </map>
             </array>
             <key>tooltip</key>
-            <string>Deprecated: Please use llXorBase64 instead.\n
-				Correctly (unless nulls are present) performs an exclusive OR on two Base64 strings and returns a Base64 string.\n
-				Text2 repeats if it is shorter than Text1.</string>
+            <string>Tries to uniformly scale the object by a multiplicative factor.  Returns TRUE on success or FALSE on failure.</string>
          </map>
       </map>
       <key>llsd-lsl-syntax-version</key>
       <integer>2</integer>
    </map>
-</llsd>
\ No newline at end of file
+</llsd>
-- 
cgit v1.2.3


From 64816059b68188842ada767b5a2b6145b62017d4 Mon Sep 17 00:00:00 2001
From: Oz Linden <oz@lindenlab.com>
Date: Tue, 25 Feb 2014 14:44:53 -0500
Subject: don't use the simulator channel in the keywords cache file name

---
 indra/newview/llsyntaxid.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'indra')

diff --git a/indra/newview/llsyntaxid.cpp b/indra/newview/llsyntaxid.cpp
index 3ee9859ccd..b558a113fb 100644
--- a/indra/newview/llsyntaxid.cpp
+++ b/indra/newview/llsyntaxid.cpp
@@ -147,7 +147,7 @@ LLSyntaxIdLSL::LLSyntaxIdLSL() :
 
 std::string LLSyntaxIdLSL::buildFileNameNew()
 {
-	mFileNameNew = mSyntaxIdNew.isNull() ? mFileNameDefault : "keywords_lsl_" + gLastVersionChannel + "_" + mSyntaxIdNew.asString() + ".llsd.xml";
+	mFileNameNew = mSyntaxIdNew.isNull() ? mFileNameDefault : "keywords_lsl_" + "_" + mSyntaxIdNew.asString() + ".llsd.xml";
 	return mFileNameNew;
 }
 
-- 
cgit v1.2.3


From acc71d628dd024059bb221ef260c9d6d12a0cbd2 Mon Sep 17 00:00:00 2001
From: Oz Linden <oz@lindenlab.com>
Date: Tue, 25 Feb 2014 17:20:44 -0500
Subject: fix typo

---
 indra/newview/llsyntaxid.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'indra')

diff --git a/indra/newview/llsyntaxid.cpp b/indra/newview/llsyntaxid.cpp
index b558a113fb..3d63ab93a0 100644
--- a/indra/newview/llsyntaxid.cpp
+++ b/indra/newview/llsyntaxid.cpp
@@ -147,7 +147,7 @@ LLSyntaxIdLSL::LLSyntaxIdLSL() :
 
 std::string LLSyntaxIdLSL::buildFileNameNew()
 {
-	mFileNameNew = mSyntaxIdNew.isNull() ? mFileNameDefault : "keywords_lsl_" + "_" + mSyntaxIdNew.asString() + ".llsd.xml";
+	mFileNameNew = mSyntaxIdNew.isNull() ? mFileNameDefault : "keywords_lsl_" + mSyntaxIdNew.asString() + ".llsd.xml";
 	return mFileNameNew;
 }
 
-- 
cgit v1.2.3


From e0a015920d3c0f793cadb88b7b8c4cedca61d2fb Mon Sep 17 00:00:00 2001
From: Ricky Curtice <kf6kjg+hg@gmail.com>
Date: Sun, 2 Mar 2014 14:33:57 -0800
Subject: STORM-1920: Richard fixed and optimized a ton more math.

From Richard: There are a bunch of things I changed...mainly I eliminated all the grid_offset nonsense and instead simply calculate the tick index for the current drag position and use that to generate a snapped position as needed.  I still use approx_equal because I want grid numbers to light up even when they aren't the axis you are currently snapping to.
---
 indra/llmath/llmath.h          |   1 +
 indra/newview/llmanipscale.cpp | 351 ++++++++++++++++++++++++-----------------
 indra/newview/llmanipscale.h   |   4 +-
 3 files changed, 209 insertions(+), 147 deletions(-)

(limited to 'indra')

diff --git a/indra/llmath/llmath.h b/indra/llmath/llmath.h
index b93f89d674..5abd9a0d06 100755
--- a/indra/llmath/llmath.h
+++ b/indra/llmath/llmath.h
@@ -72,6 +72,7 @@ const F32	F_E			= 2.71828182845904523536f;
 const F32	F_SQRT2		= 1.4142135623730950488016887242097f;
 const F32	F_SQRT3		= 1.73205080756888288657986402541f;
 const F32	OO_SQRT2	= 0.7071067811865475244008443621049f;
+const F32	OO_SQRT3	= 0.577350269189625764509f;
 const F32	DEG_TO_RAD	= 0.017453292519943295769236907684886f;
 const F32	RAD_TO_DEG	= 57.295779513082320876798154814105f;
 const F32	F_APPROXIMATELY_ZERO = 0.00001f;
diff --git a/indra/newview/llmanipscale.cpp b/indra/newview/llmanipscale.cpp
index 087f617bbb..e93420ae21 100755
--- a/indra/newview/llmanipscale.cpp
+++ b/indra/newview/llmanipscale.cpp
@@ -190,9 +190,11 @@ LLManipScale::LLManipScale( LLToolComposite* composite )
 	mScaleSnapUnit1(1.f),
 	mScaleSnapUnit2(1.f),
 	mSnapRegimeOffset(0.f),
+	mTickPixelSpacing1(0.f),
+	mTickPixelSpacing2(0.f),
 	mSnapGuideLength(0.f),
 	mInSnapRegime(FALSE),
-	mScaleSnapValue(0.f)
+	mScaleSnappedValue(0.f)
 { 
 	mManipulatorScales = new F32[NUM_MANIPULATORS];
 	for (S32 i = 0; i < NUM_MANIPULATORS; i++)
@@ -556,29 +558,29 @@ void LLManipScale::renderFaces( const LLBBox& bbox )
 		return;
 	}
 
-    // This is a flattened representation of the box as render here
-    //                                       .
-    //              (+++)        (++-)      /|\t
-    //                +------------+         | (texture coordinates)
-    //                |            |         |
-    //                |     1      |        (*) --->s
-    //                |    +X      |   
+	// This is a flattened representation of the box as render here
+	//                                       .
+	//              (+++)        (++-)      /|\t
+	//                +------------+         | (texture coordinates)
+	//                |            |         |
+	//                |     1      |        (*) --->s
+	//                |    +X      |   
 	//                |            |
-    // (+++)     (+-+)|            |(+--)     (++-)        (+++)
-    //   +------------+------------+------------+------------+
-    //   |0          3|3          7|7          4|4          0|
-    //   |     0      |     4      |     5      |     2	     |
-    //   |    +Z      |    -Y      |    -Z      |    +Y      |
-    //   |	          |            |            |            |
-    //   |1          2|2          6|6          5|5          1|
-    //   +------------+------------+------------+------------+
-    // (-++)     (--+)|            |(---)     (-+-)        (-++)
-    //                |     3      |
-    //                |    -X      |
-    //                |            |
-    //                |            |
-    //                +------------+
-    //              (-++)        (-+-)
+	// (+++)     (+-+)|            |(+--)     (++-)        (+++)
+	//   +------------+------------+------------+------------+
+	//   |0          3|3          7|7          4|4          0|
+	//   |     0      |     4      |     5      |     2	     |
+	//   |    +Z      |    -Y      |    -Z      |    +Y      |
+	//   |	          |            |            |            |
+	//   |1          2|2          6|6          5|5          1|
+	//   +------------+------------+------------+------------+
+	// (-++)     (--+)|            |(---)     (-+-)        (-++)
+	//                |     3      |
+	//                |    -X      |
+	//                |            |
+	//                |            |
+	//                +------------+
+	//              (-++)        (-+-)
 
 	LLColor4 highlight_color( 1.f, 1.f, 1.f, 0.5f);
 	LLColor4 normal_color(	1.f, 1.f, 1.f, 0.3f);
@@ -757,7 +759,7 @@ void LLManipScale::renderCorners( const LLBBox& bbox )
 			y_offset = bbox.getMaxLocal().mV[VY];
 		}
 		x_offset = bbox.getMaxLocal().mV[VX];
-  }
+	}
 }
 
 
@@ -782,7 +784,7 @@ void LLManipScale::renderAxisHandle( const LLVector3& start, const LLVector3& en
 	{
 		// Draws a single "jacks" style handle: a long, retangular box from start to end.
 		LLVector3 offset_start = end - start;
-		offset_start.normVec();
+		offset_start.normallize();
 		offset_start = start + mBoxHandleSize * offset_start;
 
 		LLVector3 delta = end - offset_start;
@@ -837,7 +839,7 @@ void LLManipScale::drag( S32 x, S32 y )
 	}	
 
 	LLSelectMgr::getInstance()->updateSelectionCenter();
-    gAgentCamera.clearFocusObject();
+	gAgentCamera.clearFocusObject();
 }
 
 // Scale around the 
@@ -888,22 +890,20 @@ void LLManipScale::dragCorner( S32 x, S32 y )
 	LLVector3 projected_drag_pos1 = inverse_projected_vec(mScaleDir, orthogonal_component(mouse_on_plane1, mSnapGuideDir1));
 	LLVector3 projected_drag_pos2 = inverse_projected_vec(mScaleDir, orthogonal_component(mouse_on_plane2, mSnapGuideDir2));
 
-	LLVector3 mouse_offset_from_scale_line_1 = orthogonal_component(mouse_on_plane1, mScaleDir);
-	LLVector3 mouse_offset_from_scale_line_2 = orthogonal_component(mouse_on_plane2, mScaleDir);
-
 	BOOL snap_enabled = gSavedSettings.getBOOL("SnapEnabled");
 	if (snap_enabled && (mouse_on_plane1 - projected_drag_pos1) * mSnapGuideDir1 > mSnapRegimeOffset)
 	{
 		F32 drag_dist = projected_drag_pos1.length();
 
-		F32 cur_subdivisions = llclamp(getSubdivisionLevel(projected_drag_pos1, mScaleDir, mScaleSnapUnit1), sGridMinSubdivisionLevel, sGridMaxSubdivisionLevel);
+		F32 cur_subdivisions = llclamp(getSubdivisionLevel(mScaleCenter + projected_drag_pos1, mScaleDir, mScaleSnapUnit1, mTickPixelSpacing1), sGridMinSubdivisionLevel, sGridMaxSubdivisionLevel);
 		F32 snap_dist = mScaleSnapUnit1 / (2.f * cur_subdivisions);
 		F32 relative_snap_dist = fmodf(drag_dist + snap_dist, mScaleSnapUnit1 / cur_subdivisions);
 
-		mScaleSnapValue = llclamp((drag_dist - (relative_snap_dist - snap_dist)), min_scale, max_scale);
-
+		mScaleSnappedValue = llclamp((drag_dist - (relative_snap_dist - snap_dist)), min_scale, max_scale);
+		scale_factor  =  mScaleSnappedValue / dist_vec(drag_start_point_agent, drag_start_center_agent);
+		mScaleSnappedValue /= mScaleSnapUnit1 * 2.f;
 		mInSnapRegime = TRUE;
-		scale_factor = mScaleSnapValue / dist_vec(drag_start_point_agent, drag_start_center_agent);
+
 		if (!uniform)
 		{
 			scale_factor *= 0.5f;
@@ -913,14 +913,15 @@ void LLManipScale::dragCorner( S32 x, S32 y )
 	{
 		F32 drag_dist = projected_drag_pos2.length();
 
-		F32 cur_subdivisions = llclamp(getSubdivisionLevel(projected_drag_pos2, mScaleDir, mScaleSnapUnit2), sGridMinSubdivisionLevel, sGridMaxSubdivisionLevel);
+		F32 cur_subdivisions = llclamp(getSubdivisionLevel(mScaleCenter + projected_drag_pos2, mScaleDir, mScaleSnapUnit2, mTickPixelSpacing2), sGridMinSubdivisionLevel, sGridMaxSubdivisionLevel);
 		F32 snap_dist = mScaleSnapUnit2 / (2.f * cur_subdivisions);
 		F32 relative_snap_dist = fmodf(drag_dist + snap_dist, mScaleSnapUnit2 / cur_subdivisions);
 
-		mScaleSnapValue = llclamp((drag_dist - (relative_snap_dist - snap_dist)), min_scale, max_scale);
-
+		mScaleSnappedValue = llclamp((drag_dist - (relative_snap_dist - snap_dist)), min_scale, max_scale);
+		scale_factor = mScaleSnappedValue / dist_vec(drag_start_point_agent, drag_start_center_agent);
+		mScaleSnappedValue /= mScaleSnapUnit2 * 2.f;
 		mInSnapRegime = TRUE;
-		scale_factor = mScaleSnapValue / dist_vec(drag_start_point_agent, drag_start_center_agent);
+
 		if (!uniform)
 		{
 			scale_factor *= 0.5f;
@@ -1038,7 +1039,6 @@ void LLManipScale::dragCorner( S32 x, S32 y )
 			rebuild(cur);
 		}
 	}
-
 }
 
 	
@@ -1108,16 +1108,16 @@ void LLManipScale::dragFace( S32 x, S32 y )
 	{
 		mInSnapRegime = TRUE;
 
- 		if (dist_along_scale_line > max_drag_dist)
+		if (dist_along_scale_line > max_drag_dist)
 		{
-			mScaleSnapValue = max_drag_dist;
+			mScaleSnappedValue = max_drag_dist;
 
 			LLVector3 clamp_point = mScaleCenter + max_drag_dist * mScaleDir;
 			drag_delta.setVec(clamp_point - drag_start_point_agent);
 		}
 		else if (dist_along_scale_line < min_drag_dist)
 		{
-			mScaleSnapValue = min_drag_dist;
+			mScaleSnappedValue = min_drag_dist;
 
 			LLVector3 clamp_point = mScaleCenter + min_drag_dist * mScaleDir;
 			drag_delta.setVec(clamp_point - drag_start_point_agent);
@@ -1125,7 +1125,7 @@ void LLManipScale::dragFace( S32 x, S32 y )
 		else
 		{
 			F32 drag_dist = scale_center_to_mouse * mScaleDir;
-			F32 cur_subdivisions = llclamp(getSubdivisionLevel(mScaleCenter + mScaleDir * drag_dist, mScaleDir, mScaleSnapUnit1), sGridMinSubdivisionLevel, sGridMaxSubdivisionLevel);
+			F32 cur_subdivisions = llclamp(getSubdivisionLevel(mScaleCenter + mScaleDir * drag_dist, mScaleDir, mScaleSnapUnit1, mTickPixelSpacing1), sGridMinSubdivisionLevel, sGridMaxSubdivisionLevel);
 			F32 snap_dist = mScaleSnapUnit1 / (2.f * cur_subdivisions);
 			F32 relative_snap_dist = fmodf(drag_dist + snap_dist, mScaleSnapUnit1 / cur_subdivisions);
 			relative_snap_dist -= snap_dist;
@@ -1139,7 +1139,7 @@ void LLManipScale::dragFace( S32 x, S32 y )
 										 drag_dist - max_drag_dist,
 										 drag_dist - min_drag_dist);
 
-			mScaleSnapValue = drag_dist - relative_snap_dist;
+			mScaleSnappedValue = drag_dist - relative_snap_dist;
 
 			if (llabs(relative_snap_dist) < snap_dist)
 			{
@@ -1322,7 +1322,7 @@ void LLManipScale::renderGuidelinesPart( const LLBBox& bbox )
 	}
 
 	guideline_end -= guideline_start;
-	guideline_end.normVec();
+	guideline_end.normallize();
 	guideline_end *= LLWorld::getInstance()->getRegionWidthInMeters();
 	guideline_end += guideline_start;
 
@@ -1343,19 +1343,20 @@ void LLManipScale::updateSnapGuides(const LLBBox& bbox)
 	LLQuaternion grid_rotation;
 	LLSelectMgr::getInstance()->getGrid(grid_origin, grid_rotation, grid_scale);
 
+	bool uniform = LLManipScale::getUniform();
+
 	LLVector3 box_corner_agent = bbox.localToAgent(unitVectorToLocalBBoxExtent( partToUnitVector( mManipPart ), bbox ));
-	mScaleCenter = getUniform() ? bbox.getCenterAgent() : bbox.localToAgent(unitVectorToLocalBBoxExtent( -1.f * partToUnitVector( mManipPart ), bbox ));
+	mScaleCenter = uniform ? bbox.getCenterAgent() : bbox.localToAgent(unitVectorToLocalBBoxExtent( -1.f * partToUnitVector( mManipPart ), bbox ));
 	mScaleDir = box_corner_agent - mScaleCenter;
-	mScaleDir.normVec();
+	mScaleDir.normallize();
 
 	if(mObjectSelection->getSelectType() == SELECT_TYPE_HUD)
 	{
 		mSnapRegimeOffset = SNAP_GUIDE_SCREEN_OFFSET / gAgentCamera.mHUDCurZoom;
-
 	}
 	else
 	{
-		F32 object_distance = dist_vec(mScaleCenter, LLViewerCamera::getInstance()->getOrigin());
+		F32 object_distance = dist_vec(box_corner_agent, LLViewerCamera::getInstance()->getOrigin());
 		mSnapRegimeOffset = (SNAP_GUIDE_SCREEN_OFFSET * gViewerWindow->getWorldViewWidthRaw() * object_distance) / LLViewerCamera::getInstance()->getPixelMeterRatio();
 	}
 	LLVector3 cam_at_axis;
@@ -1375,18 +1376,17 @@ void LLManipScale::updateSnapGuides(const LLBBox& bbox)
 	mSnapGuideLength = snap_guide_length / llmax(0.1f, (llmin(mSnapGuideDir1 * cam_at_axis, mSnapGuideDir2 * cam_at_axis)));
 
 	LLVector3 off_axis_dir = mScaleDir % cam_at_axis;
-	off_axis_dir.normVec();
+	off_axis_dir.normallize();
 
 	if( (LL_FACE_MIN <= (S32)mManipPart) && ((S32)mManipPart <= LL_FACE_MAX) )
 	{
-		LLVector3 object_scale = bbox.getMaxLocal();
-		object_scale.scaleVec(off_axis_dir * ~bbox.getRotation());
-		object_scale.abs();
-		if (object_scale.mV[VX] > object_scale.mV[VY] && object_scale.mV[VX] > object_scale.mV[VZ])
+		LLVector3 bbox_relative_cam_dir = off_axis_dir * ~bbox.getRotation();
+		bbox_relative_cam_dir.abs();
+		if (bbox_relative_cam_dir.mV[VX] > bbox_relative_cam_dir.mV[VY] && bbox_relative_cam_dir.mV[VX] > bbox_relative_cam_dir.mV[VZ])
 		{
 			mSnapGuideDir1 = LLVector3::x_axis * bbox.getRotation();
 		}
-		else if (object_scale.mV[VY] > object_scale.mV[VZ])
+		else if (bbox_relative_cam_dir.mV[VY] > bbox_relative_cam_dir.mV[VZ])
 		{
 			mSnapGuideDir1 = LLVector3::y_axis * bbox.getRotation();
 		}
@@ -1405,7 +1405,6 @@ void LLManipScale::updateSnapGuides(const LLBBox& bbox)
 	}
 	else if( (LL_CORNER_MIN <= (S32)mManipPart) && ((S32)mManipPart <= LL_CORNER_MAX) )
 	{
-		LLVector3 local_scale_dir = partToUnitVector( mManipPart );
 		LLVector3 local_camera_dir;
 		if (mObjectSelection->getSelectType() == SELECT_TYPE_HUD)
 		{
@@ -1413,74 +1412,133 @@ void LLManipScale::updateSnapGuides(const LLBBox& bbox)
 		}
 		else
 		{
-			local_camera_dir = (LLViewerCamera::getInstance()->getOrigin() - bbox.getCenterAgent()) * ~bbox.getRotation();
-			local_camera_dir.normVec();
-		}
-		local_scale_dir -= projected_vec(local_scale_dir, local_camera_dir);
-		local_scale_dir.normVec();
-		LLVector3 x_axis_proj_camera = LLVector3::x_axis - projected_vec(LLVector3::x_axis, local_camera_dir);
-		x_axis_proj_camera.normVec();
-		LLVector3 y_axis_proj_camera = LLVector3::y_axis - projected_vec(LLVector3::y_axis, local_camera_dir);
-		y_axis_proj_camera.normVec();
-		LLVector3 z_axis_proj_camera = LLVector3::z_axis - projected_vec(LLVector3::z_axis, local_camera_dir);
-		z_axis_proj_camera.normVec();
-		F32 x_axis_proj = llabs(local_scale_dir * x_axis_proj_camera);
-		F32 y_axis_proj = llabs(local_scale_dir * y_axis_proj_camera);
-		F32 z_axis_proj = llabs(local_scale_dir * z_axis_proj_camera);
-
-		if (x_axis_proj > y_axis_proj && x_axis_proj > z_axis_proj)
-		{
-			mSnapGuideDir1 = LLVector3::y_axis;
-			mScaleSnapUnit2 = grid_scale.mV[VY];
-			mSnapGuideDir2 = LLVector3::z_axis;
-			mScaleSnapUnit1 = grid_scale.mV[VZ];
-		}
-		else if (y_axis_proj > z_axis_proj)
-		{
-			mSnapGuideDir1 = LLVector3::x_axis;
-			mScaleSnapUnit2 = grid_scale.mV[VX];
-			mSnapGuideDir2 = LLVector3::z_axis;
-			mScaleSnapUnit1 = grid_scale.mV[VZ];
-		}
-		else
-		{
-			mSnapGuideDir1 = LLVector3::x_axis;
-			mScaleSnapUnit2 = grid_scale.mV[VX];
-			mSnapGuideDir2 = LLVector3::y_axis;
-			mScaleSnapUnit1 = grid_scale.mV[VY];
+			local_camera_dir = (LLViewerCamera::getInstance()->getOrigin() - box_corner_agent) * ~bbox.getRotation();
+			local_camera_dir.normallize();
 		}
 
-		LLVector3 snap_guide_flip(1.f, 1.f, 1.f);
+		LLVector3 axis_flip;
 		switch (mManipPart)
 		{
 		case LL_CORNER_NNN:
+			axis_flip.setVec(1.f, 1.f, 1.f);
 			break;
 		case LL_CORNER_NNP:
-			snap_guide_flip.setVec(1.f, 1.f, -1.f);
+			axis_flip.setVec(1.f, 1.f, -1.f);
 			break;
 		case LL_CORNER_NPN:
-			snap_guide_flip.setVec(1.f, -1.f, 1.f);
+			axis_flip.setVec(1.f, -1.f, 1.f);
 			break;
 		case LL_CORNER_NPP:
-			snap_guide_flip.setVec(1.f, -1.f, -1.f);
+			axis_flip.setVec(1.f, -1.f, -1.f);
 			break;
 		case LL_CORNER_PNN:
-			snap_guide_flip.setVec(-1.f, 1.f, 1.f);
+			axis_flip.setVec(-1.f, 1.f, 1.f);
 			break;
 		case LL_CORNER_PNP:
-			snap_guide_flip.setVec(-1.f, 1.f, -1.f);
+			axis_flip.setVec(-1.f, 1.f, -1.f);
 			break;
 		case LL_CORNER_PPN:
-			snap_guide_flip.setVec(-1.f, -1.f, 1.f);
+			axis_flip.setVec(-1.f, -1.f, 1.f);
 			break;
 		case LL_CORNER_PPP:
-			snap_guide_flip.setVec(-1.f, -1.f, -1.f);
+			axis_flip.setVec(-1.f, -1.f, -1.f);
+			break;
+		default:
+			break;
+		}
+
+		// account for which side of the object the camera is located and negate appropriate axes
+		local_camera_dir.scaleVec(axis_flip);
+
+		// normalize to object scale
+		LLVector3 bbox_extent = bbox.getExtentLocal();
+		local_camera_dir.scaleVec(LLVector3(1.f / bbox_extent.mV[VX], 1.f / bbox_extent.mV[VY], 1.f / bbox_extent.mV[VZ]));
+
+		S32 scale_face = -1;
+
+		if ((local_camera_dir.mV[VX] > 0.f) == (local_camera_dir.mV[VY] > 0.f))
+		{
+			if ((local_camera_dir.mV[VZ] > 0.f) == (local_camera_dir.mV[VY] > 0.f))
+			{
+				LLVector3 local_camera_dir_abs = local_camera_dir;
+				local_camera_dir_abs.abs();
+				// all neighboring faces of bbox are pointing towards camera or away from camera
+				// use largest magnitude face for snap guides
+				if (local_camera_dir_abs.mV[VX] > local_camera_dir_abs.mV[VY])
+				{
+					if (local_camera_dir_abs.mV[VX] > local_camera_dir_abs.mV[VZ])
+					{
+						scale_face = VX;
+					}
+					else
+					{
+						scale_face = VZ;
+					}
+				}
+				else // y > x
+				{
+					if (local_camera_dir_abs.mV[VY] > local_camera_dir_abs.mV[VZ])
+					{
+						scale_face = VY;
+					}
+					else
+					{
+						scale_face = VZ;
+					}
+				}
+			}
+			else
+			{
+				// z axis facing opposite direction from x and y relative to camera, use x and y for snap guides
+				scale_face = VZ;
+			}
+		}
+		else // x and y axes are facing in opposite directions relative to camera
+		{
+			if ((local_camera_dir.mV[VZ] > 0.f) == (local_camera_dir.mV[VY] > 0.f))
+			{
+				// x axis facing opposite direction from y and z relative to camera, use y and z for snap guides
+				scale_face = VX;
+			}
+			else
+			{
+				// y axis facing opposite direction from x and z relative to camera, use x and z for snap guides
+				scale_face = VY;
+			}
+		}
+
+		switch(scale_face)
+		{
+		case VX:
+			// x axis face being scaled, use y and z for snap guides
+			mSnapGuideDir1 = LLVector3::y_axis.scaledVec(axis_flip);
+			mScaleSnapUnit1 = grid_scale.mV[VZ];
+			mSnapGuideDir2 = LLVector3::z_axis.scaledVec(axis_flip);
+			mScaleSnapUnit2 = grid_scale.mV[VY];			
+			break;
+		case VY:
+			// y axis facing being scaled, use x and z for snap guides
+			mSnapGuideDir1 = LLVector3::x_axis.scaledVec(axis_flip);
+			mScaleSnapUnit1 = grid_scale.mV[VZ];
+			mSnapGuideDir2 = LLVector3::z_axis.scaledVec(axis_flip);
+			mScaleSnapUnit2 = grid_scale.mV[VX];
+			break;
+		case VZ:
+			// z axis facing being scaled, use x and y for snap guides
+			mSnapGuideDir1 = LLVector3::x_axis.scaledVec(axis_flip);
+			mScaleSnapUnit1 = grid_scale.mV[VY];
+			mSnapGuideDir2 = LLVector3::y_axis.scaledVec(axis_flip);
+			mScaleSnapUnit2 = grid_scale.mV[VX];
 			break;
 		default:
+			mSnapGuideDir1.zeroVec();
+			mScaleSnapUnit1 = 0.f;
+
+			mSnapGuideDir2.zeroVec();
+			mScaleSnapUnit2 = 0.f;
 			break;
 		}
-		mSnapGuideDir1.scaleVec(snap_guide_flip);
-		mSnapGuideDir2.scaleVec(snap_guide_flip);
+
 		mSnapGuideDir1.rotVec(bbox.getRotation());
 		mSnapGuideDir2.rotVec(bbox.getRotation());
 		mSnapDir1 = -1.f * mSnapGuideDir2;
@@ -1488,13 +1546,22 @@ void LLManipScale::updateSnapGuides(const LLBBox& bbox)
 	}
 
 	mScalePlaneNormal1 = mSnapGuideDir1 % mScaleDir;
-	mScalePlaneNormal1.normVec();
+	mScalePlaneNormal1.normallize();
 
 	mScalePlaneNormal2 = mSnapGuideDir2 % mScaleDir;
-	mScalePlaneNormal2.normVec();	
+	mScalePlaneNormal2.normallize();	
 
 	mScaleSnapUnit1 = mScaleSnapUnit1 / (mSnapDir1 * mScaleDir);
 	mScaleSnapUnit2 = mScaleSnapUnit2 / (mSnapDir2 * mScaleDir);
+
+	mTickPixelSpacing1 = llround((F32)MIN_DIVISION_PIXEL_WIDTH / (mScaleDir % mSnapGuideDir1).length());
+	mTickPixelSpacing2 = llround((F32)MIN_DIVISION_PIXEL_WIDTH / (mScaleDir % mSnapGuideDir2).length());
+
+	if (uniform)
+	{
+		mScaleSnapUnit1 *= 0.5f;
+		mScaleSnapUnit2 *= 0.5f;
+	}
 }
 
 void LLManipScale::renderSnapGuides(const LLBBox& bbox)
@@ -1518,9 +1585,9 @@ void LLManipScale::renderSnapGuides(const LLBBox& bbox)
 		LLColor4 tick_color = setupSnapGuideRenderPass(pass);
 
 		gGL.begin(LLRender::LINES);
-		LLVector3 line_mid = mScaleCenter + (mScaleSnapValue * mScaleDir) + (mSnapGuideDir1 * mSnapRegimeOffset);
-		LLVector3 line_start = line_mid - (mScaleDir * (llmin(mScaleSnapValue, mSnapGuideLength * 0.5f)));
-		LLVector3 line_end = line_mid + (mScaleDir * llmin(max_point_on_scale_line - mScaleSnapValue, mSnapGuideLength * 0.5f));
+		LLVector3 line_mid = mScaleCenter + (mScaleSnappedValue * mScaleDir) + (mSnapGuideDir1 * mSnapRegimeOffset);
+		LLVector3 line_start = line_mid - (mScaleDir * (llmin(mScaleSnappedValue, mSnapGuideLength * 0.5f)));
+		LLVector3 line_end = line_mid + (mScaleDir * llmin(max_point_on_scale_line - mScaleSnappedValue, mSnapGuideLength * 0.5f));
 		
 		gGL.color4f(tick_color.mV[VRED], tick_color.mV[VGREEN], tick_color.mV[VBLUE], tick_color.mV[VALPHA] * 0.1f);
 		gGL.vertex3fv(line_start.mV);
@@ -1530,9 +1597,9 @@ void LLManipScale::renderSnapGuides(const LLBBox& bbox)
 		gGL.color4f(tick_color.mV[VRED], tick_color.mV[VGREEN], tick_color.mV[VBLUE], tick_color.mV[VALPHA] * 0.1f);
 		gGL.vertex3fv(line_end.mV);
 
-		line_mid = mScaleCenter + (mScaleSnapValue * mScaleDir) + (mSnapGuideDir2 * mSnapRegimeOffset);
-		line_start = line_mid - (mScaleDir * (llmin(mScaleSnapValue, mSnapGuideLength * 0.5f)));
-		line_end = line_mid + (mScaleDir * llmin(max_point_on_scale_line - mScaleSnapValue, mSnapGuideLength * 0.5f));
+		line_mid = mScaleCenter + (mScaleSnappedValue * mScaleDir) + (mSnapGuideDir2 * mSnapRegimeOffset);
+		line_start = line_mid - (mScaleDir * (llmin(mScaleSnappedValue, mSnapGuideLength * 0.5f)));
+		line_end = line_mid + (mScaleDir * llmin(max_point_on_scale_line - mScaleSnappedValue, mSnapGuideLength * 0.5f));
 		gGL.vertex3fv(line_start.mV);
 		gGL.color4fv(tick_color.mV);
 		gGL.vertex3fv(line_mid.mV);
@@ -1547,6 +1614,8 @@ void LLManipScale::renderSnapGuides(const LLBBox& bbox)
 
 		F32 dist_grid_axis = (drag_point - mScaleCenter) * mScaleDir;
 		// find distance to nearest smallest grid unit
+		F32 grid_multiple1 = llfloor(llmax(0.f, dist_grid_axis) / (mScaleSnapUnit1 / max_subdivisions));
+		F32 grid_multiple2 = llfloor(llmax(0.f, dist_grid_axis) / (mScaleSnapUnit2 / max_subdivisions));
 		F32 grid_offset1 = fmodf(dist_grid_axis, mScaleSnapUnit1 / max_subdivisions);
 		F32 grid_offset2 = fmodf(dist_grid_axis, mScaleSnapUnit2 / max_subdivisions);
 
@@ -1569,7 +1638,7 @@ void LLManipScale::renderSnapGuides(const LLBBox& bbox)
 		{
 			// draw snap guide line
 			gGL.begin(LLRender::LINES);
-			LLVector3 snap_line_center = mScaleCenter + (mScaleSnapValue * mScaleDir);
+			LLVector3 snap_line_center = bbox.localToAgent(unitVectorToLocalBBoxExtent( partToUnitVector( mManipPart ), bbox ));
 
 			LLVector3 snap_line_start = snap_line_center + (mSnapGuideDir1 * mSnapRegimeOffset);
 			LLVector3 snap_line_end = snap_line_center + (mSnapGuideDir2 * mSnapRegimeOffset);
@@ -1591,13 +1660,13 @@ void LLManipScale::renderSnapGuides(const LLBBox& bbox)
 				LLVector3 arrow_span = mScaleDir;
 
 				arrow_dir = snap_line_start - snap_line_center;
-				arrow_dir.normVec();
+				arrow_dir.normallize();
 				gGL.vertex3fv((snap_line_start + arrow_dir * mBoxHandleSize).mV);
 				gGL.vertex3fv((snap_line_start + arrow_span * mBoxHandleSize).mV);
 				gGL.vertex3fv((snap_line_start - arrow_span * mBoxHandleSize).mV);
 
 				arrow_dir = snap_line_end - snap_line_center;
-				arrow_dir.normVec();
+				arrow_dir.normallize();
 				gGL.vertex3fv((snap_line_end + arrow_dir * mBoxHandleSize).mV);
 				gGL.vertex3fv((snap_line_end + arrow_span * mBoxHandleSize).mV);
 				gGL.vertex3fv((snap_line_end - arrow_span * mBoxHandleSize).mV);
@@ -1606,7 +1675,7 @@ void LLManipScale::renderSnapGuides(const LLBBox& bbox)
 		}
 	
 		LLVector2 screen_translate_axis(llabs(mScaleDir * LLViewerCamera::getInstance()->getLeftAxis()), llabs(mScaleDir * LLViewerCamera::getInstance()->getUpAxis()));
-		screen_translate_axis.normVec();
+		screen_translate_axis.normallize();
 
 		S32 tick_label_spacing = llround(screen_translate_axis * sTickLabelSpacing);
 
@@ -1622,9 +1691,9 @@ void LLManipScale::renderSnapGuides(const LLBBox& bbox)
 			for (S32 i = start_tick; i <= stop_tick; i++)
 			{
 				F32 alpha = (1.f - (1.f *  ((F32)llabs(i) / (F32)num_ticks_per_side1)));
-				LLVector3 tick_pos = drag_point + (mScaleDir * (mScaleSnapUnit1 / max_subdivisions * (F32)i - grid_offset1));
+				LLVector3 tick_pos = mScaleCenter + (mScaleDir * (grid_multiple1 + i) * (mScaleSnapUnit1 / max_subdivisions));
 
-				F32 cur_subdivisions = llclamp(getSubdivisionLevel(tick_pos, mScaleDir, mScaleSnapUnit1), sGridMinSubdivisionLevel, sGridMaxSubdivisionLevel);
+				F32 cur_subdivisions = llclamp(getSubdivisionLevel(tick_pos, mScaleDir, mScaleSnapUnit1, mTickPixelSpacing1), sGridMinSubdivisionLevel, sGridMaxSubdivisionLevel);
 
 				if (fmodf((F32)(i + sub_div_offset_1), (max_subdivisions / cur_subdivisions)) != 0.f)
 				{
@@ -1655,9 +1724,9 @@ void LLManipScale::renderSnapGuides(const LLBBox& bbox)
 			for (S32 i = start_tick; i <= stop_tick; i++)
 			{
 				F32 alpha = (1.f - (1.f *  ((F32)llabs(i) / (F32)num_ticks_per_side2)));
-				LLVector3 tick_pos = drag_point + (mScaleDir * (mScaleSnapUnit2 / max_subdivisions * (F32)i - grid_offset2));
+				LLVector3 tick_pos = mScaleCenter + (mScaleDir * (grid_multiple2 + i) * (mScaleSnapUnit2 / max_subdivisions));
 
-				F32 cur_subdivisions = llclamp(getSubdivisionLevel(tick_pos, mScaleDir, mScaleSnapUnit2), sGridMinSubdivisionLevel, sGridMaxSubdivisionLevel);
+				F32 cur_subdivisions = llclamp(getSubdivisionLevel(tick_pos, mScaleDir, mScaleSnapUnit2, mTickPixelSpacing2), sGridMinSubdivisionLevel, sGridMaxSubdivisionLevel);
 
 				if (fmodf((F32)(i + sub_div_offset_2), (max_subdivisions / cur_subdivisions)) != 0.f)
 				{
@@ -1695,7 +1764,7 @@ void LLManipScale::renderSnapGuides(const LLBBox& bbox)
 		{
 			F32 tick_scale = 1.f;
 			F32 alpha = grid_alpha * (1.f - (0.5f *  ((F32)llabs(i) / (F32)num_ticks_per_side1)));
-			LLVector3 tick_pos = drag_point + (mScaleDir * (mScaleSnapUnit1 / max_subdivisions * (F32)i - grid_offset1));
+			LLVector3 tick_pos = mScaleCenter + (mScaleDir * (grid_multiple1 + i) * (mScaleSnapUnit1 / max_subdivisions));
 
 			for (F32 division_level = max_subdivisions; division_level >= sGridMinSubdivisionLevel; division_level /= 2.f)
 			{
@@ -1712,29 +1781,24 @@ void LLManipScale::renderSnapGuides(const LLBBox& bbox)
 					(mSnapGuideDir1 * mSnapRegimeOffset * (1.f + tick_scale));
 
 				EGridMode grid_mode = LLSelectMgr::getInstance()->getGridMode();
-				F32 tick_val;
+				F32 tick_value;
 				if (grid_mode == GRID_MODE_WORLD)
 				{
-					tick_val = (tick_pos - mScaleCenter) * mScaleDir / (mScaleSnapUnit1 / grid_resolution);
+					tick_value = (grid_multiple1 + i) / (max_subdivisions / grid_resolution);
 				}
 				else
 				{
-					tick_val = (tick_pos - mScaleCenter) * mScaleDir / (mScaleSnapUnit1 * 2.f);
-				}
-
-				if (getUniform())
-				{
-					tick_val *= 2.f;
+					tick_value = (grid_multiple1 + i) / (2.f * max_subdivisions);
 				}
 
 				F32 text_highlight = 0.8f;
 
-				if (is_approx_equal(tick_val, mScaleSnapValue) && mInSnapRegime)
+				if (is_approx_equal(tick_value, mScaleSnappedValue) && mInSnapRegime)
 				{
 					text_highlight = 1.f;
 				}
 
-				renderTickValue(text_origin, tick_val, grid_mode == GRID_MODE_WORLD ? std::string("m") : std::string("x"), LLColor4(text_highlight, text_highlight, text_highlight, alpha));
+				renderTickValue(text_origin, tick_value, grid_mode == GRID_MODE_WORLD ? std::string("m") : std::string("x"), LLColor4(text_highlight, text_highlight, text_highlight, alpha));
 			}
 		}
 
@@ -1747,7 +1811,7 @@ void LLManipScale::renderSnapGuides(const LLBBox& bbox)
 			{
 				F32 tick_scale = 1.f;
 				F32 alpha = grid_alpha * (1.f - (0.5f *  ((F32)llabs(i) / (F32)num_ticks_per_side2)));
-				LLVector3 tick_pos = drag_point + (mScaleDir * (mScaleSnapUnit2 / max_subdivisions * (F32)i - grid_offset2));
+				LLVector3 tick_pos = mScaleCenter + (mScaleDir * (grid_multiple2 + i) * (mScaleSnapUnit2 / max_subdivisions));
 
 				for (F32 division_level = max_subdivisions; division_level >= sGridMinSubdivisionLevel; division_level /= 2.f)
 				{
@@ -1764,29 +1828,24 @@ void LLManipScale::renderSnapGuides(const LLBBox& bbox)
 						(mSnapGuideDir2 * mSnapRegimeOffset * (1.f + tick_scale));
 
 					EGridMode grid_mode = LLSelectMgr::getInstance()->getGridMode();
-					F32 tick_val;
+					F32 tick_value;
 					if (grid_mode == GRID_MODE_WORLD)
 					{
-						tick_val = (tick_pos - mScaleCenter) * mScaleDir / (mScaleSnapUnit2 / grid_resolution);
+						tick_value = (grid_multiple2 + i) / (max_subdivisions / grid_resolution);
 					}
 					else
 					{
-						tick_val = (tick_pos - mScaleCenter) * mScaleDir / (mScaleSnapUnit2 * 2.f);
-					}
-
-					if (getUniform())
-					{
-						tick_val *= 2.f;
+						tick_value = (grid_multiple2 + i) / (2.f * max_subdivisions);
 					}
 
 					F32 text_highlight = 0.8f;
 
-					if (is_approx_equal(tick_val, mScaleSnapValue) && mInSnapRegime)
+					if (is_approx_equal(tick_value, mScaleSnappedValue) && mInSnapRegime)
 					{
 						text_highlight = 1.f;
 					}
 
-					renderTickValue(text_origin, tick_val, grid_mode == GRID_MODE_WORLD ? std::string("m") : std::string("x"), LLColor4(text_highlight, text_highlight, text_highlight, alpha));
+					renderTickValue(text_origin, tick_value, grid_mode == GRID_MODE_WORLD ? std::string("m") : std::string("x"), LLColor4(text_highlight, text_highlight, text_highlight, alpha));
 				}
 			}
 		}
@@ -1881,28 +1940,28 @@ LLVector3 LLManipScale::cornerToUnitVector( S32 part ) const
 	switch(part)
 	{
 		case LL_CORNER_NNN:
-			vec.setVec(-F_SQRT3, -F_SQRT3, -F_SQRT3);
+			vec.setVec(-OO_SQRT3, -OO_SQRT3, -OO_SQRT3);
 			break;
 		case LL_CORNER_NNP:		
-			vec.setVec(-F_SQRT3, -F_SQRT3, F_SQRT3);
+			vec.setVec(-OO_SQRT3, -OO_SQRT3, OO_SQRT3);
 			break;
 		case LL_CORNER_NPN:
-			vec.setVec(-F_SQRT3, F_SQRT3, -F_SQRT3);
+			vec.setVec(-OO_SQRT3, OO_SQRT3, -OO_SQRT3);
 			break;
 		case LL_CORNER_NPP:
-			vec.setVec(-F_SQRT3, F_SQRT3, F_SQRT3);
+			vec.setVec(-OO_SQRT3, OO_SQRT3, OO_SQRT3);
 			break;
 		case LL_CORNER_PNN:
-			vec.setVec(F_SQRT3, -F_SQRT3, -F_SQRT3);
+			vec.setVec(OO_SQRT3, -OO_SQRT3, -OO_SQRT3);
 			break;
 		case LL_CORNER_PNP:
-			vec.setVec(F_SQRT3, -F_SQRT3, F_SQRT3);
+			vec.setVec(OO_SQRT3, -OO_SQRT3, OO_SQRT3);
 			break;
 		case LL_CORNER_PPN:
-			vec.setVec(F_SQRT3, F_SQRT3, -F_SQRT3);
+			vec.setVec(OO_SQRT3, OO_SQRT3, -OO_SQRT3);
 			break;
 		case LL_CORNER_PPP:
-			vec.setVec(F_SQRT3, F_SQRT3, F_SQRT3);
+			vec.setVec(OO_SQRT3, OO_SQRT3, OO_SQRT3);
 			break;
 		default:
 			vec.clearVec();
diff --git a/indra/newview/llmanipscale.h b/indra/newview/llmanipscale.h
index 5cb8898fd0..13b510c9ff 100755
--- a/indra/newview/llmanipscale.h
+++ b/indra/newview/llmanipscale.h
@@ -157,10 +157,12 @@ private:
 	LLVector3		mSnapDir1;
 	LLVector3		mSnapDir2;
 	F32				mSnapRegimeOffset;
+	F32				mTickPixelSpacing1;
+	F32				mTickPixelSpacing2;
 	F32				mSnapGuideLength;
 	LLVector3		mScaleCenter;
 	LLVector3		mScaleDir;
-	F32				mScaleSnapValue;
+	F32				mScaleSnappedValue;
 	BOOL			mInSnapRegime;
 	F32*			mManipulatorScales;
 };
-- 
cgit v1.2.3


From 871bae45ba2f17b8cc791b3b7dcc443f1eb8cd95 Mon Sep 17 00:00:00 2001
From: Ricky Curtice <kf6kjg+hg@gmail.com>
Date: Sun, 2 Mar 2014 15:49:17 -0800
Subject: STORM-1920: From Richard, fix for scale sliding when mouse goes in
 the opposite direction of the scale.

I had discovered a set of bugs in the fix he sent me involving when the user decided to move the mouse in the opposite direction.  This fixes the bug where the scale would start sliding around.
---
 indra/newview/llmanipscale.cpp | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llmanipscale.cpp b/indra/newview/llmanipscale.cpp
index ea4235efde..af9fe385b2 100755
--- a/indra/newview/llmanipscale.cpp
+++ b/indra/newview/llmanipscale.cpp
@@ -1612,14 +1612,14 @@ void LLManipScale::renderSnapGuides(const LLBBox& bbox)
 	{
 		LLGLDepthTest gls_depth(GL_FALSE);
 
-		F32 dist_grid_axis = (drag_point - mScaleCenter) * mScaleDir;
+		F32 dist_grid_axis = llmax(0.f, (drag_point - mScaleCenter) * mScaleDir);
 
 		F32 smallest_subdivision1 = mScaleSnapUnit1 / sGridMaxSubdivisionLevel;
 		F32 smallest_subdivision2 = mScaleSnapUnit2 / sGridMaxSubdivisionLevel;
 
 		// find distance to nearest smallest grid unit
-		F32 grid_multiple1 = llfloor(llmax(0.f, dist_grid_axis) / smallest_subdivision1);
-		F32 grid_multiple2 = llfloor(llmax(0.f, dist_grid_axis) / smallest_subdivision2);
+		F32 grid_multiple1 = llfloor(dist_grid_axis / smallest_subdivision1);
+		F32 grid_multiple2 = llfloor(dist_grid_axis / smallest_subdivision2);
 		F32 grid_offset1 = fmodf(dist_grid_axis, smallest_subdivision1);
 		F32 grid_offset2 = fmodf(dist_grid_axis, smallest_subdivision2);
 
-- 
cgit v1.2.3


From bd41d696de356028aa6b14d9bdf127360f6d5a57 Mon Sep 17 00:00:00 2001
From: Ricky Curtice <kf6kjg+hg@gmail.com>
Date: Sun, 2 Mar 2014 16:28:38 -0800
Subject: =?UTF-8?q?STORM-1920:=20Corrected=20bug=20where=20snap=20values?=
 =?UTF-8?q?=20would=20highlight=20that=20weren=E2=80=99t=20supposed=20to?=
 =?UTF-8?q?=20be=20highlighting.=20=20Did=20some=20more=20cleanup=20and=20?=
 =?UTF-8?q?documentation.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Also corrected a bug in Richard’s patch that resulted in the object scaling up when the mouse went the opposite direction from the scale.  The issue is that the vector length is an absolute value.  To allow for "negative" results to be found and discarded, I instead used a dot product with a parallel unit vector to get the signed magnitude - or, if you prefer, the mono-dimensional vector.

This bug only surfaced once the code made to actually work as intended in regards to the highlighting.  Turns out that if the snapped value was at 2, any axis that was showing values would highlight its "2" text - and the same for all other values.
To fix this, I used a simple enum and repurposed the property that tracked whether or not the cursor was in a snap regime.  Now it not only tracks whether or not the cursor is in a snap regime, but which one it is in.  This allowed the highlight render code to be able to differentiate which row was supposed to highlight and which did not.

A couple more duplicated math operations were reduced by rearranging the order of some variable definitions.  If at all possible, only do division once.  The result is much cleaner and easier to read code.
Several deprecated vector functions were updated to match their new versions.  If you are going to mark something deprecated, why not just take the time to go through and find all uses and clean it up!?
faceToUnitVector() was cleaned up to use the single-output design, matching cornerToUnitVector().
A mess of trailing whitespace was cleaned out.
Many more LLManipScale private variables are now documented - though I only documented those I understood fully while reading where they were created and how they were used.
---
 indra/newview/llmanipscale.cpp | 254 +++++++++++++++++++++--------------------
 indra/newview/llmanipscale.h   |  41 ++++---
 2 files changed, 152 insertions(+), 143 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llmanipscale.cpp b/indra/newview/llmanipscale.cpp
index af9fe385b2..23cbc580f6 100755
--- a/indra/newview/llmanipscale.cpp
+++ b/indra/newview/llmanipscale.cpp
@@ -68,7 +68,7 @@ const F32 SELECTED_MANIPULATOR_SCALE = 1.2f;
 const F32 MANIPULATOR_SCALE_HALF_LIFE = 0.07f;
 const S32 NUM_MANIPULATORS = 14;
 
-const LLManip::EManipPart MANIPULATOR_IDS[NUM_MANIPULATORS] = 
+const LLManip::EManipPart MANIPULATOR_IDS[NUM_MANIPULATORS] =
 {
 	LLManip::LL_CORNER_NNN,
 	LLManip::LL_CORNER_NNP,
@@ -87,7 +87,7 @@ const LLManip::EManipPart MANIPULATOR_IDS[NUM_MANIPULATORS] =
 };
 
 
-F32 get_default_max_prim_scale(bool is_flora) 
+F32 get_default_max_prim_scale(bool is_flora)
 {
 	// a bit of a hack, but if it's foilage, we don't want to use the
 	// new larger scale which would result in giant trees and grass
@@ -97,7 +97,7 @@ F32 get_default_max_prim_scale(bool is_flora)
 		return DEFAULT_MAX_PRIM_SCALE;
 	}
 	else
-	{	
+	{
 		return DEFAULT_MAX_PRIM_SCALE_NO_MESH;
 	}
 }
@@ -179,7 +179,7 @@ void LLManipScale::handleSelect()
 }
 
 LLManipScale::LLManipScale( LLToolComposite* composite )
-	: 
+	:
 	LLManip( std::string("Scale"), composite ),
 	mBoxHandleSize( 1.f ),
 	mScaledBoxHandleSize( 1.f ),
@@ -193,9 +193,9 @@ LLManipScale::LLManipScale( LLToolComposite* composite )
 	mTickPixelSpacing1(0.f),
 	mTickPixelSpacing2(0.f),
 	mSnapGuideLength(0.f),
-	mInSnapRegime(FALSE),
+	mSnapRegime(SNAP_REGIME_NONE),
 	mScaleSnappedValue(0.f)
-{ 
+{
 	mManipulatorScales = new F32[NUM_MANIPULATORS];
 	for (S32 i = 0; i < NUM_MANIPULATORS; i++)
 	{
@@ -216,7 +216,7 @@ void LLManipScale::render()
 	LLGLDepthTest gls_depth(GL_TRUE);
 	LLGLEnable gl_blend(GL_BLEND);
 	LLGLEnable gls_alpha_test(GL_ALPHA_TEST);
-	
+
 	if( canAffectSelection() )
 	{
 		gGL.matrixMode(LLRender::MM_MODELVIEW);
@@ -228,11 +228,11 @@ void LLManipScale::render()
 		}
 
 		////////////////////////////////////////////////////////////////////////
-		// Calculate size of drag handles 	
+		// Calculate size of drag handles
 
 		const F32 BOX_HANDLE_BASE_SIZE		= 50.0f;   // box size in pixels = BOX_HANDLE_BASE_SIZE * BOX_HANDLE_BASE_FACTOR
 		const F32 BOX_HANDLE_BASE_FACTOR	= 0.2f;
-		
+
 		LLVector3 center_agent = gAgent.getPosAgentFromGlobal(LLSelectMgr::getInstance()->getSelectionCenterGlobal());
 
 		if (mObjectSelection->getSelectType() == SELECT_TYPE_HUD)
@@ -285,7 +285,7 @@ void LLManipScale::render()
 			rot.getAngleAxis(&angle_radians, &x, &y, &z);
 			gGL.rotatef(angle_radians * RAD_TO_DEG, x, y, z);
 
-			
+
 			{
 				LLGLEnable poly_offset(GL_POLYGON_OFFSET_FILL);
 				glPolygonOffset( -2.f, -2.f);
@@ -347,7 +347,7 @@ BOOL LLManipScale::handleMouseDownOnPart( S32 x, S32 y, MASK mask )
 	LLBBox bbox = LLSelectMgr::getInstance()->getBBoxOfSelection();
 	LLVector3 box_center_agent = bbox.getCenterAgent();
 	LLVector3 box_corner_agent = bbox.localToAgent( unitVectorToLocalBBoxExtent( partToUnitVector( mManipPart ), bbox ) );
-	
+
 	updateSnapGuides(bbox);
 
 	mDragStartPointGlobal = gAgent.getPosGlobalFromAgent(box_corner_agent);
@@ -374,27 +374,27 @@ BOOL LLManipScale::handleMouseUp(S32 x, S32 y, MASK mask)
 
 	if( hasMouseCapture() )
 	{
-		if( (LL_FACE_MIN <= (S32)mManipPart) 
+		if( (LL_FACE_MIN <= (S32)mManipPart)
 			&& ((S32)mManipPart <= LL_FACE_MAX) )
 		{
 			sendUpdates(TRUE,TRUE,FALSE);
 		}
 		else
-		if( (LL_CORNER_MIN <= (S32)mManipPart) 
+		if( (LL_CORNER_MIN <= (S32)mManipPart)
 			&& ((S32)mManipPart <= LL_CORNER_MAX) )
 		{
 			sendUpdates(TRUE,TRUE,TRUE);
 		}
-		
+
 		//send texture update
 		LLSelectMgr::getInstance()->adjustTexturesByScale(TRUE, getStretchTextures());
-		
+
 		LLSelectMgr::getInstance()->enableSilhouette(TRUE);
 		mManipPart = LL_NO_PART;
 
 		// Might have missed last update due to UPDATE_DELAY timing
 		LLSelectMgr::getInstance()->sendMultipleUpdate( mLastUpdateFlags );
-		
+
 		//gAgent.setObjectTracking(gSavedSettings.getBOOL("TrackFocusObject"));
 		LLSelectMgr::getInstance()->saveSelectedObjectTransform(SELECT_ACTION_TYPE_PICK);
 	}
@@ -415,15 +415,15 @@ BOOL LLManipScale::handleHover(S32 x, S32 y, MASK mask)
 		{
 			drag( x, y );
 		}
-		lldebugst(LLERR_USER_INPUT) << "hover handled by LLManipScale (active)" << llendl;		
+		lldebugst(LLERR_USER_INPUT) << "hover handled by LLManipScale (active)" << llendl;
 	}
 	else
 	{
-		mInSnapRegime = FALSE;
+		mSnapRegime = SNAP_REGIME_NONE;
 		// not dragging...
 		highlightManipulators(x, y);
 	}
-	
+
 	// Patch up textures, if possible.
 	LLSelectMgr::getInstance()->adjustTexturesByScale(FALSE, getStretchTextures());
 
@@ -460,7 +460,7 @@ void LLManipScale::highlightManipulators(S32 x, S32 y)
 			LLMatrix4 projMatrix = LLViewerCamera::getInstance()->getProjection();
 			LLMatrix4 modelView = LLViewerCamera::getInstance()->getModelview();
 			transform.initAll(LLVector3(1.f, 1.f, 1.f), bbox.getRotation(), bbox.getPositionAgent());
-			
+
 			transform *= modelView;
 			transform *= projMatrix;
 		}
@@ -479,7 +479,7 @@ void LLManipScale::highlightManipulators(S32 x, S32 y)
 		mManipulatorVertices[numManips++] = LLVector4(max.mV[VX], min.mV[VY], max.mV[VZ], 1.f);
 		mManipulatorVertices[numManips++] = LLVector4(max.mV[VX], max.mV[VY], min.mV[VZ], 1.f);
 		mManipulatorVertices[numManips++] = LLVector4(max.mV[VX], max.mV[VY], max.mV[VZ], 1.f);
-		
+
 		// 1-D highlights are applicable iff one object is selected
 		if( mObjectSelection->getObjectCount() == 1 )
 		{
@@ -494,13 +494,13 @@ void LLManipScale::highlightManipulators(S32 x, S32 y)
 
 		for_each(mProjectedManipulators.begin(), mProjectedManipulators.end(), DeletePointer());
 		mProjectedManipulators.clear();
-		
+
 		for (S32 i = 0; i < numManips; i++)
 		{
 			LLVector4 projectedVertex = mManipulatorVertices[i] * transform;
 			projectedVertex = projectedVertex * (1.f / projectedVertex.mV[VW]);
 
-			ManipulatorHandle* projManipulator = new ManipulatorHandle(LLVector3(projectedVertex.mV[VX], projectedVertex.mV[VY], 
+			ManipulatorHandle* projManipulator = new ManipulatorHandle(LLVector3(projectedVertex.mV[VX], projectedVertex.mV[VY],
 				projectedVertex.mV[VZ]), MANIPULATOR_IDS[i], (i < 7) ? SCALE_MANIP_CORNER : SCALE_MANIP_FACE);
 			mProjectedManipulators.insert(projManipulator);
 		}
@@ -514,13 +514,13 @@ void LLManipScale::highlightManipulators(S32 x, S32 y)
 
 		mHighlightedPart = LL_NO_PART;
 
-		for (minpulator_list_t::iterator iter = mProjectedManipulators.begin();
+		for (manipulator_list_t::iterator iter = mProjectedManipulators.begin();
 			 iter != mProjectedManipulators.end(); ++iter)
 		{
 			ManipulatorHandle* manipulator = *iter;
 			{
-				manip2d.setVec(manipulator->mPosition.mV[VX] * half_width, manipulator->mPosition.mV[VY] * half_height);
-				
+				manip2d.set(manipulator->mPosition.mV[VX] * half_width, manipulator->mPosition.mV[VY] * half_height);
+
 				delta = manip2d - mousePos;
 				if (delta.magVecSquared() < MAX_MANIP_SELECT_DISTANCE_SQUARED)
 				{
@@ -551,7 +551,7 @@ void LLManipScale::highlightManipulators(S32 x, S32 y)
 
 void LLManipScale::renderFaces( const LLBBox& bbox )
 {
-	// Don't bother to render the drag handles for 1-D scaling if 
+	// Don't bother to render the drag handles for 1-D scaling if
 	// more than one object is selected or if it is an attachment
 	if ( mObjectSelection->getObjectCount() > 1 )
 	{
@@ -604,7 +604,7 @@ void LLManipScale::renderFaces( const LLBBox& bbox )
 	{
 		gGL.color4fv( default_normal_color.mV );
 		LLGLDepthTest gls_depth(GL_FALSE);
-		gGL.begin(LLRender::QUADS); 
+		gGL.begin(LLRender::QUADS);
 		{
 			// Face 0
 			gGL.vertex3f(min.mV[VX], max.mV[VY], max.mV[VZ]);
@@ -647,9 +647,9 @@ void LLManipScale::renderFaces( const LLBBox& bbox )
 
 	// Find nearest vertex
 	LLVector3 orientWRTHead = bbox.agentToLocalBasis( bbox.getCenterAgent() - gAgentCamera.getCameraPositionAgent() );
-	U32 nearest = 
-		(orientWRTHead.mV[0] < 0.0f ? 1 : 0) + 
-		(orientWRTHead.mV[1] < 0.0f ? 2 : 0) + 
+	U32 nearest =
+		(orientWRTHead.mV[0] < 0.0f ? 1 : 0) +
+		(orientWRTHead.mV[1] < 0.0f ? 2 : 0) +
 		(orientWRTHead.mV[2] < 0.0f ? 4 : 0);
 
 	// opposite faces on Linden cubes:
@@ -658,7 +658,7 @@ void LLManipScale::renderFaces( const LLBBox& bbox )
 	// 2 & 4
 
 	// Table of order to draw faces, based on nearest vertex
-	static U32 face_list[8][6] = { 
+	static U32 face_list[8][6] = {
 		{ 2,0,1, 4,5,3 }, // v6  F201 F453
 		{ 2,0,3, 4,5,1 }, // v7  F203 F451
 		{ 4,0,1, 2,5,3 }, // v5  F401 F253
@@ -725,7 +725,7 @@ void LLManipScale::renderEdges( const LLBBox& bbox )
 		{
 			gGL.translatef( center_to_edge.mV[0], center_to_edge.mV[1], center_to_edge.mV[2] );
 			conditionalHighlight( part );
-			gGL.scalef( 
+			gGL.scalef(
 				direction.mV[0] ? edge_width : extent.mV[VX],
 				direction.mV[1] ? edge_width : extent.mV[VY],
 				direction.mV[2] ? edge_width : extent.mV[VZ] );
@@ -793,7 +793,7 @@ void LLManipScale::renderAxisHandle( const LLVector3& start, const LLVector3& en
 		gGL.pushMatrix();
 		{
 			gGL.translatef( pos.mV[VX], pos.mV[VY], pos.mV[VZ] );
-			gGL.scalef( 
+			gGL.scalef(
 				mBoxHandleSize + llabs(delta.mV[VX]),
 				mBoxHandleSize + llabs(delta.mV[VY]),
 				mBoxHandleSize + llabs(delta.mV[VZ]));
@@ -810,18 +810,18 @@ void LLManipScale::renderAxisHandle( const LLVector3& start, const LLVector3& en
 
 void LLManipScale::drag( S32 x, S32 y )
 {
-	if( (LL_FACE_MIN <= (S32)mManipPart) 
+	if( (LL_FACE_MIN <= (S32)mManipPart)
 		&& ((S32)mManipPart <= LL_FACE_MAX) )
 	{
 		dragFace( x, y );
 	}
 	else
-	if( (LL_CORNER_MIN <= (S32)mManipPart) 
+	if( (LL_CORNER_MIN <= (S32)mManipPart)
 		&& ((S32)mManipPart <= LL_CORNER_MAX) )
 	{
 		dragCorner( x, y );
 	}
-	
+
 	// store changes to override updates
 	for (LLObjectSelection::iterator iter = LLSelectMgr::getInstance()->getSelection()->begin();
 		 iter != LLSelectMgr::getInstance()->getSelection()->end(); iter++)
@@ -842,7 +842,7 @@ void LLManipScale::drag( S32 x, S32 y )
 	gAgentCamera.clearFocusObject();
 }
 
-// Scale around the 
+// Scale around the
 void LLManipScale::dragCorner( S32 x, S32 y )
 {
 	// Suppress scale if mouse hasn't moved.
@@ -857,11 +857,11 @@ void LLManipScale::dragCorner( S32 x, S32 y )
 	LLVector3 drag_start_center_agent = gAgent.getPosAgentFromGlobal(mDragStartCenterGlobal);
 
 	LLVector3d drag_start_dir_d;
-	drag_start_dir_d.setVec(mDragStartPointGlobal - mDragStartCenterGlobal);
+	drag_start_dir_d.set(mDragStartPointGlobal - mDragStartCenterGlobal);
 
 	F32 s = 0;
 	F32 t = 0;
-	nearestPointOnLineFromMouse(x, y, 
+	nearestPointOnLineFromMouse(x, y,
 								drag_start_center_agent,
 								drag_start_point_agent,
 								s, t );
@@ -872,7 +872,7 @@ void LLManipScale::dragCorner( S32 x, S32 y )
 	}
 	mDragPointGlobal = lerp(mDragStartCenterGlobal, mDragStartPointGlobal, t);
 
-	LLBBox bbox      = LLSelectMgr::getInstance()->getBBoxOfSelection();
+	LLBBox bbox	     = LLSelectMgr::getInstance()->getBBoxOfSelection();
 	F32 scale_factor = 1.f;
 	F32 max_scale    = partToMaxScale(mManipPart, bbox);
 	F32 min_scale    = partToMinScale(mManipPart, bbox);
@@ -893,7 +893,7 @@ void LLManipScale::dragCorner( S32 x, S32 y )
 	BOOL snap_enabled = gSavedSettings.getBOOL("SnapEnabled");
 	if (snap_enabled && (mouse_on_plane1 - projected_drag_pos1) * mSnapGuideDir1 > mSnapRegimeOffset)
 	{
-		F32 drag_dist = projected_drag_pos1.length();
+		F32 drag_dist = mScaleDir * projected_drag_pos1; // Projecting the drag position allows for negative results, vs using the length which will result in a "reverse scaling" bug.
 
 		F32 cur_subdivisions = llclamp(getSubdivisionLevel(mScaleCenter + projected_drag_pos1, mScaleDir, mScaleSnapUnit1, mTickPixelSpacing1), sGridMinSubdivisionLevel, sGridMaxSubdivisionLevel);
 		F32 snap_dist = mScaleSnapUnit1 / (2.f * cur_subdivisions);
@@ -902,7 +902,7 @@ void LLManipScale::dragCorner( S32 x, S32 y )
 		mScaleSnappedValue = llclamp((drag_dist - (relative_snap_dist - snap_dist)), min_scale, max_scale);
 		scale_factor  =  mScaleSnappedValue / dist_vec(drag_start_point_agent, drag_start_center_agent);
 		mScaleSnappedValue /= mScaleSnapUnit1 * 2.f;
-		mInSnapRegime = TRUE;
+		mSnapRegime = SNAP_REGIME_UPPER;
 
 		if (!uniform)
 		{
@@ -911,7 +911,7 @@ void LLManipScale::dragCorner( S32 x, S32 y )
 	}
 	else if (snap_enabled && (mouse_on_plane2 - projected_drag_pos2) * mSnapGuideDir2 > mSnapRegimeOffset )
 	{
-		F32 drag_dist = projected_drag_pos2.length();
+		F32 drag_dist = mScaleDir * projected_drag_pos2; // Projecting the drag position allows for negative results, vs using the length which will result in a "reverse scaling" bug.
 
 		F32 cur_subdivisions = llclamp(getSubdivisionLevel(mScaleCenter + projected_drag_pos2, mScaleDir, mScaleSnapUnit2, mTickPixelSpacing2), sGridMinSubdivisionLevel, sGridMaxSubdivisionLevel);
 		F32 snap_dist = mScaleSnapUnit2 / (2.f * cur_subdivisions);
@@ -920,16 +920,16 @@ void LLManipScale::dragCorner( S32 x, S32 y )
 		mScaleSnappedValue = llclamp((drag_dist - (relative_snap_dist - snap_dist)), min_scale, max_scale);
 		scale_factor = mScaleSnappedValue / dist_vec(drag_start_point_agent, drag_start_center_agent);
 		mScaleSnappedValue /= mScaleSnapUnit2 * 2.f;
-		mInSnapRegime = TRUE;
+		mSnapRegime = SNAP_REGIME_LOWER;
 
 		if (!uniform)
 		{
 			scale_factor *= 0.5f;
 		}
 	}
-	else 
+	else
 	{
-		mInSnapRegime = FALSE;
+		mSnapRegime = SNAP_REGIME_NONE;
 		scale_factor = t;
 		if (!uniform)
 		{
@@ -979,7 +979,7 @@ void LLManipScale::dragCorner( S32 x, S32 y )
 		{
 			const LLVector3& scale = selectNode->mSavedScale;
 			cur->setScale( scale_factor * scale );
-			
+
 			LLVector3 delta_pos;
 			LLVector3 original_pos = cur->getPositionEdit();
 			LLVector3d new_pos_global = drag_global + (selectNode->mSavedPositionGlobal - drag_global) * scale_factor;
@@ -989,7 +989,7 @@ void LLManipScale::dragCorner( S32 x, S32 y )
 			}
 			cur->setPositionAbsoluteGlobal( new_pos_global );
 			rebuild(cur);
-			
+
 			delta_pos = cur->getPositionEdit() - original_pos;
 
 			if (selectNode->mIndividualSelection)
@@ -1030,7 +1030,7 @@ void LLManipScale::dragCorner( S32 x, S32 y )
 		{
 			const LLVector3& scale = selectNode->mSavedScale;
 			cur->setScale( scale_factor * scale, FALSE );
-							
+
 			if (!selectNode->mIndividualSelection)
 			{
 				cur->setPosition(selectNode->mSavedPositionLocal * scale_factor);
@@ -1039,16 +1039,14 @@ void LLManipScale::dragCorner( S32 x, S32 y )
 			rebuild(cur);
 		}
 	}
-
 }
 
-	
+
 void LLManipScale::dragFace( S32 x, S32 y )
 {
 	// Suppress scale if mouse hasn't moved.
 	if (x == mLastMouseX && y == mLastMouseY)
 	{
-	//	sendUpdates(TRUE,TRUE,FALSE);
 		return;
 	}
 
@@ -1061,9 +1059,9 @@ void LLManipScale::dragFace( S32 x, S32 y )
 	LLVector3 drag_start_center_agent = gAgent.getPosAgentFromGlobal(drag_start_center_global);
 
 	LLVector3d drag_start_dir_d;
-	drag_start_dir_d.setVec(drag_start_point_global - drag_start_center_global);
+	drag_start_dir_d.set(drag_start_point_global - drag_start_center_global);
 	LLVector3 drag_start_dir_f;
-	drag_start_dir_f.setVec(drag_start_dir_d);
+	drag_start_dir_f.set(drag_start_dir_d);
 
 	LLBBox bbox	= LLSelectMgr::getInstance()->getBBoxOfSelection();
 
@@ -1107,21 +1105,21 @@ void LLManipScale::dragFace( S32 x, S32 y )
 
 	if (snap_enabled && dist_from_scale_line > mSnapRegimeOffset)
 	{
-		mInSnapRegime = TRUE;
+		mSnapRegime = SNAP_REGIME_UPPER | SNAP_REGIME_LOWER; // A face drag doesn't have split regimes.
 
 		if (dist_along_scale_line > max_drag_dist)
 		{
 			mScaleSnappedValue = max_drag_dist;
 
 			LLVector3 clamp_point = mScaleCenter + max_drag_dist * mScaleDir;
-			drag_delta.setVec(clamp_point - drag_start_point_agent);
+			drag_delta.set(clamp_point - drag_start_point_agent);
 		}
 		else if (dist_along_scale_line < min_drag_dist)
 		{
 			mScaleSnappedValue = min_drag_dist;
 
 			LLVector3 clamp_point = mScaleCenter + min_drag_dist * mScaleDir;
-			drag_delta.setVec(clamp_point - drag_start_point_agent);
+			drag_delta.set(clamp_point - drag_start_point_agent);
 		}
 		else
 		{
@@ -1154,9 +1152,9 @@ void LLManipScale::dragFace( S32 x, S32 y )
 			}
 		}
 	}
-	else 
+	else
 	{
-		mInSnapRegime = FALSE;
+		mSnapRegime = SNAP_REGIME_NONE;
 	}
 
 	LLVector3 dir_agent;
@@ -1172,7 +1170,7 @@ void LLManipScale::dragFace( S32 x, S32 y )
 	{
 		dir_agent = bbox.localToAgentBasis( LLVector3::z_axis );
 	}
-	stretchFace( 
+	stretchFace(
 		projected_vec(drag_start_dir_f, dir_agent) + drag_start_center_agent,
 		projected_vec(drag_delta, dir_agent));
 
@@ -1191,7 +1189,7 @@ void LLManipScale::sendUpdates( BOOL send_position_update, BOOL send_scale_updat
 		U32 update_flags = UPD_NONE;
 		if (send_position_update)	update_flags |= UPD_POSITION;
 		if (send_scale_update)		update_flags |= UPD_SCALE;
-		
+
 // 		BOOL send_type = SEND_INDIVIDUALS;
 		if (corner)
 		{
@@ -1239,7 +1237,7 @@ void LLManipScale::stretchFace( const LLVector3& drag_start_agent, const LLVecto
 			S32 axis_index			= axis.mV[0] ? 0 : (axis.mV[1] ? 1 : 2 );
 
 			LLVector3 delta_local	= end_local - start_local;
-			F32 delta_local_mag		= delta_local.magVec();
+			F32 delta_local_mag		= delta_local.length();
 			LLVector3 dir_local;
 			if (delta_local_mag == 0.f)
 			{
@@ -1259,13 +1257,13 @@ void LLManipScale::stretchFace( const LLVector3& drag_start_agent, const LLVecto
 			LLVector3 scale			= cur->getScale();
 			scale.mV[axis_index]	= desired_scale;
 			cur->setScale(scale, FALSE);
-			rebuild(cur);				
+			rebuild(cur);
 			LLVector3 delta_pos;
 			if( !getUniform() )
 			{
 				LLVector3 delta_pos_local = axis * (0.5f * desired_delta_size);
 				LLVector3d delta_pos_global;
-				delta_pos_global.setVec(cur_bbox.localToAgent( delta_pos_local ) - cur_bbox.getCenterAgent());
+				delta_pos_global.set(cur_bbox.localToAgent( delta_pos_local ) - cur_bbox.getCenterAgent());
 				LLVector3 cur_pos = cur->getPositionEdit();
 
 				if (cur->isRootEdit() && !cur->isAttachment())
@@ -1314,7 +1312,7 @@ void LLManipScale::stretchFace( const LLVector3& drag_start_agent, const LLVecto
 void LLManipScale::renderGuidelinesPart( const LLBBox& bbox )
 {
 	LLVector3 guideline_start = bbox.getCenterLocal();
-	
+
 	LLVector3 guideline_end = unitVectorToLocalBBoxExtent( partToUnitVector( mManipPart ), bbox );
 
 	if (!getUniform())
@@ -1364,7 +1362,7 @@ void LLManipScale::updateSnapGuides(const LLBBox& bbox)
 	F32 snap_guide_length;
 	if (mObjectSelection->getSelectType() == SELECT_TYPE_HUD)
 	{
-		cam_at_axis.setVec(1.f, 0.f, 0.f);
+		cam_at_axis.set(1.f, 0.f, 0.f);
 		snap_guide_length = SNAP_GUIDE_SCREEN_LENGTH / gAgentCamera.mHUDCurZoom;
 	}
 	else
@@ -1373,7 +1371,7 @@ void LLManipScale::updateSnapGuides(const LLBBox& bbox)
 		F32 manipulator_distance = dist_vec(box_corner_agent, LLViewerCamera::getInstance()->getOrigin());
 		snap_guide_length = (SNAP_GUIDE_SCREEN_LENGTH * gViewerWindow->getWorldViewWidthRaw() * manipulator_distance) / LLViewerCamera::getInstance()->getPixelMeterRatio();
 	}
-	
+
 	mSnapGuideLength = snap_guide_length / llmax(0.1f, (llmin(mSnapGuideDir1 * cam_at_axis, mSnapGuideDir2 * cam_at_axis)));
 
 	LLVector3 off_axis_dir = mScaleDir % cam_at_axis;
@@ -1397,7 +1395,7 @@ void LLManipScale::updateSnapGuides(const LLBBox& bbox)
 		}
 
 		LLVector3 scale_snap = grid_scale;
-		mScaleSnapUnit1 = scale_snap.scaleVec(partToUnitVector( mManipPart )).magVec();
+		mScaleSnapUnit1 = scale_snap.scaleVec(partToUnitVector( mManipPart )).length();
 		mScaleSnapUnit2 = mScaleSnapUnit1;
 		mSnapGuideDir1 *= mSnapGuideDir1 * LLViewerCamera::getInstance()->getUpAxis() > 0.f ? 1.f : -1.f;
 		mSnapGuideDir2 = mSnapGuideDir1 * -1.f;
@@ -1421,28 +1419,28 @@ void LLManipScale::updateSnapGuides(const LLBBox& bbox)
 		switch (mManipPart)
 		{
 		case LL_CORNER_NNN:
-			axis_flip.setVec(1.f, 1.f, 1.f);
+			axis_flip.set(1.f, 1.f, 1.f);
 			break;
 		case LL_CORNER_NNP:
-			axis_flip.setVec(1.f, 1.f, -1.f);
+			axis_flip.set(1.f, 1.f, -1.f);
 			break;
 		case LL_CORNER_NPN:
-			axis_flip.setVec(1.f, -1.f, 1.f);
+			axis_flip.set(1.f, -1.f, 1.f);
 			break;
 		case LL_CORNER_NPP:
-			axis_flip.setVec(1.f, -1.f, -1.f);
+			axis_flip.set(1.f, -1.f, -1.f);
 			break;
 		case LL_CORNER_PNN:
-			axis_flip.setVec(-1.f, 1.f, 1.f);
+			axis_flip.set(-1.f, 1.f, 1.f);
 			break;
 		case LL_CORNER_PNP:
-			axis_flip.setVec(-1.f, 1.f, -1.f);
+			axis_flip.set(-1.f, 1.f, -1.f);
 			break;
 		case LL_CORNER_PPN:
-			axis_flip.setVec(-1.f, -1.f, 1.f);
+			axis_flip.set(-1.f, -1.f, 1.f);
 			break;
 		case LL_CORNER_PPP:
-			axis_flip.setVec(-1.f, -1.f, -1.f);
+			axis_flip.set(-1.f, -1.f, -1.f);
 			break;
 		default:
 			break;
@@ -1515,7 +1513,7 @@ void LLManipScale::updateSnapGuides(const LLBBox& bbox)
 			mSnapGuideDir1 = LLVector3::y_axis.scaledVec(axis_flip);
 			mScaleSnapUnit1 = grid_scale.mV[VZ];
 			mSnapGuideDir2 = LLVector3::z_axis.scaledVec(axis_flip);
-			mScaleSnapUnit2 = grid_scale.mV[VY];			
+			mScaleSnapUnit2 = grid_scale.mV[VY];
 			break;
 		case VY:
 			// y axis facing being scaled, use x and z for snap guides
@@ -1532,10 +1530,10 @@ void LLManipScale::updateSnapGuides(const LLBBox& bbox)
 			mScaleSnapUnit2 = grid_scale.mV[VX];
 			break;
 		default:
-			mSnapGuideDir1.zeroVec();
+			mSnapGuideDir1.setZero();
 			mScaleSnapUnit1 = 0.f;
 
-			mSnapGuideDir2.zeroVec();
+			mSnapGuideDir2.setZero();
 			mScaleSnapUnit2 = 0.f;
 			break;
 		}
@@ -1550,7 +1548,7 @@ void LLManipScale::updateSnapGuides(const LLBBox& bbox)
 	mScalePlaneNormal1.normalize();
 
 	mScalePlaneNormal2 = mSnapGuideDir2 % mScaleDir;
-	mScalePlaneNormal2.normalize();	
+	mScalePlaneNormal2.normalize();
 
 	mScaleSnapUnit1 = mScaleSnapUnit1 / (mSnapDir1 * mScaleDir);
 	mScaleSnapUnit2 = mScaleSnapUnit2 / (mSnapDir2 * mScaleDir);
@@ -1588,7 +1586,7 @@ void LLManipScale::renderSnapGuides(const LLBBox& bbox)
 		LLVector3 line_mid = mScaleCenter + (mScaleSnappedValue * mScaleDir) + (mSnapGuideDir1 * mSnapRegimeOffset);
 		LLVector3 line_start = line_mid - (mScaleDir * (llmin(mScaleSnappedValue, mSnapGuideLength * 0.5f)));
 		LLVector3 line_end = line_mid + (mScaleDir * llmin(max_point_on_scale_line - mScaleSnappedValue, mSnapGuideLength * 0.5f));
-		
+
 		gGL.color4f(tick_color.mV[VRED], tick_color.mV[VGREEN], tick_color.mV[VBLUE], tick_color.mV[VALPHA] * 0.1f);
 		gGL.vertex3fv(line_start.mV);
 		gGL.color4fv(tick_color.mV);
@@ -1613,13 +1611,16 @@ void LLManipScale::renderSnapGuides(const LLBBox& bbox)
 		LLGLDepthTest gls_depth(GL_FALSE);
 
 		F32 dist_grid_axis = llmax(0.f, (drag_point - mScaleCenter) * mScaleDir);
-
+		
 		F32 smallest_subdivision1 = mScaleSnapUnit1 / sGridMaxSubdivisionLevel;
 		F32 smallest_subdivision2 = mScaleSnapUnit2 / sGridMaxSubdivisionLevel;
-
+		
+		F32 dist_scale_units_1 = dist_grid_axis / smallest_subdivision1;
+		F32 dist_scale_units_2 = dist_grid_axis / smallest_subdivision2;
+		
 		// find distance to nearest smallest grid unit
-		F32 grid_multiple1 = llfloor(dist_grid_axis / smallest_subdivision1);
-		F32 grid_multiple2 = llfloor(dist_grid_axis / smallest_subdivision2);
+		F32 grid_multiple1 = llfloor(dist_scale_units_1);
+		F32 grid_multiple2 = llfloor(dist_scale_units_2);
 		F32 grid_offset1 = fmodf(dist_grid_axis, smallest_subdivision1);
 		F32 grid_offset2 = fmodf(dist_grid_axis, smallest_subdivision2);
 
@@ -1629,8 +1630,6 @@ void LLManipScale::renderSnapGuides(const LLBBox& bbox)
 
 		S32 num_ticks_per_side1 = llmax(1, lltrunc(0.5f * mSnapGuideLength / smallest_subdivision1));
 		S32 num_ticks_per_side2 = llmax(1, lltrunc(0.5f * mSnapGuideLength / smallest_subdivision2));
-		F32 dist_scale_units_1 = dist_grid_axis / smallest_subdivision1;
-		F32 dist_scale_units_2 = dist_grid_axis / smallest_subdivision2;
 		S32 ticks_from_scale_center_1 = lltrunc(dist_scale_units_1);
 		S32 ticks_from_scale_center_2 = lltrunc(dist_scale_units_2);
 		S32 max_ticks1 = llceil(max_point_on_scale_line / smallest_subdivision1 - dist_scale_units_1);
@@ -1638,7 +1637,7 @@ void LLManipScale::renderSnapGuides(const LLBBox& bbox)
 		S32 start_tick = 0;
 		S32 stop_tick = 0;
 
-		if (mInSnapRegime)
+		if (mSnapRegime != SNAP_REGIME_NONE)
 		{
 			// draw snap guide line
 			gGL.begin(LLRender::LINES);
@@ -1677,7 +1676,7 @@ void LLManipScale::renderSnapGuides(const LLBBox& bbox)
 			}
 			gGL.end();
 		}
-	
+
 		LLVector2 screen_translate_axis(llabs(mScaleDir * LLViewerCamera::getInstance()->getLeftAxis()), llabs(mScaleDir * LLViewerCamera::getInstance()->getUpAxis()));
 		screen_translate_axis.normalize();
 
@@ -1791,12 +1790,13 @@ void LLManipScale::renderSnapGuides(const LLBBox& bbox)
 				}
 				else
 				{
-					tick_value = (grid_multiple1 + i) / (2.f * max_subdivisions);
+					tick_value = (grid_multiple1 + i) / (2.f * sGridMaxSubdivisionLevel);
 				}
 
 				F32 text_highlight = 0.8f;
 
-				if (is_approx_equal(tick_value, mScaleSnappedValue) && mInSnapRegime)
+				// Highlight this text if the tick value matches the snapped to value, and if either the second set of ticks isn't going to be shown or cursor is in the first snap regime.
+				if (is_approx_equal(tick_value, mScaleSnappedValue) && (mScaleSnapUnit2 == mScaleSnapUnit1 || (mSnapRegime & SNAP_REGIME_UPPER)))
 				{
 					text_highlight = 1.f;
 				}
@@ -1840,10 +1840,9 @@ void LLManipScale::renderSnapGuides(const LLBBox& bbox)
 						tick_value = (grid_multiple2 + i) / (2.f * sGridMaxSubdivisionLevel);
 					}
 
-
 					F32 text_highlight = 0.8f;
 
-					if (is_approx_equal(tick_value, mScaleSnappedValue) && mInSnapRegime)
+					if (is_approx_equal(tick_value, mScaleSnappedValue) && (mSnapRegime & SNAP_REGIME_LOWER))
 					{
 						text_highlight = 1.f;
 					}
@@ -1889,17 +1888,15 @@ void LLManipScale::renderSnapGuides(const LLBBox& bbox)
 // Returns unit vector in direction of part of an origin-centered cube
 LLVector3 LLManipScale::partToUnitVector( S32 part ) const
 {
-	if( (LL_FACE_MIN <= part) && (part <= LL_FACE_MAX) )
+	if ( (LL_FACE_MIN <= part) && (part <= LL_FACE_MAX) )
 	{
 		return faceToUnitVector( part );
 	}
-	else
-	if( (LL_CORNER_MIN <= part) && (part <= LL_CORNER_MAX) )
+	else if ( (LL_CORNER_MIN <= part) && (part <= LL_CORNER_MAX) )
 	{
 		return cornerToUnitVector( part );
 	}
-	else
-	if( (LL_EDGE_MIN <= part) && (part <= LL_EDGE_MAX ) )
+	else if ( (LL_EDGE_MIN <= part) && (part <= LL_EDGE_MAX ) )
 	{
 		return edgeToUnitVector( part );
 	}
@@ -1911,27 +1908,32 @@ LLVector3 LLManipScale::partToUnitVector( S32 part ) const
 LLVector3 LLManipScale::faceToUnitVector( S32 part ) const
 {
 	llassert( (LL_FACE_MIN <= part) && (part <= LL_FACE_MAX) );
+	LLVector3 vec;
 	switch( part )
 	{
 		case LL_FACE_POSX:
-			return LLVector3(  1.f,  0.f,  0.f );
-
+			vec.set(  1.f,  0.f,  0.f );
+			break;
 		case LL_FACE_NEGX:
-			return LLVector3( -1.f,  0.f,  0.f );
-
+			vec.set( -1.f,  0.f,  0.f );
+			break;
 		case LL_FACE_POSY:
-			return LLVector3(  0.f,  1.f,  0.f );
-
+			vec.set(  0.f,  1.f,  0.f );
+			break;
 		case LL_FACE_NEGY:
-			return LLVector3(  0.f, -1.f,  0.f );
-
+			vec.set(  0.f, -1.f,  0.f );
+			break;
 		case LL_FACE_POSZ:
-			return LLVector3(  0.f,  0.f,  1.f );
-
+			vec.set(  0.f,  0.f,  1.f );
+			break;
 		case LL_FACE_NEGZ:
-			return LLVector3(  0.f,  0.f, -1.f );
+			vec.set(  0.f,  0.f, -1.f );
+			break;
+		default:
+			vec.clear();
 	}
-	return LLVector3();
+
+	return vec;
 }
 
 
@@ -1943,31 +1945,31 @@ LLVector3 LLManipScale::cornerToUnitVector( S32 part ) const
 	switch(part)
 	{
 		case LL_CORNER_NNN:
-			vec.setVec(-OO_SQRT3, -OO_SQRT3, -OO_SQRT3);
+			vec.set(-OO_SQRT3, -OO_SQRT3, -OO_SQRT3);
 			break;
-		case LL_CORNER_NNP:		
-			vec.setVec(-OO_SQRT3, -OO_SQRT3, OO_SQRT3);
+		case LL_CORNER_NNP:
+			vec.set(-OO_SQRT3, -OO_SQRT3, OO_SQRT3);
 			break;
 		case LL_CORNER_NPN:
-			vec.setVec(-OO_SQRT3, OO_SQRT3, -OO_SQRT3);
+			vec.set(-OO_SQRT3, OO_SQRT3, -OO_SQRT3);
 			break;
 		case LL_CORNER_NPP:
-			vec.setVec(-OO_SQRT3, OO_SQRT3, OO_SQRT3);
+			vec.set(-OO_SQRT3, OO_SQRT3, OO_SQRT3);
 			break;
 		case LL_CORNER_PNN:
-			vec.setVec(OO_SQRT3, -OO_SQRT3, -OO_SQRT3);
+			vec.set(OO_SQRT3, -OO_SQRT3, -OO_SQRT3);
 			break;
 		case LL_CORNER_PNP:
-			vec.setVec(OO_SQRT3, -OO_SQRT3, OO_SQRT3);
+			vec.set(OO_SQRT3, -OO_SQRT3, OO_SQRT3);
 			break;
 		case LL_CORNER_PPN:
-			vec.setVec(OO_SQRT3, OO_SQRT3, -OO_SQRT3);
+			vec.set(OO_SQRT3, OO_SQRT3, -OO_SQRT3);
 			break;
 		case LL_CORNER_PPP:
-			vec.setVec(OO_SQRT3, OO_SQRT3, OO_SQRT3);
+			vec.set(OO_SQRT3, OO_SQRT3, OO_SQRT3);
 			break;
 		default:
-			vec.clearVec();
+			vec.clear();
 	}
 
 	return vec;
@@ -1994,8 +1996,8 @@ LLVector3 LLManipScale::unitVectorToLocalBBoxExtent( const LLVector3& v, const L
 	LLVector3 ctr = bbox.getCenterLocal();
 
 	return LLVector3(
-		v.mV[0] ? (v.mV[0]>0 ? max.mV[0] : min.mV[0] ) : ctr.mV[0], 
-		v.mV[1] ? (v.mV[1]>0 ? max.mV[1] : min.mV[1] ) : ctr.mV[1], 
+		v.mV[0] ? (v.mV[0]>0 ? max.mV[0] : min.mV[0] ) : ctr.mV[0],
+		v.mV[1] ? (v.mV[1]>0 ? max.mV[1] : min.mV[1] ) : ctr.mV[1],
 		v.mV[2] ? (v.mV[2]>0 ? max.mV[2] : min.mV[2] ) : ctr.mV[2] );
 }
 
@@ -2013,7 +2015,7 @@ F32		LLManipScale::partToMaxScale( S32 part, const LLBBox &bbox ) const
 			max_extent = bbox_extents.mV[i];
 		}
 	}
-	max_scale_factor = bbox_extents.magVec() * get_default_max_prim_scale() / max_extent;
+	max_scale_factor = bbox_extents.length() * get_default_max_prim_scale() / max_extent;
 
 	if (getUniform())
 	{
@@ -2036,7 +2038,7 @@ F32		LLManipScale::partToMinScale( S32 part, const LLBBox &bbox ) const
 			min_extent = bbox_extents.mV[i];
 		}
 	}
-	F32 min_scale_factor = bbox_extents.magVec() * MIN_PRIM_SCALE / min_extent;
+	F32 min_scale_factor = bbox_extents.length() * MIN_PRIM_SCALE / min_extent;
 
 	if (getUniform())
 	{
@@ -2087,7 +2089,7 @@ LLVector3 LLManipScale::nearestAxis( const LLVector3& v ) const
 // virtual
 BOOL LLManipScale::canAffectSelection()
 {
-	// An selection is scalable if you are allowed to both edit and move 
+	// An selection is scalable if you are allowed to both edit and move
 	// everything in it, and it does not have any sitting agents
 	BOOL can_scale = mObjectSelection->getObjectCount() != 0;
 	if (can_scale)
diff --git a/indra/newview/llmanipscale.h b/indra/newview/llmanipscale.h
index 2874c5dcd5..e1da7a1bb5 100755
--- a/indra/newview/llmanipscale.h
+++ b/indra/newview/llmanipscale.h
@@ -51,6 +51,13 @@ typedef	enum e_scale_manipulator_type
 	SCALE_MANIP_FACE
 } EScaleManipulatorType;
 
+typedef	enum e_snap_regimes
+{
+	SNAP_REGIME_NONE = 0, //!< The cursor is not in either of the snap regimes.
+	SNAP_REGIME_UPPER = 0x1, //!< The cursor is, non-exclusively, in the first of the snap regimes. Prefer to treat as bitmask.
+	SNAP_REGIME_LOWER = 0x2 //!< The cursor is, non-exclusively, in the second of the snap regimes. Prefer to treat as bitmask.
+} ESnapRegimes;
+
 
 class LLManipScale : public LLManip
 {
@@ -96,7 +103,7 @@ private:
 	void			renderSnapGuides( const LLBBox& local_bbox );
 
 	void			revert();
-	
+
 	inline void		conditionalHighlight( U32 part, const LLColor4* highlight = NULL, const LLColor4* normal = NULL );
 
 	void			drag( S32 x, S32 y );
@@ -135,35 +142,35 @@ private:
 	};
 
 
-	F32				mBoxHandleSize;		// The size of the handles at the corners of the bounding box
-	F32				mScaledBoxHandleSize; // handle size after scaling for selection feedback
+	F32				mBoxHandleSize; //!< The size of the handles at the corners of the bounding box.
+	F32				mScaledBoxHandleSize; //!< Handle size after scaling for selection feedback.
 	LLVector3d		mDragStartPointGlobal;
-	LLVector3d		mDragStartCenterGlobal;	// The center of the bounding box of all selected objects at time of drag start
+	LLVector3d		mDragStartCenterGlobal; //!< The center of the bounding box of all selected objects at time of drag start.
 	LLVector3d		mDragPointGlobal;
 	LLVector3d 		mDragFarHitGlobal;
 	S32				mLastMouseX;
 	S32				mLastMouseY;
 	BOOL			mSendUpdateOnMouseUp;
 	U32 			mLastUpdateFlags;
-	typedef std::set<ManipulatorHandle*, compare_manipulators> minpulator_list_t;
-	minpulator_list_t mProjectedManipulators;
+	typedef std::set<ManipulatorHandle*, compare_manipulators> manipulator_list_t;
+	manipulator_list_t mProjectedManipulators;
 	LLVector4		mManipulatorVertices[14];
-	F32				mScaleSnapUnit1;  //!< Size of snap multiples for axis 1.
-	F32				mScaleSnapUnit2;  //!< Size of snap multiples for axis 2.
+	F32				mScaleSnapUnit1; //!< Size of snap multiples for the upper scale.
+	F32				mScaleSnapUnit2; //!< Size of snap multiples for the lower scale.
 	LLVector3		mScalePlaneNormal1; //!< Normal of plane in which scale occurs that most faces camera.
 	LLVector3		mScalePlaneNormal2; //!< Normal of plane in which scale occurs that most faces camera.
-	LLVector3		mSnapGuideDir1;
-	LLVector3		mSnapGuideDir2;
-	LLVector3		mSnapDir1;
-	LLVector3		mSnapDir2;
-	F32				mSnapRegimeOffset;
-	F32				mTickPixelSpacing1;
-	F32				mTickPixelSpacing2;
+	LLVector3		mSnapGuideDir1; //!< The direction in which the upper snap guide tick marks face.
+	LLVector3		mSnapGuideDir2; //!< The direction in which the lower snap guide tick marks face.
+	LLVector3		mSnapDir1; //!< The direction in which the upper snap guides face.
+	LLVector3		mSnapDir2; //!< The direction in which the lower snap guides face.
+	F32				mSnapRegimeOffset; //!< How far off the scale axis centerline the mouse can be before it exits/enters the snap regime.
+	F32				mTickPixelSpacing1; //!< The pixel spacing between snap guide tick marks for the upper scale.
+	F32				mTickPixelSpacing2; //!< The pixel spacing between snap guide tick marks for the lower scale.
 	F32				mSnapGuideLength;
-	LLVector3		mScaleCenter;
+	LLVector3		mScaleCenter; //!< The location of the origin of the scaling operation.
 	LLVector3		mScaleDir; //!< The direction of the scaling action.  In face-dragging this is aligned with one of the cardinal axis relative to the prim, but in corner-dragging this is along the diagonal.
 	F32				mScaleSnappedValue; //!< The distance of the current position nearest the mouse location, measured along mScaleDir.  Is measured either from the center or from the far face/corner depending upon whether uniform scaling is true or false respectively.
-	BOOL			mInSnapRegime;
+	ESnapRegimes	mSnapRegime; //<! Which, if any, snap regime the cursor is currently residing in.
 	F32*			mManipulatorScales;
 };
 
-- 
cgit v1.2.3


From 2db27d09c1327af94d02376e31eeafb45f4f6d82 Mon Sep 17 00:00:00 2001
From: Ricky Curtice <kf6kjg+hg@gmail.com>
Date: Sun, 2 Mar 2014 16:48:25 -0800
Subject: Better code documentation.

---
 indra/newview/llmanipscale.cpp | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llmanipscale.cpp b/indra/newview/llmanipscale.cpp
index 23cbc580f6..26ebf06d49 100755
--- a/indra/newview/llmanipscale.cpp
+++ b/indra/newview/llmanipscale.cpp
@@ -807,7 +807,7 @@ void LLManipScale::renderAxisHandle( const LLVector3& start, const LLVector3& en
 	}
 }
 
-
+// General scale call
 void LLManipScale::drag( S32 x, S32 y )
 {
 	if( (LL_FACE_MIN <= (S32)mManipPart)
@@ -815,8 +815,7 @@ void LLManipScale::drag( S32 x, S32 y )
 	{
 		dragFace( x, y );
 	}
-	else
-	if( (LL_CORNER_MIN <= (S32)mManipPart)
+	else if( (LL_CORNER_MIN <= (S32)mManipPart)
 		&& ((S32)mManipPart <= LL_CORNER_MAX) )
 	{
 		dragCorner( x, y );
@@ -842,7 +841,7 @@ void LLManipScale::drag( S32 x, S32 y )
 	gAgentCamera.clearFocusObject();
 }
 
-// Scale around the
+// Scale on three axis simultaneously
 void LLManipScale::dragCorner( S32 x, S32 y )
 {
 	// Suppress scale if mouse hasn't moved.
@@ -850,6 +849,7 @@ void LLManipScale::dragCorner( S32 x, S32 y )
 	{
 		return;
 	}
+
 	mLastMouseX = x;
 	mLastMouseY = y;
 
@@ -861,6 +861,7 @@ void LLManipScale::dragCorner( S32 x, S32 y )
 
 	F32 s = 0;
 	F32 t = 0;
+
 	nearestPointOnLineFromMouse(x, y,
 								drag_start_center_agent,
 								drag_start_point_agent,
@@ -1041,7 +1042,7 @@ void LLManipScale::dragCorner( S32 x, S32 y )
 	}
 }
 
-
+// Scale on a single axis
 void LLManipScale::dragFace( S32 x, S32 y )
 {
 	// Suppress scale if mouse hasn't moved.
@@ -1755,7 +1756,7 @@ void LLManipScale::renderSnapGuides(const LLBBox& bbox)
 			gGL.end();
 		}
 
-		// render tick labels
+		// render upper tick labels
 		start_tick = -(llmin(ticks_from_scale_center_1, num_ticks_per_side1));
 		stop_tick = llmin(max_ticks1, num_ticks_per_side1);
 
@@ -1805,7 +1806,7 @@ void LLManipScale::renderSnapGuides(const LLBBox& bbox)
 			}
 		}
 
-		// label ticks on opposite side
+		// label ticks on opposite side, only can happen in scaling modes that effect more than one axis and when the object's axis don't have the same scale.  A differing scale indicates both conditions.
 		if (mScaleSnapUnit2 != mScaleSnapUnit1)
 		{
 			start_tick = -(llmin(ticks_from_scale_center_2, num_ticks_per_side2));
-- 
cgit v1.2.3


From 3e09cdefff9bc58c193dca4b08e97d59fa008838 Mon Sep 17 00:00:00 2001
From: Ricky Curtice <kf6kjg+hg@gmail.com>
Date: Sun, 2 Mar 2014 22:06:24 -0800
Subject: Fixed compile-time errors. My bad.

Serves me right for not waiting through the compile!
---
 indra/llmath/v3dmath.h         | 65 +++++++++++++++++++++++++++++++++++-------
 indra/newview/llmanipscale.cpp |  2 +-
 2 files changed, 56 insertions(+), 11 deletions(-)

(limited to 'indra')

diff --git a/indra/llmath/v3dmath.h b/indra/llmath/v3dmath.h
index cab4c93a9f..4938273d5b 100755
--- a/indra/llmath/v3dmath.h
+++ b/indra/llmath/v3dmath.h
@@ -72,17 +72,22 @@ class LLVector3d
 		BOOL		clamp(const F64 min, const F64 max);		// Clamps all values to (min,max), returns TRUE if data changed
 		BOOL		abs();						// sets all values to absolute value of original value (first octant), returns TRUE if changed
 
-		inline const LLVector3d&	clearVec();		// Clears LLVector3d to (0, 0, 0, 1)
+		inline const LLVector3d&	clear();		// Clears LLVector3d to (0, 0, 0, 1)
+		inline const LLVector3d&	clearVec();		// deprecated
 		inline const LLVector3d&	setZero();		// Zero LLVector3d to (0, 0, 0, 0)
 		inline const LLVector3d&	zeroVec();		// deprecated
-		inline const LLVector3d&	setVec(const F64 x, const F64 y, const F64 z);	// Sets LLVector3d to (x, y, z, 1)
-		inline const LLVector3d&	setVec(const LLVector3d &vec);	// Sets LLVector3d to vec
-		inline const LLVector3d&	setVec(const F64 *vec);			// Sets LLVector3d to vec
-		inline const LLVector3d&	setVec(const LLVector3 &vec);
-
-		F64		magVec() const;				// Returns magnitude of LLVector3d
-		F64		magVecSquared() const;		// Returns magnitude squared of LLVector3d
-		inline F64		normVec();					// Normalizes and returns the magnitude of LLVector3d
+		inline const LLVector3d&	set(const F64 x, const F64 y, const F64 z);	// Sets LLVector3d to (x, y, z, 1)
+		inline const LLVector3d&	set(const LLVector3d &vec);	// Sets LLVector3d to vec
+		inline const LLVector3d&	set(const F64 *vec);		// Sets LLVector3d to vec
+		inline const LLVector3d&	set(const LLVector3 &vec);
+		inline const LLVector3d&	setVec(const F64 x, const F64 y, const F64 z);	// deprecated
+		inline const LLVector3d&	setVec(const LLVector3d &vec);	// deprecated
+		inline const LLVector3d&	setVec(const F64 *vec);			// deprecated
+		inline const LLVector3d&	setVec(const LLVector3 &vec);	// deprecated
+
+		F64		magVec() const;				// deprecated
+		F64		magVecSquared() const;		// deprecated
+		inline F64		normVec();					// deprecated
 
 		F64 length() const;			// Returns magnitude of LLVector3d
 		F64 lengthSquared() const;	// Returns magnitude squared of LLVector3d
@@ -127,7 +132,15 @@ class LLVector3d
 
 typedef LLVector3d LLGlobalVec;
 
-const LLVector3d &LLVector3d::setVec(const LLVector3 &vec)
+inline const LLVector3d &LLVector3d::set(const LLVector3 &vec)
+{
+	mdV[0] = vec.mV[0];
+	mdV[1] = vec.mV[1];
+	mdV[2] = vec.mV[2];
+	return *this;
+}
+
+inline const LLVector3d &LLVector3d::setVec(const LLVector3 &vec)
 {
 	mdV[0] = vec.mV[0];
 	mdV[1] = vec.mV[1];
@@ -184,6 +197,14 @@ inline BOOL LLVector3d::isFinite() const
 
 // Clear and Assignment Functions
 
+inline const LLVector3d&	LLVector3d::clear(void)
+{
+	mdV[0] = 0.f;
+	mdV[1] = 0.f;
+	mdV[2]= 0.f;
+	return (*this);
+}
+
 inline const LLVector3d&	LLVector3d::clearVec(void)
 {
 	mdV[0] = 0.f;
@@ -208,6 +229,30 @@ inline const LLVector3d&	LLVector3d::zeroVec(void)
 	return (*this);
 }
 
+inline const LLVector3d&	LLVector3d::set(const F64 x, const F64 y, const F64 z)
+{
+	mdV[VX] = x;
+	mdV[VY] = y;
+	mdV[VZ] = z;
+	return (*this);
+}
+
+inline const LLVector3d&	LLVector3d::set(const LLVector3d &vec)
+{
+	mdV[0] = vec.mdV[0];
+	mdV[1] = vec.mdV[1];
+	mdV[2] = vec.mdV[2];
+	return (*this);
+}
+
+inline const LLVector3d&	LLVector3d::set(const F64 *vec)
+{
+	mdV[0] = vec[0];
+	mdV[1] = vec[1];
+	mdV[2] = vec[2];
+	return (*this);
+}
+
 inline const LLVector3d&	LLVector3d::setVec(const F64 x, const F64 y, const F64 z)
 {
 	mdV[VX] = x;
diff --git a/indra/newview/llmanipscale.cpp b/indra/newview/llmanipscale.cpp
index 26ebf06d49..a17f615019 100755
--- a/indra/newview/llmanipscale.cpp
+++ b/indra/newview/llmanipscale.cpp
@@ -1106,7 +1106,7 @@ void LLManipScale::dragFace( S32 x, S32 y )
 
 	if (snap_enabled && dist_from_scale_line > mSnapRegimeOffset)
 	{
-		mSnapRegime = SNAP_REGIME_UPPER | SNAP_REGIME_LOWER; // A face drag doesn't have split regimes.
+		mSnapRegime = static_cast<ESnapRegimes>(SNAP_REGIME_UPPER | SNAP_REGIME_LOWER); // A face drag doesn't have split regimes.
 
 		if (dist_along_scale_line > max_drag_dist)
 		{
-- 
cgit v1.2.3


From 840e1da8aa4b019ebf08c8c36c72ac01ad592506 Mon Sep 17 00:00:00 2001
From: Jonathan Yap <none@none>
Date: Mon, 3 Mar 2014 14:08:26 -0500
Subject: STORM-2017 Untranslatable text appears when scaling, or moving
 objects

---
 indra/newview/llmanipscale.cpp                 | 6 +++---
 indra/newview/llmaniptranslate.cpp             | 5 +++--
 indra/newview/skins/default/xui/en/strings.xml | 2 ++
 3 files changed, 8 insertions(+), 5 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llmanipscale.cpp b/indra/newview/llmanipscale.cpp
index a17f615019..aa4386508b 100755
--- a/indra/newview/llmanipscale.cpp
+++ b/indra/newview/llmanipscale.cpp
@@ -59,7 +59,7 @@
 #include "v2math.h"
 #include "llvoavatar.h"
 #include "llmeshrepository.h"
-
+#include "lltrans.h"
 
 const F32 MAX_MANIP_SELECT_DISTANCE_SQUARED = 11.f * 11.f;
 const F32 SNAP_GUIDE_SCREEN_OFFSET = 0.05f;
@@ -1874,11 +1874,11 @@ void LLManipScale::renderSnapGuides(const LLBBox& bbox)
 				LLVector3 help_text_pos = selection_center_start + (mSnapRegimeOffset * 5.f * offset_dir);
 				const LLFontGL* big_fontp = LLFontGL::getFontSansSerif();
 
-				std::string help_text = "Move mouse cursor over ruler";
+				std::string help_text = LLTrans::getString("manip_hint1");
 				LLColor4 help_text_color = LLColor4::white;
 				help_text_color.mV[VALPHA] = clamp_rescale(mHelpTextTimer.getElapsedTimeF32(), sHelpTextVisibleTime, sHelpTextVisibleTime + sHelpTextFadeTime, grid_alpha, 0.f);
 				hud_render_utf8text(help_text, help_text_pos, *big_fontp, LLFontGL::NORMAL, LLFontGL::NO_SHADOW, -0.5f * big_fontp->getWidthF32(help_text), 3.f, help_text_color, mObjectSelection->getSelectType() == SELECT_TYPE_HUD);
-				help_text = "to snap to grid";
+				help_text = LLTrans::getString("manip_hint2");
 				help_text_pos -= LLViewerCamera::getInstance()->getUpAxis() * mSnapRegimeOffset * 0.4f;
 				hud_render_utf8text(help_text, help_text_pos, *big_fontp, LLFontGL::NORMAL, LLFontGL::NO_SHADOW, -0.5f * big_fontp->getWidthF32(help_text), 3.f, help_text_color, mObjectSelection->getSelectType() == SELECT_TYPE_HUD);
 			}
diff --git a/indra/newview/llmaniptranslate.cpp b/indra/newview/llmaniptranslate.cpp
index 06bf294417..e84207461c 100755
--- a/indra/newview/llmaniptranslate.cpp
+++ b/indra/newview/llmaniptranslate.cpp
@@ -61,6 +61,7 @@
 #include "llui.h"
 #include "pipeline.h"
 #include "llviewershadermgr.h"
+#include "lltrans.h"
 
 const S32 NUM_AXES = 3;
 const S32 MOUSE_DRAG_SLOP = 2;       // pixels
@@ -1441,11 +1442,11 @@ void LLManipTranslate::renderSnapGuides()
 				LLVector3 help_text_pos = selection_center_start + (snap_offset_meters_up * 3.f * mSnapOffsetAxis);
 				const LLFontGL* big_fontp = LLFontGL::getFontSansSerif();
 
-				std::string help_text = "Move mouse cursor over ruler";
+				std::string help_text = LLTrans::getString("manip_hint1");
 				LLColor4 help_text_color = LLColor4::white;
 				help_text_color.mV[VALPHA] = clamp_rescale(mHelpTextTimer.getElapsedTimeF32(), sHelpTextVisibleTime, sHelpTextVisibleTime + sHelpTextFadeTime, line_alpha, 0.f);
 				hud_render_utf8text(help_text, help_text_pos, *big_fontp, LLFontGL::NORMAL, LLFontGL::NO_SHADOW, -0.5f * big_fontp->getWidthF32(help_text), 3.f, help_text_color, mObjectSelection->getSelectType() == SELECT_TYPE_HUD);
-				help_text = "to snap to grid";
+				help_text = LLTrans::getString("manip_hint2");
 				help_text_pos -= LLViewerCamera::getInstance()->getUpAxis() * mSnapOffsetMeters * 0.2f;
 				hud_render_utf8text(help_text, help_text_pos, *big_fontp, LLFontGL::NORMAL, LLFontGL::NO_SHADOW, -0.5f * big_fontp->getWidthF32(help_text), 3.f, help_text_color, mObjectSelection->getSelectType() == SELECT_TYPE_HUD);
 			}
diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml
index 7e79d297ef..0efe9ad80a 100755
--- a/indra/newview/skins/default/xui/en/strings.xml
+++ b/indra/newview/skins/default/xui/en/strings.xml
@@ -383,6 +383,8 @@ Please try logging in again in a minute.</string>
 	<string name="multiple_textures">Multiple</string>
 
 <string name="use_texture">Use texture</string>
+    <string name="manip_hint1">Move mouse cursor over ruler</string>
+    <string name="manip_hint2">to snap to grid</string>
 
 	<!-- world map -->
 	<string name="texture_loading">Loading...</string>
-- 
cgit v1.2.3


From fe2801fc63a428f47b29e151cfb71b4558305ceb Mon Sep 17 00:00:00 2001
From: Ricky Curtice <kf6kjg+hg@gmail.com>
Date: Mon, 3 Mar 2014 21:50:12 -0800
Subject: STORM-2017: Added translatable help text to rotation.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

I chose the camera’s up vector to place the help text as it provided a consistent location on the screen for the user to see the text pop up.

While doing this I realized that the calls to hud_render_utf8text utilized a condition that was guaranteed to be false based on a surrounding if-statement, and so could trivially be replaced with a constant.
Also cleaned out a compiler warning about unused private member variables in llmaniptranslate.  I don’t like warnings and useless code. :P
---
 indra/newview/llmaniprotate.cpp    | 29 +++++++++++++++++++++++++++++
 indra/newview/llmanipscale.cpp     |  4 ++--
 indra/newview/llmaniptranslate.cpp |  6 ++----
 indra/newview/llmaniptranslate.h   |  2 --
 4 files changed, 33 insertions(+), 8 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llmaniprotate.cpp b/indra/newview/llmaniprotate.cpp
index 4cbdfde868..bd21d04b4a 100755
--- a/indra/newview/llmaniprotate.cpp
+++ b/indra/newview/llmaniprotate.cpp
@@ -61,6 +61,7 @@
 #include "llglheaders.h"
 #include "lltrans.h"
 #include "llvoavatarself.h"
+#include "llhudrender.h"
 
 const F32 RADIUS_PIXELS = 100.f;		// size in screen space
 const F32 SQ_RADIUS = RADIUS_PIXELS * RADIUS_PIXELS;
@@ -452,6 +453,9 @@ BOOL LLManipRotate::handleMouseDownOnPart( S32 x, S32 y, MASK mask )
 	// Route future Mouse messages here preemptively.  (Release on mouse up.)
 	setMouseCapture( TRUE );
 	LLSelectMgr::getInstance()->enableSilhouette(FALSE);
+
+	mHelpTextTimer.reset();
+	sNumTimesHelpTextShown++;
 	return TRUE;
 }
 
@@ -1111,6 +1115,31 @@ void LLManipRotate::renderSnapGuides()
 			}
 		}
 	}
+
+
+	// render help text
+	if (mObjectSelection->getSelectType() != SELECT_TYPE_HUD)
+	{
+		if (mHelpTextTimer.getElapsedTimeF32() < sHelpTextVisibleTime + sHelpTextFadeTime && sNumTimesHelpTextShown < sMaxTimesShowHelpText)
+		{
+			LLVector3 selection_center_start = LLSelectMgr::getInstance()->getSavedBBoxOfSelection().getCenterAgent();
+
+			LLVector3 offset_dir = LLViewerCamera::getInstance()->getUpAxis();
+
+			F32 line_alpha = gSavedSettings.getF32("GridOpacity");
+
+			LLVector3 help_text_pos = selection_center_start + (mRadiusMeters * 3.f * offset_dir);
+			const LLFontGL* big_fontp = LLFontGL::getFontSansSerif();
+
+			std::string help_text =  LLTrans::getString("manip_hint1");
+			LLColor4 help_text_color = LLColor4::white;
+			help_text_color.mV[VALPHA] = clamp_rescale(mHelpTextTimer.getElapsedTimeF32(), sHelpTextVisibleTime, sHelpTextVisibleTime + sHelpTextFadeTime, line_alpha, 0.f);
+			hud_render_utf8text(help_text, help_text_pos, *big_fontp, LLFontGL::NORMAL, LLFontGL::NO_SHADOW, -0.5f * big_fontp->getWidthF32(help_text), 3.f, help_text_color, false);
+			help_text =  LLTrans::getString("manip_hint2");
+			help_text_pos -= offset_dir * mRadiusMeters * 0.4f;
+			hud_render_utf8text(help_text, help_text_pos, *big_fontp, LLFontGL::NORMAL, LLFontGL::NO_SHADOW, -0.5f * big_fontp->getWidthF32(help_text), 3.f, help_text_color, false);
+		}
+	}
 }
 
 // Returns TRUE if center of sphere is visible.  Also sets a bunch of member variables that are used later (e.g. mCenterToCam)
diff --git a/indra/newview/llmanipscale.cpp b/indra/newview/llmanipscale.cpp
index aa4386508b..6c1b25f2b4 100755
--- a/indra/newview/llmanipscale.cpp
+++ b/indra/newview/llmanipscale.cpp
@@ -1877,10 +1877,10 @@ void LLManipScale::renderSnapGuides(const LLBBox& bbox)
 				std::string help_text = LLTrans::getString("manip_hint1");
 				LLColor4 help_text_color = LLColor4::white;
 				help_text_color.mV[VALPHA] = clamp_rescale(mHelpTextTimer.getElapsedTimeF32(), sHelpTextVisibleTime, sHelpTextVisibleTime + sHelpTextFadeTime, grid_alpha, 0.f);
-				hud_render_utf8text(help_text, help_text_pos, *big_fontp, LLFontGL::NORMAL, LLFontGL::NO_SHADOW, -0.5f * big_fontp->getWidthF32(help_text), 3.f, help_text_color, mObjectSelection->getSelectType() == SELECT_TYPE_HUD);
+				hud_render_utf8text(help_text, help_text_pos, *big_fontp, LLFontGL::NORMAL, LLFontGL::NO_SHADOW, -0.5f * big_fontp->getWidthF32(help_text), 3.f, help_text_color, false);
 				help_text = LLTrans::getString("manip_hint2");
 				help_text_pos -= LLViewerCamera::getInstance()->getUpAxis() * mSnapRegimeOffset * 0.4f;
-				hud_render_utf8text(help_text, help_text_pos, *big_fontp, LLFontGL::NORMAL, LLFontGL::NO_SHADOW, -0.5f * big_fontp->getWidthF32(help_text), 3.f, help_text_color, mObjectSelection->getSelectType() == SELECT_TYPE_HUD);
+				hud_render_utf8text(help_text, help_text_pos, *big_fontp, LLFontGL::NORMAL, LLFontGL::NO_SHADOW, -0.5f * big_fontp->getWidthF32(help_text), 3.f, help_text_color, false);
 			}
 		}
 	}
diff --git a/indra/newview/llmaniptranslate.cpp b/indra/newview/llmaniptranslate.cpp
index e84207461c..d237e5ef44 100755
--- a/indra/newview/llmaniptranslate.cpp
+++ b/indra/newview/llmaniptranslate.cpp
@@ -112,7 +112,6 @@ LLManipTranslate::LLManipTranslate( LLToolComposite* composite )
 :	LLManip( std::string("Move"), composite ),
 	mLastHoverMouseX(-1),
 	mLastHoverMouseY(-1),
-	mSendUpdateOnMouseUp(FALSE),
 	mMouseOutsideSlop(FALSE),
 	mCopyMadeThisDrag(FALSE),
 	mMouseDownX(-1),
@@ -126,7 +125,6 @@ LLManipTranslate::LLManipTranslate( LLToolComposite* composite )
 	mSnapOffsetMeters(0.f),
 	mSubdivisions(10.f),
 	mInSnapRegime(FALSE),
-	mSnapped(FALSE),
 	mArrowScales(1.f, 1.f, 1.f),
 	mPlaneScales(1.f, 1.f, 1.f),
 	mPlaneManipPositions(1.f, 1.f, 1.f, 1.f)
@@ -1445,10 +1443,10 @@ void LLManipTranslate::renderSnapGuides()
 				std::string help_text = LLTrans::getString("manip_hint1");
 				LLColor4 help_text_color = LLColor4::white;
 				help_text_color.mV[VALPHA] = clamp_rescale(mHelpTextTimer.getElapsedTimeF32(), sHelpTextVisibleTime, sHelpTextVisibleTime + sHelpTextFadeTime, line_alpha, 0.f);
-				hud_render_utf8text(help_text, help_text_pos, *big_fontp, LLFontGL::NORMAL, LLFontGL::NO_SHADOW, -0.5f * big_fontp->getWidthF32(help_text), 3.f, help_text_color, mObjectSelection->getSelectType() == SELECT_TYPE_HUD);
+				hud_render_utf8text(help_text, help_text_pos, *big_fontp, LLFontGL::NORMAL, LLFontGL::NO_SHADOW, -0.5f * big_fontp->getWidthF32(help_text), 3.f, help_text_color, false);
 				help_text = LLTrans::getString("manip_hint2");
 				help_text_pos -= LLViewerCamera::getInstance()->getUpAxis() * mSnapOffsetMeters * 0.2f;
-				hud_render_utf8text(help_text, help_text_pos, *big_fontp, LLFontGL::NORMAL, LLFontGL::NO_SHADOW, -0.5f * big_fontp->getWidthF32(help_text), 3.f, help_text_color, mObjectSelection->getSelectType() == SELECT_TYPE_HUD);
+				hud_render_utf8text(help_text, help_text_pos, *big_fontp, LLFontGL::NORMAL, LLFontGL::NO_SHADOW, -0.5f * big_fontp->getWidthF32(help_text), 3.f, help_text_color, false);
 			}
 		}
 	}
diff --git a/indra/newview/llmaniptranslate.h b/indra/newview/llmaniptranslate.h
index 37567c7bd1..3c37bbd698 100755
--- a/indra/newview/llmaniptranslate.h
+++ b/indra/newview/llmaniptranslate.h
@@ -85,7 +85,6 @@ protected:
 private:
 	S32			mLastHoverMouseX;
 	S32			mLastHoverMouseY;
-	BOOL		mSendUpdateOnMouseUp;
 	BOOL		mMouseOutsideSlop;		// true after mouse goes outside slop region
 	BOOL		mCopyMadeThisDrag;
 	S32			mMouseDownX;
@@ -107,7 +106,6 @@ private:
 	LLVector3	mGridScale;
 	F32			mSubdivisions;
 	BOOL		mInSnapRegime;
-	BOOL		mSnapped;
 	LLVector3	mArrowScales;
 	LLVector3	mPlaneScales;
 	LLVector4	mPlaneManipPositions;
-- 
cgit v1.2.3


From befc0efde94c9b964d6efb32f2cc707f51b986bc Mon Sep 17 00:00:00 2001
From: Ricky Curtice <kf6kjg+hg@gmail.com>
Date: Tue, 4 Mar 2014 20:59:48 -0800
Subject: STORM-1920 / STORM-2013: Fixed uniform scaling highlighting at half
 values.

Re-utilized the technique Richard put in the corner drag code.
---
 indra/newview/llmanipscale.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'indra')

diff --git a/indra/newview/llmanipscale.cpp b/indra/newview/llmanipscale.cpp
index 6c1b25f2b4..6dc03d8382 100755
--- a/indra/newview/llmanipscale.cpp
+++ b/indra/newview/llmanipscale.cpp
@@ -1139,7 +1139,7 @@ void LLManipScale::dragFace( S32 x, S32 y )
 										 drag_dist - max_drag_dist,
 										 drag_dist - min_drag_dist);
 
-			mScaleSnappedValue = drag_dist - relative_snap_dist;
+			mScaleSnappedValue = (drag_dist - relative_snap_dist) / (mScaleSnapUnit1 * 2.f);
 
 			if (llabs(relative_snap_dist) < snap_dist)
 			{
-- 
cgit v1.2.3


From 5067f1eed9f00e93bf287bf0fce69c8212a51ff2 Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Thu, 6 Mar 2014 13:11:48 +0000
Subject: storm-1831 Converting LLSyntaxIdLSL to a singleton. Adding callback
 for signalling arrival of Syntax file from capability.

---
 indra/newview/llsyntaxid.cpp | 15 ++++++++++++++-
 indra/newview/llsyntaxid.h   | 16 +++++++++++-----
 2 files changed, 25 insertions(+), 6 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llsyntaxid.cpp b/indra/newview/llsyntaxid.cpp
index 3d63ab93a0..7deb976c2a 100644
--- a/indra/newview/llsyntaxid.cpp
+++ b/indra/newview/llsyntaxid.cpp
@@ -91,6 +91,8 @@ void fetchKeywordsFileResponder::result(const LLSD& content_ref)
 		LL_ERRS("SyntaxLSL")
 				<< "Syntax file '" << mFileSpec << "' contains invalid LLSD!" << LL_ENDL;
 	}
+
+	LLSyntaxIdLSL::sFileFetchedSignal();
 }
 
 void fetchKeywordsFileResponder::cacheFile(const LLSD& content_ref)
@@ -108,7 +110,6 @@ void fetchKeywordsFileResponder::cacheFile(const LLSD& content_ref)
 			<< "Syntax file received, saving as: '" << mFileSpec << "'" << LL_ENDL;
 }
 
-
 //-----------------------------------------------------------------------------
 // LLSyntaxIdLSL
 //-----------------------------------------------------------------------------
@@ -121,6 +122,7 @@ LLSD LLSyntaxIdLSL::sKeywordsXml;
 bool LLSyntaxIdLSL::sLoaded;
 bool LLSyntaxIdLSL::sLoadFailed;
 bool LLSyntaxIdLSL::sVersionChanged;
+LLSyntaxIdLSL::file_fetched_signal_t	LLSyntaxIdLSL::sFileFetchedSignal;
 
 /**
  * @brief LLSyntaxIdLSL constructor
@@ -251,6 +253,7 @@ void LLSyntaxIdLSL::fetchKeywordsFile()
 			<< LL_ENDL;
 }
 
+
 //-----------------------------------------------------------------------------
 // initialise
 //-----------------------------------------------------------------------------
@@ -413,3 +416,13 @@ void LLSyntaxIdLSL::loadKeywordsIntoLLSD()
 	}
 	sLoadFailed = !sLoaded;
 }
+
+boost::signals2::connection LLSyntaxIdLSL::addFileFetchedCallback(const file_fetched_signal_t::slot_type& cb)
+{
+	return sFileFetchedSignal.connect(cb);
+}
+
+void LLSyntaxIdLSL::removeFileFetchedCallback(boost::signals2::connection callback)
+{
+	sFileFetchedSignal.disconnect(callback);
+}
diff --git a/indra/newview/llsyntaxid.h b/indra/newview/llsyntaxid.h
index 226f1f4941..1b6903f2a2 100644
--- a/indra/newview/llsyntaxid.h
+++ b/indra/newview/llsyntaxid.h
@@ -35,6 +35,7 @@
 #include "llagent.h"
 #include "llenvmanager.h"
 #include "llhttpclient.h"
+#include "llsingleton.h"
 #include "llviewerregion.h"
 
 
@@ -42,14 +43,15 @@
  * @file llsyntaxid.h
  * @brief Tracks the file needed to decorate the current sim's version of LSL.
  */
-class LLSyntaxIdLSL
+class LLSyntaxIdLSL: public LLSingleton<LLSyntaxIdLSL>
 {
 friend class fetchKeywordsFileResponder;
 public:
+	typedef boost::signals2::signal<void()> file_fetched_signal_t;
 
-static const std::string	CAPABILITY_NAME;
-static const std::string	FILENAME_DEFAULT;
-static const std::string	SIMULATOR_FEATURE;
+	static const std::string	CAPABILITY_NAME;
+	static const std::string	FILENAME_DEFAULT;
+	static const std::string	SIMULATOR_FEATURE;
 
 protected:
 	//LLViewerRegion*	region;
@@ -59,6 +61,7 @@ protected:
 	static bool		sLoaded;
 	static bool		sLoadFailed;
 	static bool		sVersionChanged;
+	static file_fetched_signal_t	sFileFetchedSignal;
 
 private:
 	std::string		mCapabilityName;
@@ -73,6 +76,7 @@ private:
 	LLUUID			mSyntaxIdNew;
 
 
+
 public:
 	LLSyntaxIdLSL();
 	LLSyntaxIdLSL(std::string filenameDefault, std::string simFeatureName, std::string capabilityName);
@@ -93,6 +97,9 @@ public:
 	static bool		isSupportedVersion(const LLSD& content);
 	static void		setKeywordsXml(const LLSD& content) { sKeywordsXml = content; }
 
+	boost::signals2::connection		addFileFetchedCallback(const file_fetched_signal_t::slot_type& cb);
+	void							removeFileFetchedCallback(boost::signals2::connection callback);
+
 
 protected:
 	std::string		buildFileNameNew();
@@ -139,5 +146,4 @@ public:
 	 * @param content_ref	The LSL syntax file for the sim.
 	 */
 	void cacheFile(const LLSD& content_ref);
-
 };
-- 
cgit v1.2.3


From 76aa75974f25ffe3837fd5789a00e9dd194903e4 Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Thu, 6 Mar 2014 13:24:52 +0000
Subject: storm-1831 Changes in postBuild to use onFileFetchedCallback

---
 indra/newview/llpreviewscript.cpp | 35 ++++++++++++++++++++++++-----------
 indra/newview/llpreviewscript.h   |  1 +
 2 files changed, 25 insertions(+), 11 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp
index 904b56b436..0ca4718250 100755
--- a/indra/newview/llpreviewscript.cpp
+++ b/indra/newview/llpreviewscript.cpp
@@ -407,27 +407,45 @@ BOOL LLScriptEdCore::postBuild()
 
 	initMenu();
 
-	// Intialise keyword highlighting for the current simulator's version of LSL
+	mSyntaxIdLSL.addFileFetchedCallback(boost::bind(&LLScriptEdCore::onFileFetchedInitialiseKeywords, this));
+
 	onRegionChangeInitialiseKeywords();
+
 	// Set up a callback for region changes, so that highlighting is updated to the new region's version of LSL
-	gAgent.addRegionChangedCallback(boost::bind(&LLScriptEdCore::onRegionChangeInitialiseKeywords, this));
+	//gAgent.addRegionChangedCallback(boost::bind(&LLScriptEdCore::onRegionChangeInitialiseKeywords, this));
 
 	return TRUE;
 }
 
 void LLScriptEdCore::onRegionChangeInitialiseKeywords()
 {
+	// Intialise keyword highlighting for the current simulator's version of LSL
 	LL_DEBUGS("SyntaxLSL") << "Pre Initialise!" << LL_ENDL;
 	mSyntaxIdLSL.initialise();
 	LL_DEBUGS("SyntaxLSL") << "Post Initialise!" << LL_ENDL;
 
-	// Nasty Hack to get started, needs to replaced with a callback or similar.
-	if (mSyntaxIdLSL.fetching())
+	if (mSyntaxIdLSL.isDifferentVersion())
+	{
+		if (mSyntaxIdLSL.isLoaded())
+		{
+			onFileFetchedInitialiseKeywords();
+		}
+		else
+		{
+			LL_INFOS("SyntaxLSL")
+					<< "Hashes are the different, waiting for the syntax file to be retrieved." << LL_ENDL;
+		}
+	}
+	else
 	{
-		LL_WARNS("SyntaxLSL") << "No Response in Time, still fetching!" << LL_ENDL;
+		LL_INFOS("SyntaxLSL")
+				<< "Hashes are the same, no need to update highlighter." << LL_ENDL;
 	}
+}
 
-	if (mSyntaxIdLSL.isDifferentVersion())
+void LLScriptEdCore::onFileFetchedInitialiseKeywords()
+{
+	if (mSyntaxIdLSL.isLoaded())
 	{
 		LL_INFOS("SyntaxLSL")
 				<< "Hashes are different, updating highlighter." << LL_ENDL;
@@ -472,11 +490,6 @@ void LLScriptEdCore::onRegionChangeInitialiseKeywords()
 			}
 		}
 	}
-	else
-	{
-		LL_INFOS("SyntaxLSL")
-				<< "Hashes are the same, no need to update highlighter." << LL_ENDL;
-	}
 }
 
 void LLScriptEdCore::initMenu()
diff --git a/indra/newview/llpreviewscript.h b/indra/newview/llpreviewscript.h
index 2dd5a1b6a7..67a4ca52fa 100755
--- a/indra/newview/llpreviewscript.h
+++ b/indra/newview/llpreviewscript.h
@@ -79,6 +79,7 @@ public:
 	
 	void			initMenu();
 	void			onRegionChangeInitialiseKeywords();
+	void			onFileFetchedInitialiseKeywords();
 
 	virtual void	draw();
 	/*virtual*/	BOOL	postBuild();
-- 
cgit v1.2.3


From c8b0484034d69aa38afba14e6965f69cf8c8da24 Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Thu, 6 Mar 2014 14:04:05 +0000
Subject: Removing duplicate entry from colors.xml

---
 indra/newview/skins/default/colors.xml | 3 ---
 1 file changed, 3 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/skins/default/colors.xml b/indra/newview/skins/default/colors.xml
index dfd7b5ee39..cb1d6aa32b 100755
--- a/indra/newview/skins/default/colors.xml
+++ b/indra/newview/skins/default/colors.xml
@@ -919,9 +919,6 @@
     name="SyntaxLslConstantInteger"
     value=".1 .1 .5 1.0" />
   <color
-    name="ResizebarBody"
-    value="0.208 0.208 0.208 1"/>
- <color
     name="SyntaxLslConstantKey"
     value=".1 .3 .5 1.0" />
   <color
-- 
cgit v1.2.3


From 672cc7049777b57a01a61428864ac6e3d10df321 Mon Sep 17 00:00:00 2001
From: Jonathan Yap <none@none>
Date: Thu, 6 Mar 2014 09:18:20 -0500
Subject: STORM-68 Adjusted Build->Options menu

---
 indra/newview/skins/default/xui/en/menu_viewer.xml | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml
index ff022c7d3a..2058e671e5 100755
--- a/indra/newview/skins/default/xui/en/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/en/menu_viewer.xml
@@ -1077,13 +1077,6 @@
          label="Options"
          name="Options"
          tear_off="true">
-        <menu_item_call
-         label="Set Default Permissions..."
-         name="Set default permissions">
-          <menu_item_call.on_click
-           function="Floater.ToggleOrBringToFront"
-           parameter="perms_default" />
-        </menu_item_call>
 	   <menu_item_check
 	       label="Show Advanced Permissions"
 	       name="DebugPermissions">
@@ -1194,8 +1187,9 @@
                     <menu_item_call.on_enable
                      function="SomethingSelected" />
                 </menu_item_call>
+                <menu_item_separator/>
                 <menu_item_call
-                 label="Grid Options"
+                 label="Grid Options..."
                  name="Grid Options"
                  shortcut="control|shift|B">
                     <menu_item_call.on_click
@@ -1204,6 +1198,13 @@
                     <menu_item_call.on_enable
                      function="Tools.EnableToolNotPie" />
                 </menu_item_call>
+                <menu_item_call
+                 label="Set Default Permissions..."
+                 name="Set default permissions">
+                    <menu_item_call.on_click
+                     function="Floater.ToggleOrBringToFront"
+                     parameter="perms_default" />
+                </menu_item_call>
         </menu>
         <menu
          create_jump_keys="true"
-- 
cgit v1.2.3


From a2c084849f6c977c4c1c3151e0762c0137d34d0d Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Thu, 6 Mar 2014 16:11:59 +0000
Subject: storm-1831: Fixing constants not getting highlighted. Fixing ratation
 constant treated as string. Adding logging of unrecognised token groups.

---
 indra/llui/llkeywords.cpp | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

(limited to 'indra')

diff --git a/indra/llui/llkeywords.cpp b/indra/llui/llkeywords.cpp
index c5e8f76a73..6a349f3916 100755
--- a/indra/llui/llkeywords.cpp
+++ b/indra/llui/llkeywords.cpp
@@ -197,7 +197,7 @@ LLColor4 LLKeywords::getColorGroup(const std::string key_in)
 	{
 		ColourGroup = "SyntaxLslConstantKey";
 	}
-	else if (key_in == "constants-string")
+	else if (key_in == "constants-rotation")
 	{
 		ColourGroup = "SyntaxLslConstantRotation";
 	}
@@ -249,6 +249,10 @@ LLColor4 LLKeywords::getColorGroup(const std::string key_in)
 	{
 		ColourGroup = "SyntaxLslComment2Sided";	
 	}
+	else
+	{
+		LL_WARNS("SyntaxLSL") << "Color key '" << key_in << "' not recognised!" << LL_ENDL;
+	}
 
 	return LLUIColorTable::instance().getColor(ColourGroup);
 }
@@ -334,7 +338,6 @@ void LLKeywords::processTokensGroup(LLSD& Tokens, const std::string Group)
 		{
 			if (outerIt->second.isMap())
 			{
-				Color = ColorGroup;
 				mAttributes.clear();
 				LLSD arguments = LLSD ();
 				LLSD::map_iterator innerIt = outerIt->second.beginMap();
@@ -360,7 +363,7 @@ void LLKeywords::processTokensGroup(LLSD& Tokens, const std::string Group)
 				std::string tooltip = "";
 				if (token_type == LLKeywordToken::TT_CONSTANT)
 				{
-					Color = getColorGroup(Group + "-" + getAttribute("type"));
+					ColorGroup = getColorGroup(Group + "-" + getAttribute("type"));
 					tooltip = "Type: " + getAttribute("type") + ", Value: " + getAttribute("value");
 				}
 				else if (token_type == LLKeywordToken::TT_EVENT)
-- 
cgit v1.2.3


From 2d6314f93fb5e7bf5f0494d8f9e746a647daa52b Mon Sep 17 00:00:00 2001
From: Jonathan Yap <none@none>
Date: Fri, 7 Mar 2014 12:50:08 -0500
Subject: STORM-2018 Group invite fails to let you join groups when groups
 maxed even when you leave group

---
 indra/newview/llviewermessage.cpp | 55 ++++++++++++++++++++++++++++++++-------
 1 file changed, 46 insertions(+), 9 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp
index 267aa9532c..9d80e0c04c 100755
--- a/indra/newview/llviewermessage.cpp
+++ b/indra/newview/llviewermessage.cpp
@@ -644,25 +644,58 @@ void send_sound_trigger(const LLUUID& sound_id, F32 gain)
 	gAgent.sendMessage();
 }
 
+static LLSD sSavedGroupInvite;
+static LLSD sSavedResponse;
+
 bool join_group_response(const LLSD& notification, const LLSD& response)
 {
-	S32 option = LLNotificationsUtil::getSelectedOption(notification, response);
+//	A bit of variable saving and restoring is used to deal with the case where your group list is full and you
+//	receive an invitation to another group.  The data from that invitation is stored in the sSaved
+//	variables.  If you then drop a group and click on the Join button the stored data is restored and used
+//	to join the group.
+	LLSD notification_adjusted = notification;
+	LLSD response_adjusted = response;
+
+	std::string action = notification["name"];
+
+//	Storing all the information by group id allows for the rare case of being at your maximum
+//	group count and receiving more than one invitation.
+	std::string id = notification_adjusted["payload"]["group_id"].asString();
+
+	if ("JoinGroup" == action || "JoinGroupCanAfford" == action)
+	{
+		sSavedGroupInvite[id] = notification;
+		sSavedResponse[id] = response;
+	}
+
+	if ("JoinedTooManyGroupsMember" == action)
+	{
+		S32 opt = LLNotificationsUtil::getSelectedOption(notification, response);
+		if (0 == opt) // Join button pressed
+		{
+			notification_adjusted = sSavedGroupInvite[id];
+			response_adjusted = sSavedResponse[id];
+		}
+	}
+
+	S32 option = LLNotificationsUtil::getSelectedOption(notification_adjusted, response_adjusted);
 	bool accept_invite = false;
 
-	LLUUID group_id = notification["payload"]["group_id"].asUUID();
-	LLUUID transaction_id = notification["payload"]["transaction_id"].asUUID();
-	std::string name = notification["payload"]["name"].asString();
-	std::string message = notification["payload"]["message"].asString();
-	S32 fee = notification["payload"]["fee"].asInteger();
+	LLUUID group_id = notification_adjusted["payload"]["group_id"].asUUID();
+	LLUUID transaction_id = notification_adjusted["payload"]["transaction_id"].asUUID();
+	std::string name = notification_adjusted["payload"]["name"].asString();
+	std::string message = notification_adjusted["payload"]["message"].asString();
+	S32 fee = notification_adjusted["payload"]["fee"].asInteger();
 
 	if (option == 2 && !group_id.isNull())
 	{
 		LLGroupActions::show(group_id);
 		LLSD args;
 		args["MESSAGE"] = message;
-		LLNotificationsUtil::add("JoinGroup", args, notification["payload"]);
+		LLNotificationsUtil::add("JoinGroup", args, notification_adjusted["payload"]);
 		return false;
 	}
+
 	if(option == 0 && !group_id.isNull())
 	{
 		// check for promotion or demotion.
@@ -677,7 +710,8 @@ bool join_group_response(const LLSD& notification, const LLSD& response)
 		{
 			LLSD args;
 			args["NAME"] = name;
-			LLNotificationsUtil::add("JoinedTooManyGroupsMember", args, notification["payload"]);
+			LLNotificationsUtil::add("JoinedTooManyGroupsMember", args, notification_adjusted["payload"]);
+			return false;
 		}
 	}
 
@@ -691,7 +725,7 @@ bool join_group_response(const LLSD& notification, const LLSD& response)
 			args["COST"] = llformat("%d", fee);
 			// Set the fee for next time to 0, so that we don't keep
 			// asking about a fee.
-			LLSD next_payload = notification["payload"];
+			LLSD next_payload = notification_adjusted["payload"];
 			next_payload["fee"] = 0;
 			LLNotificationsUtil::add("JoinGroupCanAfford",
 									args,
@@ -717,6 +751,9 @@ bool join_group_response(const LLSD& notification, const LLSD& response)
 						transaction_id);
 	}
 
+	sSavedGroupInvite[id] = LLSD::emptyMap();
+	sSavedResponse[id] = LLSD::emptyMap();
+
 	return false;
 }
 
-- 
cgit v1.2.3


From 147c97dd0306f3df7e3f99b35c3098b56169a5dc Mon Sep 17 00:00:00 2001
From: Jonathan Yap <none@none>
Date: Fri, 7 Mar 2014 15:08:58 -0500
Subject: STORM-2018 Added "else" per code review request.

---
 indra/newview/llviewermessage.cpp | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp
index 9d80e0c04c..90551d641b 100755
--- a/indra/newview/llviewermessage.cpp
+++ b/indra/newview/llviewermessage.cpp
@@ -667,8 +667,7 @@ bool join_group_response(const LLSD& notification, const LLSD& response)
 		sSavedGroupInvite[id] = notification;
 		sSavedResponse[id] = response;
 	}
-
-	if ("JoinedTooManyGroupsMember" == action)
+	else if ("JoinedTooManyGroupsMember" == action)
 	{
 		S32 opt = LLNotificationsUtil::getSelectedOption(notification, response);
 		if (0 == opt) // Join button pressed
-- 
cgit v1.2.3


From 06bdcef531c79db7f6901e2c5f5f63b2f75ad4e5 Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Sun, 9 Mar 2014 04:55:46 +0000
Subject: storm-1831 Fixing identificaton of label for highlighting.

---
 indra/llui/llkeywords.cpp         |  2 +-
 indra/newview/llpreviewscript.cpp | 72 ++++++++++++++++++++++++---------------
 indra/newview/llpreviewscript.h   | 18 +++++++---
 3 files changed, 60 insertions(+), 32 deletions(-)

(limited to 'indra')

diff --git a/indra/llui/llkeywords.cpp b/indra/llui/llkeywords.cpp
index 6a349f3916..a251c2e4f5 100755
--- a/indra/llui/llkeywords.cpp
+++ b/indra/llui/llkeywords.cpp
@@ -209,7 +209,7 @@ LLColor4 LLKeywords::getColorGroup(const std::string key_in)
 	{
 		ColourGroup = "SyntaxLslConstantVector";
 	}
-	else if (key_in == "controls")
+	else if (key_in == "misc-flow-label")
 	{
 		ColourGroup = "SyntaxLslControlFlow";
 	}
diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp
index 0ca4718250..4c6f4fd3ba 100755
--- a/indra/newview/llpreviewscript.cpp
+++ b/indra/newview/llpreviewscript.cpp
@@ -407,52 +407,70 @@ BOOL LLScriptEdCore::postBuild()
 
 	initMenu();
 
-	mSyntaxIdLSL.addFileFetchedCallback(boost::bind(&LLScriptEdCore::onFileFetchedInitialiseKeywords, this));
+	mSyntaxIdLSL.addFileFetchedCallback(boost::bind(&LLScriptEdCore::processKeywords, this));
+
+	// Intialise keyword highlighting for the current simulator's version of LSL
+	mSyntaxIdLSL.initialise();
+
+	if (mSyntaxIdLSL.isDifferentVersion())
+	{
+		processLoaded();
+	}
+	else
+	{
+		LL_INFOS("SyntaxLSL")
+				<< "Hashes are the same, no need to update highlighter." << LL_ENDL;
+	}
 
-	onRegionChangeInitialiseKeywords();
 
-	// Set up a callback for region changes, so that highlighting is updated to the new region's version of LSL
-	//gAgent.addRegionChangedCallback(boost::bind(&LLScriptEdCore::onRegionChangeInitialiseKeywords, this));
+	// Set up a callback for region changes
+	mRegionChangedCallback = gAgent.addRegionChangedCallback(boost::bind(&LLScriptEdCore::updateKeywords, this));
 
 	return TRUE;
 }
 
-void LLScriptEdCore::onRegionChangeInitialiseKeywords()
+void LLScriptEdCore::updateKeywords()
 {
-	// Intialise keyword highlighting for the current simulator's version of LSL
-	LL_DEBUGS("SyntaxLSL") << "Pre Initialise!" << LL_ENDL;
-	mSyntaxIdLSL.initialise();
-	LL_DEBUGS("SyntaxLSL") << "Post Initialise!" << LL_ENDL;
+	if (mLive)
+	{
+		clearHighlights();
+		gAgent.removeRegionChangedCallback(mRegionChangedCallback);
+	}
+	else
+	{
+		processLoaded();
+	}
+}
 
-	if (mSyntaxIdLSL.isDifferentVersion())
+void LLScriptEdCore::processLoaded()
+{
+	mSyntaxIdLSL.initialise();
+	if (mSyntaxIdLSL.isLoaded())
 	{
-		if (mSyntaxIdLSL.isLoaded())
-		{
-			onFileFetchedInitialiseKeywords();
-		}
-		else
-		{
-			LL_INFOS("SyntaxLSL")
-					<< "Hashes are the different, waiting for the syntax file to be retrieved." << LL_ENDL;
-		}
+		processKeywords();
 	}
 	else
 	{
 		LL_INFOS("SyntaxLSL")
-				<< "Hashes are the same, no need to update highlighter." << LL_ENDL;
+				<< "Hashes are different, waiting for the syntax file to be retrieved." << LL_ENDL;
 	}
 }
 
-void LLScriptEdCore::onFileFetchedInitialiseKeywords()
+void LLScriptEdCore::clearHighlights()
+{
+	mEditor->mKeywords.clearLoaded();
+	mEditor->clearSegments();
+	mEditor->mKeywords.clear();
+}
+
+void LLScriptEdCore::processKeywords()
 {
 	if (mSyntaxIdLSL.isLoaded())
 	{
 		LL_INFOS("SyntaxLSL")
 				<< "Hashes are different, updating highlighter." << LL_ENDL;
 
-		mEditor->mKeywords.clearLoaded();
-		mEditor->clearSegments();
-		mEditor->mKeywords.clear();
+		clearHighlights();
 
 		if (mSyntaxIdLSL.isLoaded())
 		{
@@ -1227,8 +1245,8 @@ bool LLScriptEdCore::enableLoadFromFileMenu(void* userdata)
 /// LLScriptEdContainer
 /// ---------------------------------------------------------------------------
 
-LLScriptEdContainer::LLScriptEdContainer(const LLSD& key)
-:	LLPreview(key)
+LLScriptEdContainer::LLScriptEdContainer(const LLSD& key) :
+	LLPreview(key)
 ,	mScriptEd(NULL)
 {
 }
@@ -1750,7 +1768,7 @@ void* LLLiveLSLEditor::createScriptEdPanel(void* userdata)
 								   &LLLiveLSLEditor::onSearchReplace,
 								   self,
 								   0);
-
+	self->mScriptEd->mLive = true;
 	return self->mScriptEd;
 }
 
diff --git a/indra/newview/llpreviewscript.h b/indra/newview/llpreviewscript.h
index 67a4ca52fa..0841c8188b 100755
--- a/indra/newview/llpreviewscript.h
+++ b/indra/newview/llpreviewscript.h
@@ -77,9 +77,12 @@ protected:
 public:
 	~LLScriptEdCore();
 	
+	void			clearHighlights();
+	void			initialiseKeywords();
 	void			initMenu();
-	void			onRegionChangeInitialiseKeywords();
-	void			onFileFetchedInitialiseKeywords();
+	void			processKeywords();
+	void			processLoaded();
+	void			updateKeywords();
 
 	virtual void	draw();
 	/*virtual*/	BOOL	postBuild();
@@ -133,6 +136,8 @@ protected:
 	void addHelpItemToHistory(const std::string& help_string);
 	static void onErrorList(LLUICtrl*, void* user_data);
 
+	bool			mLive;
+
 private:
 	std::string		mSampleText;
 	LLTextEditor*	mEditor;
@@ -155,6 +160,10 @@ private:
 	LLSyntaxIdLSL	mSyntaxIdLSL;
 
 	LLScriptEdContainer* mContainer; // parent view
+
+public:
+	boost::signals2::connection mRegionChangedCallback;
+
 };
 
 class LLScriptEdContainer : public LLPreview
@@ -163,6 +172,7 @@ class LLScriptEdContainer : public LLPreview
 
 public:
 	LLScriptEdContainer(const LLSD& key);
+	LLScriptEdContainer(const LLSD& key, const bool live);
 
 protected:
 	std::string		getTmpFileName();
@@ -172,7 +182,7 @@ protected:
 	LLScriptEdCore*		mScriptEd;
 };
 
-// Used to view and edit a LSL from your inventory.
+// Used to view and edit an LSL script from your inventory.
 class LLPreviewLSL : public LLScriptEdContainer
 {
 public:
@@ -217,7 +227,7 @@ protected:
 };
 
 
-// Used to view and edit an LSL that is attached to an object.
+// Used to view and edit an LSL script that is attached to an object.
 class LLLiveLSLEditor : public LLScriptEdContainer
 {
 	friend class LLLiveLSLFile;
-- 
cgit v1.2.3


From 65a47d388c587199d28176fa8ca87260ede47c1d Mon Sep 17 00:00:00 2001
From: Tank_Master <tank.master@phoenixviewer.com>
Date: Mon, 10 Mar 2014 12:13:48 -0700
Subject: Improve Windows 32bit installer logic for blocking old OSs, add XP
 x64 detection as well

---
 .../installers/windows/installer_template.nsi      | 40 ++++++++++++++++------
 1 file changed, 29 insertions(+), 11 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/installers/windows/installer_template.nsi b/indra/newview/installers/windows/installer_template.nsi
index fefec31df3..77a23ac26c 100755
--- a/indra/newview/installers/windows/installer_template.nsi
+++ b/indra/newview/installers/windows/installer_template.nsi
@@ -116,7 +116,8 @@ Var DO_UNINSTALL_V2     ; If non-null, path to a previous Viewer 2 installation
 !include "FileFunc.nsh"     ; For GetParameters, GetOptions
 !insertmacro GetParameters
 !insertmacro GetOptions
-!include WinVer.nsh			; for OS and SP detection
+!include WinVer.nsh			; For OS and SP detection
+!include x64.nsh			; For 64bit OS detection
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;; After install completes, launch app
@@ -154,16 +155,33 @@ Function dirPre
 FunctionEnd    
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-; Make sure we are not on a verion of windows older than XP SP2
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-Function CheckWindowsVersion
-  ${IfNot} ${AtLeastWin2000}
-  ${OrIf} ${IsWinXP}
-  ${AndIfNot} ${AtLeastServicePack} 1
-  ${OrIf} ${IsWin2003}
-  ${AndIfNot} ${AtLeastServicePack} 1
-    MessageBox MB_OK $(CheckWindowsVersionMB)
+; Make sure this computer meets the minimum system requirements.
+; Currently: Windows 32bit XP SP3, 64bit XP SP2 and Server 2003 SP2
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+Function CheckWindowsVersion
+  ${If} ${AtMostWin2000}
+    MessageBox MB_OK $(CheckWindowsVersionMB)
+    Quit
+  ${EndIf}
+
+  ${If} ${IsWinXP}
+  ${AndIfNot} ${RunningX64}
+  ${AndIfNot} ${IsServicePack} 3
+    MessageBox MB_OK $(CheckWindowsVersionMB)
+    Quit
+  ${EndIf}
+
+  ${If} ${IsWinXP}
+  ${AndIf} ${RunningX64}
+  ${AndIfNot} ${IsServicePack} 2
+    MessageBox MB_OK $(CheckWindowsVersionMB)
     Quit
+  ${EndIf}
+
+  ${If} ${IsWin2003}
+  ${AndIfNot} ${IsServicePack} 2
+    MessageBox MB_OK $(CheckWindowsVersionMB)
+    Quit
   ${EndIf}
 FunctionEnd
 
@@ -784,7 +802,7 @@ SectionEnd 				; end of uninstall section
 ;;  entry to the language ID selector below
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 Function .onInit
-Call CheckWindowsVersion		; Don't install if on Windows XP SP1 or older (do to XP x64 only having SP2 and no SP3)
+Call CheckWindowsVersion		; Don't install On unsupported systems
     Push $0
     ${GetParameters} $COMMANDLINE              ; get our command line
 
-- 
cgit v1.2.3


From 20d486b52fb8ecefc03eb63a93e4447513d704d2 Mon Sep 17 00:00:00 2001
From: Tank_Master <tank.master@phoenixviewer.com>
Date: Mon, 10 Mar 2014 12:31:48 -0700
Subject: correct line ending to previous comit

---
 .../installers/windows/installer_template.nsi      | 44 +++++++++++-----------
 1 file changed, 22 insertions(+), 22 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/installers/windows/installer_template.nsi b/indra/newview/installers/windows/installer_template.nsi
index 77a23ac26c..85fa160bb9 100755
--- a/indra/newview/installers/windows/installer_template.nsi
+++ b/indra/newview/installers/windows/installer_template.nsi
@@ -116,7 +116,7 @@ Var DO_UNINSTALL_V2     ; If non-null, path to a previous Viewer 2 installation
 !include "FileFunc.nsh"     ; For GetParameters, GetOptions
 !insertmacro GetParameters
 !insertmacro GetOptions
-!include WinVer.nsh			; For OS and SP detection
+!include WinVer.nsh			; For OS and SP detection
 !include x64.nsh			; For 64bit OS detection
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -155,33 +155,33 @@ Function dirPre
 FunctionEnd    
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-; Make sure this computer meets the minimum system requirements.
-; Currently: Windows 32bit XP SP3, 64bit XP SP2 and Server 2003 SP2
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-Function CheckWindowsVersion
+; Make sure this computer meets the minimum system requirements.
+; Currently: Windows 32bit XP SP3, 64bit XP SP2 and Server 2003 SP2
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+Function CheckWindowsVersion
   ${If} ${AtMostWin2000}
-    MessageBox MB_OK $(CheckWindowsVersionMB)
+    MessageBox MB_OK $(CheckWindowsVersionMB)
     Quit
-  ${EndIf}
-
-  ${If} ${IsWinXP}
-  ${AndIfNot} ${RunningX64}
+  ${EndIf}
+
+  ${If} ${IsWinXP}
+  ${AndIfNot} ${RunningX64}
   ${AndIfNot} ${IsServicePack} 3
-    MessageBox MB_OK $(CheckWindowsVersionMB)
+    MessageBox MB_OK $(CheckWindowsVersionMB)
     Quit
-  ${EndIf}
-
-  ${If} ${IsWinXP}
-  ${AndIf} ${RunningX64}
+  ${EndIf}
+
+  ${If} ${IsWinXP}
+  ${AndIf} ${RunningX64}
+  ${AndIfNot} ${IsServicePack} 2
+    MessageBox MB_OK $(CheckWindowsVersionMB)
+    Quit
+  ${EndIf}
+
+  ${If} ${IsWin2003}
   ${AndIfNot} ${IsServicePack} 2
-    MessageBox MB_OK $(CheckWindowsVersionMB)
+    MessageBox MB_OK $(CheckWindowsVersionMB)
     Quit
-  ${EndIf}
-
-  ${If} ${IsWin2003}
-  ${AndIfNot} ${IsServicePack} 2
-    MessageBox MB_OK $(CheckWindowsVersionMB)
-    Quit
   ${EndIf}
 FunctionEnd
 
-- 
cgit v1.2.3


From 2b4d3fff706d098076bb6c0a7dce2ca35b83300f Mon Sep 17 00:00:00 2001
From: Oz Linden <oz@lindenlab.com>
Date: Mon, 10 Mar 2014 15:46:49 -0400
Subject: back out STORM-2011 due to conflict

---
 indra/newview/llpanelgroupgeneral.cpp | 35 ++++++++++-------------------------
 indra/newview/llpanelgroupgeneral.h   |  5 ++---
 indra/newview/llpanelgrouproles.cpp   | 35 ++++++++++-------------------------
 indra/newview/llpanelgrouproles.h     |  5 ++---
 4 files changed, 24 insertions(+), 56 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llpanelgroupgeneral.cpp b/indra/newview/llpanelgroupgeneral.cpp
index 6ba7d4f39d..0cd93b330a 100755
--- a/indra/newview/llpanelgroupgeneral.cpp
+++ b/indra/newview/llpanelgroupgeneral.cpp
@@ -79,21 +79,18 @@ LLPanelGroupGeneral::LLPanelGroupGeneral()
 	mCtrlReceiveNotices(NULL),
 	mCtrlListGroup(NULL),
 	mActiveTitleLabel(NULL),
-	mComboActiveTitle(NULL)
+	mComboActiveTitle(NULL),
+	mAvatarNameCacheConnection()
 {
 
 }
 
 LLPanelGroupGeneral::~LLPanelGroupGeneral()
 {
-	for (avatar_name_cache_connection_map_t::iterator it = mAvatarNameCacheConnections.begin(); it != mAvatarNameCacheConnections.end(); ++it)
+	if (mAvatarNameCacheConnection.connected())
 	{
-		if (it->second.connected())
-		{
-			it->second.disconnect();
-		}
+		mAvatarNameCacheConnection.disconnect();
 	}
-	mAvatarNameCacheConnections.clear();
 }
 
 BOOL LLPanelGroupGeneral::postBuild()
@@ -735,16 +732,12 @@ void LLPanelGroupGeneral::updateMembers()
 		else
 		{
 			// If name is not cached, onNameCache() should be called when it is cached and add this member to list.
-			avatar_name_cache_connection_map_t::iterator it = mAvatarNameCacheConnections.find(mMemberProgress->first);
-			if (it != mAvatarNameCacheConnections.end())
+			// *TODO : Use a callback per member, not for the panel group.
+			if (mAvatarNameCacheConnection.connected())
 			{
-				if (it->second.connected())
-				{
-					it->second.disconnect();
-				}
-				mAvatarNameCacheConnections.erase(it);
+				mAvatarNameCacheConnection.disconnect();
 			}
-			mAvatarNameCacheConnections[mMemberProgress->first] = LLAvatarNameCache::get(mMemberProgress->first, boost::bind(&LLPanelGroupGeneral::onNameCache, this, gdatap->getMemberVersion(), member, _2, _1));
+			mAvatarNameCacheConnection = LLAvatarNameCache::get(mMemberProgress->first, boost::bind(&LLPanelGroupGeneral::onNameCache, this, gdatap->getMemberVersion(), member, _2));
 		}
 	}
 
@@ -782,17 +775,9 @@ void LLPanelGroupGeneral::addMember(LLGroupMemberData* member)
 	}
 }
 
-void LLPanelGroupGeneral::onNameCache(const LLUUID& update_id, LLGroupMemberData* member, const LLAvatarName& av_name, const LLUUID& av_id)
+void LLPanelGroupGeneral::onNameCache(const LLUUID& update_id, LLGroupMemberData* member, const LLAvatarName& av_name)
 {
-	avatar_name_cache_connection_map_t::iterator it = mAvatarNameCacheConnections.find(av_id);
-	if (it != mAvatarNameCacheConnections.end())
-	{
-		if (it->second.connected())
-		{
-			it->second.disconnect();
-		}
-		mAvatarNameCacheConnections.erase(it);
-	}
+	mAvatarNameCacheConnection.disconnect();
 
 	LLGroupMgrGroupData* gdatap = LLGroupMgr::getInstance()->getGroupData(mGroupID);
 
diff --git a/indra/newview/llpanelgroupgeneral.h b/indra/newview/llpanelgroupgeneral.h
index a019715bfa..b7f4a01139 100755
--- a/indra/newview/llpanelgroupgeneral.h
+++ b/indra/newview/llpanelgroupgeneral.h
@@ -63,7 +63,7 @@ public:
 
 	virtual void setupCtrls	(LLPanel* parent);
 
-	void onNameCache(const LLUUID& update_id, LLGroupMemberData* member, const LLAvatarName& av_name, const LLUUID& av_id);
+	void onNameCache(const LLUUID& update_id, LLGroupMemberData* member, const LLAvatarName& av_name);
 private:
 	void	reset();
 
@@ -111,8 +111,7 @@ private:
 	LLComboBox		*mComboMature;
 
 	LLGroupMgrGroupData::member_list_t::iterator mMemberProgress;
-	typedef std::map<LLUUID, boost::signals2::connection> avatar_name_cache_connection_map_t;
-	avatar_name_cache_connection_map_t mAvatarNameCacheConnections;
+	boost::signals2::connection mAvatarNameCacheConnection;
 };
 
 #endif
diff --git a/indra/newview/llpanelgrouproles.cpp b/indra/newview/llpanelgrouproles.cpp
index 94998f3c52..fdcd1f5ebb 100755
--- a/indra/newview/llpanelgrouproles.cpp
+++ b/indra/newview/llpanelgrouproles.cpp
@@ -743,20 +743,17 @@ LLPanelGroupMembersSubTab::LLPanelGroupMembersSubTab()
 	mChanged(FALSE),
 	mPendingMemberUpdate(FALSE),
 	mHasMatch(FALSE),
-	mNumOwnerAdditions(0)
+	mNumOwnerAdditions(0),
+	mAvatarNameCacheConnection()
 {
 }
 
 LLPanelGroupMembersSubTab::~LLPanelGroupMembersSubTab()
 {
-	for (avatar_name_cache_connection_map_t::iterator it = mAvatarNameCacheConnections.begin(); it != mAvatarNameCacheConnections.end(); ++it)
+	if (mAvatarNameCacheConnection.connected())
 	{
-		if (it->second.connected())
-		{
-			it->second.disconnect();
-		}
+		mAvatarNameCacheConnection.disconnect();
 	}
-	mAvatarNameCacheConnections.clear();
 	if (mMembersList)
 	{
 		gSavedSettings.setString("GroupMembersSortOrder", mMembersList->getSortColumnName());
@@ -1644,17 +1641,9 @@ void LLPanelGroupMembersSubTab::addMemberToList(LLGroupMemberData* data)
 	mHasMatch = TRUE;
 }
 
-void LLPanelGroupMembersSubTab::onNameCache(const LLUUID& update_id, LLGroupMemberData* member, const LLAvatarName& av_name, const LLUUID& av_id)
+void LLPanelGroupMembersSubTab::onNameCache(const LLUUID& update_id, LLGroupMemberData* member, const LLAvatarName& av_name)
 {
-	avatar_name_cache_connection_map_t::iterator it = mAvatarNameCacheConnections.find(av_id);
-	if (it != mAvatarNameCacheConnections.end())
-	{
-		if (it->second.connected())
-		{
-			it->second.disconnect();
-		}
-		mAvatarNameCacheConnections.erase(it);
-	}
+	mAvatarNameCacheConnection.disconnect();
 
 	LLGroupMgrGroupData* gdatap = LLGroupMgr::getInstance()->getGroupData(mGroupID);
 	if (!gdatap
@@ -1727,16 +1716,12 @@ void LLPanelGroupMembersSubTab::updateMembers()
 		else
 		{
 			// If name is not cached, onNameCache() should be called when it is cached and add this member to list.
-			avatar_name_cache_connection_map_t::iterator it = mAvatarNameCacheConnections.find(mMemberProgress->first);
-			if (it != mAvatarNameCacheConnections.end())
+			// *TODO : Add one callback per fetched avatar name
+			if (mAvatarNameCacheConnection.connected())
 			{
-				if (it->second.connected())
-				{
-					it->second.disconnect();
-				}
-				mAvatarNameCacheConnections.erase(it);
+				mAvatarNameCacheConnection.disconnect();
 			}
-			mAvatarNameCacheConnections[mMemberProgress->first] = LLAvatarNameCache::get(mMemberProgress->first, boost::bind(&LLPanelGroupMembersSubTab::onNameCache, this, gdatap->getMemberVersion(), mMemberProgress->second, _2, _1));
+			mAvatarNameCacheConnection = LLAvatarNameCache::get(mMemberProgress->first, boost::bind(&LLPanelGroupMembersSubTab::onNameCache, this, gdatap->getMemberVersion(), mMemberProgress->second, _2));
 		}
 	}
 
diff --git a/indra/newview/llpanelgrouproles.h b/indra/newview/llpanelgrouproles.h
index baa2d40c7e..0cf272f3ee 100755
--- a/indra/newview/llpanelgrouproles.h
+++ b/indra/newview/llpanelgrouproles.h
@@ -189,7 +189,7 @@ public:
 	virtual void setGroupID(const LLUUID& id);
 
 	void addMemberToList(LLGroupMemberData* data);
-	void onNameCache(const LLUUID& update_id, LLGroupMemberData* member, const LLAvatarName& av_name, const LLUUID& av_id);
+	void onNameCache(const LLUUID& update_id, LLGroupMemberData* member, const LLAvatarName& av_name);
 
 protected:
 	typedef std::map<LLUUID, LLRoleMemberChangeType> role_change_data_map_t;
@@ -215,8 +215,7 @@ protected:
 	U32 mNumOwnerAdditions;
 
 	LLGroupMgrGroupData::member_list_t::iterator mMemberProgress;
-	typedef std::map<LLUUID, boost::signals2::connection> avatar_name_cache_connection_map_t;
-	avatar_name_cache_connection_map_t mAvatarNameCacheConnections;
+	boost::signals2::connection mAvatarNameCacheConnection;
 };
 
 class LLPanelGroupRolesSubTab : public LLPanelGroupSubTab
-- 
cgit v1.2.3


From 529edff468dff629455463d09c7db92f7dcd1a40 Mon Sep 17 00:00:00 2001
From: Oz Linden <oz@lindenlab.com>
Date: Tue, 11 Mar 2014 14:03:38 -0400
Subject: restore the relevant fixes for STORM-2011

---
 indra/newview/llpanelgrouproles.cpp | 35 +++++++++++++++++++++++++----------
 indra/newview/llpanelgrouproles.h   |  5 +++--
 2 files changed, 28 insertions(+), 12 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llpanelgrouproles.cpp b/indra/newview/llpanelgrouproles.cpp
index c30c932c41..4cb6506b61 100755
--- a/indra/newview/llpanelgrouproles.cpp
+++ b/indra/newview/llpanelgrouproles.cpp
@@ -743,17 +743,20 @@ LLPanelGroupMembersSubTab::LLPanelGroupMembersSubTab()
 	mChanged(FALSE),
 	mPendingMemberUpdate(FALSE),
 	mHasMatch(FALSE),
-	mNumOwnerAdditions(0),
-	mAvatarNameCacheConnection()
+	mNumOwnerAdditions(0)
 {
 }
 
 LLPanelGroupMembersSubTab::~LLPanelGroupMembersSubTab()
 {
-	if (mAvatarNameCacheConnection.connected())
+	for (avatar_name_cache_connection_map_t::iterator it = mAvatarNameCacheConnections.begin(); it != mAvatarNameCacheConnections.end(); ++it)
 	{
-		mAvatarNameCacheConnection.disconnect();
+		if (it->second.connected())
+		{
+			it->second.disconnect();
+		}
 	}
+	mAvatarNameCacheConnections.clear();
 	if (mMembersList)
 	{
 		gSavedSettings.setString("GroupMembersSortOrder", mMembersList->getSortColumnName());
@@ -1644,9 +1647,17 @@ void LLPanelGroupMembersSubTab::addMemberToList(LLGroupMemberData* data)
 	mHasMatch = TRUE;
 }
 
-void LLPanelGroupMembersSubTab::onNameCache(const LLUUID& update_id, LLGroupMemberData* member, const LLAvatarName& av_name)
+void LLPanelGroupMembersSubTab::onNameCache(const LLUUID& update_id, LLGroupMemberData* member, const LLAvatarName& av_name, const LLUUID& av_id)
 {
-	mAvatarNameCacheConnection.disconnect();
+	avatar_name_cache_connection_map_t::iterator it = mAvatarNameCacheConnections.find(av_id);
+	if (it != mAvatarNameCacheConnections.end())
+	{
+		if (it->second.connected())
+		{
+			it->second.disconnect();
+		}
+		mAvatarNameCacheConnections.erase(it);
+	}
 
 	LLGroupMgrGroupData* gdatap = LLGroupMgr::getInstance()->getGroupData(mGroupID);
 	if (!gdatap
@@ -1719,12 +1730,16 @@ void LLPanelGroupMembersSubTab::updateMembers()
 		else
 		{
 			// If name is not cached, onNameCache() should be called when it is cached and add this member to list.
-			// *TODO : Add one callback per fetched avatar name
-			if (mAvatarNameCacheConnection.connected())
+			avatar_name_cache_connection_map_t::iterator it = mAvatarNameCacheConnections.find(mMemberProgress->first);
+			if (it != mAvatarNameCacheConnections.end())
 			{
-				mAvatarNameCacheConnection.disconnect();
+				if (it->second.connected())
+				{
+					it->second.disconnect();
+				}
+				mAvatarNameCacheConnections.erase(it);
 			}
-			mAvatarNameCacheConnection = LLAvatarNameCache::get(mMemberProgress->first, boost::bind(&LLPanelGroupMembersSubTab::onNameCache, this, gdatap->getMemberVersion(), mMemberProgress->second, _2));
+			mAvatarNameCacheConnections[mMemberProgress->first] = LLAvatarNameCache::get(mMemberProgress->first, boost::bind(&LLPanelGroupMembersSubTab::onNameCache, this, gdatap->getMemberVersion(), mMemberProgress->second, _2, _1));
 		}
 	}
 
diff --git a/indra/newview/llpanelgrouproles.h b/indra/newview/llpanelgrouproles.h
index 0cf272f3ee..baa2d40c7e 100755
--- a/indra/newview/llpanelgrouproles.h
+++ b/indra/newview/llpanelgrouproles.h
@@ -189,7 +189,7 @@ public:
 	virtual void setGroupID(const LLUUID& id);
 
 	void addMemberToList(LLGroupMemberData* data);
-	void onNameCache(const LLUUID& update_id, LLGroupMemberData* member, const LLAvatarName& av_name);
+	void onNameCache(const LLUUID& update_id, LLGroupMemberData* member, const LLAvatarName& av_name, const LLUUID& av_id);
 
 protected:
 	typedef std::map<LLUUID, LLRoleMemberChangeType> role_change_data_map_t;
@@ -215,7 +215,8 @@ protected:
 	U32 mNumOwnerAdditions;
 
 	LLGroupMgrGroupData::member_list_t::iterator mMemberProgress;
-	boost::signals2::connection mAvatarNameCacheConnection;
+	typedef std::map<LLUUID, boost::signals2::connection> avatar_name_cache_connection_map_t;
+	avatar_name_cache_connection_map_t mAvatarNameCacheConnections;
 };
 
 class LLPanelGroupRolesSubTab : public LLPanelGroupSubTab
-- 
cgit v1.2.3


From a04ad99064006322af2bc78848554df4267b0468 Mon Sep 17 00:00:00 2001
From: Tank_Master <tank.master@phoenixviewer.com>
Date: Thu, 13 Mar 2014 20:08:15 -0700
Subject: Open-154 Better service pack detection for Vista and Server 2008

---
 .../installers/windows/installer_template.nsi      | 28 +++++++++++++++-------
 1 file changed, 20 insertions(+), 8 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/installers/windows/installer_template.nsi b/indra/newview/installers/windows/installer_template.nsi
index 85fa160bb9..8b3a9a8372 100755
--- a/indra/newview/installers/windows/installer_template.nsi
+++ b/indra/newview/installers/windows/installer_template.nsi
@@ -189,20 +189,32 @@ FunctionEnd
 ;Recommend Upgrading Service Pack
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 Function CheckWindowsServPack
-  ${If} ${IsWinXP}
-  ${AndIfNot} ${IsServicePack} 3
-  ${OrIf} ${IsWin2003}
-  ${AndIfNot} ${IsServicePack} 2
-  ${OrIf} ${IsWinVista}
+  ${If} ${IsWinVista}
   ${AndIfNot} ${IsServicePack} 2
-  ${OrIf} ${IsWin2008}
+    MessageBox MB_OK $(CheckWindowsServPackMB)
+    DetailPrint $(UseLatestServPackDP)
+    Return
+  ${EndIf}
+
+  ${If} ${IsWin2008}
   ${AndIfNot} ${IsServicePack} 2
-  ${OrIf} ${IsWin7}
+    MessageBox MB_OK $(CheckWindowsServPackMB)
+    DetailPrint $(UseLatestServPackDP)
+    Return
+  ${EndIf}
+
+  ${If} ${IsWin7}
   ${AndIfNot} ${IsServicePack} 1
-  ${OrIf} ${IsWin2008R2}
+    MessageBox MB_OK $(CheckWindowsServPackMB)
+    DetailPrint $(UseLatestServPackDP)
+    Return
+  ${EndIf}
+
+  ${If} ${IsWin2008R2}
   ${AndIfNot} ${IsServicePack} 1
     MessageBox MB_OK $(CheckWindowsServPackMB)
     DetailPrint $(UseLatestServPackDP)
+    Return
   ${EndIf}
 FunctionEnd
 
-- 
cgit v1.2.3


From e9116575bfd2238e80eaac08bceb8f797d0e933c Mon Sep 17 00:00:00 2001
From: Ricky Curtice <kf6kjg+hg@gmail.com>
Date: Thu, 13 Mar 2014 20:36:05 -0700
Subject: OPEN-209: Corrected all instances of trigraphs in the code.

Trigraphs can cause some real special headaches.  The only part that's annoying is the comment in newview/llimview.cpp where there's an unfortunate collision of a trigraph sequence with a character sequence that could be displayed by the viewer. Thankfully, it's only a comment!
---
 indra/llvfs/llvfile.cpp                  | 2 +-
 indra/llvfs/tests/lldiriterator_test.cpp | 6 +++---
 indra/llwindow/llwindow.cpp              | 4 ++--
 indra/llwindow/llwindowsdl.cpp           | 4 ++--
 indra/newview/llagentwearables.cpp       | 2 +-
 indra/newview/llappviewer.cpp            | 2 +-
 indra/newview/llimview.cpp               | 2 +-
 indra/newview/lltoastnotifypanel.cpp     | 2 +-
 indra/newview/llviewermedia.cpp          | 2 +-
 9 files changed, 13 insertions(+), 13 deletions(-)

(limited to 'indra')

diff --git a/indra/llvfs/llvfile.cpp b/indra/llvfs/llvfile.cpp
index 306d7d8ec7..983e7c3b59 100755
--- a/indra/llvfs/llvfile.cpp
+++ b/indra/llvfs/llvfile.cpp
@@ -104,7 +104,7 @@ BOOL LLVFile::read(U8 *buffer, S32 bytes, BOOL async, F32 priority)
 	// We can't do a read while there are pending async writes
 	waitForLock(VFSLOCK_APPEND);
 	
-	// *FIX: (???)
+	// *FIX: (?)
 	if (async)
 	{
 		mHandle = sVFSThread->read(mVFS, mFileID, mFileType, buffer, mPosition, bytes, threadPri());
diff --git a/indra/llvfs/tests/lldiriterator_test.cpp b/indra/llvfs/tests/lldiriterator_test.cpp
index 505d86faa7..a65e3dada5 100755
--- a/indra/llvfs/tests/lldiriterator_test.cpp
+++ b/indra/llvfs/tests/lldiriterator_test.cpp
@@ -51,9 +51,9 @@ namespace tut
     void test_chop_662(void)
     {
         //  Check a selection of bad group names from the crash reports 
-        LLDirIterator iter(".","+bad-group-name]+??-??.*");
-        LLDirIterator iter1(".","))--@---bad-group-name2((??-??.*\\.txt");
-        LLDirIterator iter2(".","__^v--x)Cuide d sua vida(x--v^__??-??.*"); 
+        LLDirIterator iter(".","+bad-group-name]+?\?-??.*");
+        LLDirIterator iter1(".","))--@---bad-group-name2((?\?-??.*\\.txt");
+        LLDirIterator iter2(".","__^v--x)Cuide d sua vida(x--v^__?\?-??.*"); 
     }
 
     template<> template<>
diff --git a/indra/llwindow/llwindow.cpp b/indra/llwindow/llwindow.cpp
index 93b9d36939..a2824db70a 100755
--- a/indra/llwindow/llwindow.cpp
+++ b/indra/llwindow/llwindow.cpp
@@ -72,7 +72,7 @@ S32 OSMessageBox(const std::string& text, const std::string& caption, U32 type)
 	}
 
 	S32 result = 0;
-#if LL_MESA_HEADLESS // !!! *FIX: (???)
+#if LL_MESA_HEADLESS // !!! *FIX: (?)
 	llwarns << "OSMessageBox: " << text << llendl;
 	return OSBTN_OK;
 #elif LL_WINDOWS
@@ -324,7 +324,7 @@ bool LLSplashScreen::isVisible()
 // static
 LLSplashScreen *LLSplashScreen::create()
 {
-#if LL_MESA_HEADLESS || LL_SDL  // !!! *FIX: (???)
+#if LL_MESA_HEADLESS || LL_SDL  // !!! *FIX: (?)
 	return 0;
 #elif LL_WINDOWS
 	return new LLSplashScreenWin32;
diff --git a/indra/llwindow/llwindowsdl.cpp b/indra/llwindow/llwindowsdl.cpp
index 205466e936..18e9eb0ee9 100755
--- a/indra/llwindow/llwindowsdl.cpp
+++ b/indra/llwindow/llwindowsdl.cpp
@@ -223,7 +223,7 @@ LLWindowSDL::LLWindowSDL(LLWindowCallbacks* callbacks,
 	mOriginalAspectRatio = 1024.0 / 768.0;
 
 	if (title.empty())
-		mWindowTitle = "SDL Window";  // *FIX: (???)
+		mWindowTitle = "SDL Window";  // *FIX: (?)
 	else
 		mWindowTitle = title;
 
@@ -956,7 +956,7 @@ BOOL LLWindowSDL::setPosition(const LLCoordScreen position)
 {
 	if(mWindow)
 	{
-        // *FIX: (???)
+        // *FIX: (?)
 		//MacMoveWindow(mWindow, position.mX, position.mY, false);
 	}
 
diff --git a/indra/newview/llagentwearables.cpp b/indra/newview/llagentwearables.cpp
index fa810aac76..a7236f27e8 100755
--- a/indra/newview/llagentwearables.cpp
+++ b/indra/newview/llagentwearables.cpp
@@ -204,7 +204,7 @@ LLAgentWearables::sendAgentWearablesUpdateCallback::~sendAgentWearablesUpdateCal
  *
  * Would like to pass the agent in here, but we can't safely
  * count on it being around later.  Just use gAgent directly.
- * @param cb callback to execute on completion (??? unused ???)
+ * @param cb callback to execute on completion (? unused ?)
  * @param type Type for the wearable in the agent
  * @param wearable The wearable data.
  * @param todo Bitmask of actions to take on completion.
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index e3c89f1a5f..a9adca3097 100755
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -4772,7 +4772,7 @@ void LLAppViewer::idle()
 		static LLFrameStatsTimer viewer_stats_timer(SEND_STATS_PERIOD);
 
 		// Update session stats every large chunk of time
-		// *FIX: (???) SAMANTHA
+		// *FIX: (?) SAMANTHA
 		if (viewer_stats_timer.getElapsedTimeF32() >= SEND_STATS_PERIOD && !gDisconnected)
 		{
 			llinfos << "Transmitting sessions stats" << llendl;
diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp
index 70ffdc14ff..e8ebd21de4 100755
--- a/indra/newview/llimview.cpp
+++ b/indra/newview/llimview.cpp
@@ -1352,7 +1352,7 @@ void LLIMModel::sendMessage(const std::string& utf8_text,
 		// IM_SESSION_INVITE means that this is an Ad-hoc incoming chat
 		//		(it can be also Group chat but it is checked above)
 		// In this case mInitialTargetIDs contains Ad-hoc session ID and it should not be added
-		// to Recent People to prevent showing of an item with (???)(???). See EXT-8246.
+		// to Recent People to prevent showing of an item with (?? ?)(?? ?), sans the spaces. See EXT-8246.
 		// Concrete participants will be added into this list once they sent message in chat.
 		if (IM_SESSION_INVITE == dialog) return;
 			
diff --git a/indra/newview/lltoastnotifypanel.cpp b/indra/newview/lltoastnotifypanel.cpp
index 9824f2dd38..c983527762 100755
--- a/indra/newview/lltoastnotifypanel.cpp
+++ b/indra/newview/lltoastnotifypanel.cpp
@@ -46,7 +46,7 @@
 const S32 BOTTOM_PAD = VPAD * 3;
 const S32 IGNORE_BTN_TOP_DELTA = 3*VPAD;//additional ignore_btn padding
 S32 BUTTON_WIDTH = 90;
-// *TODO: magic numbers(???) - copied from llnotify.cpp(250)
+// *TODO: magic numbers(?) - copied from llnotify.cpp(250)
 const S32 MAX_LENGTH = 512 + 20 + DB_FIRST_NAME_BUF_SIZE + DB_LAST_NAME_BUF_SIZE + DB_INV_ITEM_NAME_BUF_SIZE; 
 
 
diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp
index 21fb8d519b..e21752da53 100755
--- a/indra/newview/llviewermedia.cpp
+++ b/indra/newview/llviewermedia.cpp
@@ -191,7 +191,7 @@ public:
 		// 500 means "Internal Server error" but we decided it's okay to 
 		//     accept this and go past it in the MIME type probe
 		// 302 means the resource can be found temporarily in a different place - added this for join.secondlife.com
-		// 499 is a code specifc to join.secondlife.com (????) apparently safe to ignore
+		// 499 is a code specifc to join.secondlife.com (?) apparently safe to ignore
 //		if(	((status >= 200) && (status < 300))	||
 //			((status >= 400) && (status < 499))	|| 
 //			(status == 500) ||
-- 
cgit v1.2.3


From 99e97bf6aebab653e6faefb4af8c2083af29aca8 Mon Sep 17 00:00:00 2001
From: Oz Linden <oz@lindenlab.com>
Date: Fri, 14 Mar 2014 14:51:58 -0400
Subject: conform to new policy forbidding trigraphs

---
 indra/newview/llagentwearables.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'indra')

diff --git a/indra/newview/llagentwearables.cpp b/indra/newview/llagentwearables.cpp
index aa97bddec8..9c36e54928 100755
--- a/indra/newview/llagentwearables.cpp
+++ b/indra/newview/llagentwearables.cpp
@@ -238,7 +238,7 @@ LLAgentWearables::sendAgentWearablesUpdateCallback::~sendAgentWearablesUpdateCal
  *
  * Would like to pass the agent in here, but we can't safely
  * count on it being around later.  Just use gAgent directly.
- * @param cb callback to execute on completion (??? unused ???)
+ * @param cb callback to execute on completion (? unused ?)
  * @param type Type for the wearable in the agent
  * @param wearable The wearable data.
  * @param todo Bitmask of actions to take on completion.
-- 
cgit v1.2.3


From 3ee3d4a8f4b74a5f0b75fa54cb8e1cef0b1ef28e Mon Sep 17 00:00:00 2001
From: Oz Linden <oz@lindenlab.com>
Date: Fri, 14 Mar 2014 16:19:21 -0400
Subject: correct logging levels (ERR causes a crash), and a minor style fix

---
 indra/llui/llkeywords.cpp    | 17 ++++++++---------
 indra/llui/lltextbase.cpp    |  3 ++-
 indra/newview/llsyntaxid.cpp | 10 +++++-----
 3 files changed, 15 insertions(+), 15 deletions(-)

(limited to 'indra')

diff --git a/indra/llui/llkeywords.cpp b/indra/llui/llkeywords.cpp
index a251c2e4f5..9b924c84a9 100755
--- a/indra/llui/llkeywords.cpp
+++ b/indra/llui/llkeywords.cpp
@@ -163,15 +163,14 @@ std::string LLKeywords::getArguments(LLSD& arguments)
 			}
 			else
 			{
-				LL_INFOS("SyntaxLSL")
-						<< "Argument array does not comtain a map element!" << LL_ENDL;
+				LL_WARNS("SyntaxLSL")
+						<< "Argument array comtains a non-map element!" << LL_ENDL;
 			}
 		}
 	}
 	else if (!arguments.isUndefined())
 	{
-		LL_WARNS("SyntaxLSL")
-				<< "Not an array! Invalid arguments LLSD passed to function." << arguments << LL_ENDL;
+		LL_WARNS("SyntaxLSL") << "Not an array! Invalid arguments LLSD passed to function." << arguments << LL_ENDL;
 	}
 	return argString == "" ? "" : argString;
 }
@@ -251,7 +250,7 @@ LLColor4 LLKeywords::getColorGroup(const std::string key_in)
 	}
 	else
 	{
-		LL_WARNS("SyntaxLSL") << "Color key '" << key_in << "' not recognised!" << LL_ENDL;
+		LL_WARNS("SyntaxLSL") << "Color key '" << key_in << "' not recognized!" << LL_ENDL;
 	}
 
 	return LLUIColorTable::instance().getColor(ColourGroup);
@@ -287,7 +286,7 @@ void LLKeywords::processTokens()
 			}
 			else
 			{
-				LL_ERRS("LSL-Tokens-Processing") << "Map for " + outerIt->first + " entries is missing! Ignoring." << LL_ENDL;
+				LL_WARNS("LSL-Tokens-Processing") << "Map for " + outerIt->first + " entries is missing! Ignoring." << LL_ENDL;
 			}
 		}
 	}
@@ -356,7 +355,7 @@ void LLKeywords::processTokensGroup(LLSD& Tokens, const std::string Group)
 					}
 					else
 					{
-						LL_ERRS("SyntaxLSL") << "Not a valid attribute" << LL_ENDL;
+						LL_WARNS("SyntaxLSL") << "Not a valid attribute" << LL_ENDL;
 					}
 				}
 
@@ -403,7 +402,7 @@ void LLKeywords::processTokensGroup(LLSD& Tokens, const std::string Group)
 	}
 	else if (Tokens.isArray())	// Currently nothing should need this, but it's here for completeness
 	{
-		LL_INFOS("SyntaxLSL") << "Curious, shouldn't be an array here" << LL_ENDL;
+		LL_WARNS("SyntaxLSL") << "Curious, shouldn't be an array here; adding all using color " << Color << LL_ENDL;
 		for (int count = 0; count < Tokens.size(); ++count)
 		{
 			addToken(token_type, Tokens[count], Color, "");
@@ -411,7 +410,7 @@ void LLKeywords::processTokensGroup(LLSD& Tokens, const std::string Group)
 	}
 	else
 	{
-		LL_INFOS("Tokens") << "Invalid map/array passed: '" << Tokens << "'" << LL_ENDL;
+		LL_WARNS("Tokens") << "Invalid map/array passed: '" << Tokens << "'" << LL_ENDL;
 	}
 }
 
diff --git a/indra/llui/lltextbase.cpp b/indra/llui/lltextbase.cpp
index 5ec4cf4fe5..bc11d59a65 100755
--- a/indra/llui/lltextbase.cpp
+++ b/indra/llui/lltextbase.cpp
@@ -571,7 +571,8 @@ void LLTextBase::drawText()
 	if ( (getSpellCheck()) && (getWText().length() > 2) )
 	{
 		// Calculate start and end indices for the spell checking range
-		S32 start = line_start, end = getLineEnd(last_line);
+		S32 start = line_start;
+		S32 end   = getLineEnd(last_line);
 
 		if ( (mSpellCheckStart != start) || (mSpellCheckEnd != end) )
 		{
diff --git a/indra/newview/llsyntaxid.cpp b/indra/newview/llsyntaxid.cpp
index 7deb976c2a..80511cd73f 100644
--- a/indra/newview/llsyntaxid.cpp
+++ b/indra/newview/llsyntaxid.cpp
@@ -50,7 +50,7 @@ void fetchKeywordsFileResponder::errorWithContent(U32 status,
 												  const LLSD& content)
 {
 	LLSyntaxIdLSL::sLoadFailed = true;
-	LL_ERRS("SyntaxLSL")
+	LL_WARNS("SyntaxLSL")
 			<< "fetchKeywordsFileResponder error [status:"
 			<< status << "]: " << content
 			<< LL_ENDL;
@@ -88,7 +88,7 @@ void fetchKeywordsFileResponder::result(const LLSD& content_ref)
 	{
 		LLSyntaxIdLSL::sLoaded = false;
 		LLSyntaxIdLSL::sLoadFailed = true;
-		LL_ERRS("SyntaxLSL")
+		LL_WARNS("SyntaxLSL")
 				<< "Syntax file '" << mFileSpec << "' contains invalid LLSD!" << LL_ENDL;
 	}
 
@@ -174,7 +174,7 @@ bool LLSyntaxIdLSL::checkSyntaxIdChanged()
 		if (!region->capabilitiesReceived())
 		{   // Shouldn't be possible, but experience shows that it may be needed.
 			sLoadFailed = true;
-			LL_ERRS("SyntaxLSL")
+			LL_WARNS("SyntaxLSL")
 				<< "Region '" << region->getName()
 				<< "' has not received capabilities yet! Cannot process SyntaxId."
 				<< LL_ENDL;
@@ -304,7 +304,7 @@ void LLSyntaxIdLSL::initialise()
 		else
 		{
 			sLoadFailed = true;
-			LL_ERRS("SyntaxLSL")
+			LL_WARNS("SyntaxLSL")
 					<< "LSLSyntaxId capability URL is empty!!" << LL_ENDL;
 			loadDefaultKeywordsIntoLLSD();
 		}
@@ -388,7 +388,7 @@ void LLSyntaxIdLSL::loadKeywordsIntoLLSD()
 		sLoaded = (bool)LLSDSerialize::fromXML(content, file);
 		if (!sLoaded)
 		{
-			LL_ERRS("SyntaxLSL")
+			LL_WARNS("SyntaxLSL")
 					<< "Unable to deserialise file: "
 					<< mFullFileSpec << LL_ENDL;
 		}
-- 
cgit v1.2.3


From bc7a579ba285fa64876a2bc116685f0357fe25dc Mon Sep 17 00:00:00 2001
From: Oz Linden <oz@lindenlab.com>
Date: Fri, 14 Mar 2014 16:33:47 -0400
Subject: STORM-1831 initialize LLKeywords::mLoaded in constructor (fixes
 black-on-black text in various places)

---
 indra/llui/llkeywords.cpp | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

(limited to 'indra')

diff --git a/indra/llui/llkeywords.cpp b/indra/llui/llkeywords.cpp
index 9b924c84a9..b4932489b5 100755
--- a/indra/llui/llkeywords.cpp
+++ b/indra/llui/llkeywords.cpp
@@ -67,7 +67,10 @@ inline bool LLKeywordToken::isTail(const llwchar* s) const
 	return res;
 }
 
-LLKeywords::LLKeywords() { }
+LLKeywords::LLKeywords() :
+	mLoaded(false)
+{
+}
 
 LLKeywords::~LLKeywords()
 {
-- 
cgit v1.2.3


From 3372649d1b61ffb32965a4773ad3b7bd594054b6 Mon Sep 17 00:00:00 2001
From: Oz Linden <oz@lindenlab.com>
Date: Mon, 17 Mar 2014 15:26:47 -0400
Subject: Restore use of RenderSpecularExponent

---
 indra/newview/app_settings/settings.xml |  2 +-
 indra/newview/pipeline.cpp              | 61 ++-------------------------------
 2 files changed, 3 insertions(+), 60 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index d39bf6c3c2..09a928478e 100755
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -8908,7 +8908,7 @@
     <key>Type</key>
     <string>F32</string>
     <key>Value</key>
-    <real>384</real>
+    <real>368.0</real>
   </map>
 
   <key>RenderDeferred</key>
diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp
index 5da8a78b1b..805dc99654 100755
--- a/indra/newview/pipeline.cpp
+++ b/indra/newview/pipeline.cpp
@@ -1362,49 +1362,10 @@ void LLPipeline::createLUTBuffers()
 	{
 		if (!mLightFunc)
 		{
-			/*U32 lightResX = gSavedSettings.getU32("RenderSpecularResX");
-			U32 lightResY = gSavedSettings.getU32("RenderSpecularResY");
-			U8* ls = new U8[lightResX*lightResY];
-			F32 specExp = gSavedSettings.getF32("RenderSpecularExponent");
-            // Calculate the (normalized) Blinn-Phong specular lookup texture.
-			for (U32 y = 0; y < lightResY; ++y)
-			{
-				for (U32 x = 0; x < lightResX; ++x)
-				{
-					ls[y*lightResX+x] = 0;
-					F32 sa = (F32) x/(lightResX-1);
-					F32 spec = (F32) y/(lightResY-1);
-					F32 n = spec * spec * specExp;
-					
-					// Nothing special here.  Just your typical blinn-phong term.
-					spec = powf(sa, n);
-					
-					// Apply our normalization function.
-					// Note: This is the full equation that applies the full normalization curve, not an approximation.
-					// This is fine, given we only need to create our LUT once per buffer initialization.
-					// The only trade off is we have a really low dynamic range.
-					// This means we have to account for things not being able to exceed 0 to 1 in our shaders.
-					spec *= (((n + 2) * (n + 4)) / (8 * F_PI * (powf(2, -n/2) + n)));
-					
-					// Always sample at a 1.0/2.2 curve.
-					// This "Gamma corrects" our specular term, boosting our lower exponent reflections.
-					spec = powf(spec, 1.f/2.2f);
-					
-					// Easy fix for our dynamic range problem: divide by 6 here, multiply by 6 in our shaders.
-					// This allows for our specular term to exceed a value of 1 in our shaders.
-					// This is something that can be important for energy conserving specular models where higher exponents can result in highlights that exceed a range of 0 to 1.
-					// Technically, we could just use an R16F texture, but driver support for R16F textures can be somewhat spotty at times.
-					// This works remarkably well for higher specular exponents, though banding can sometimes be seen on lower exponents.
-					// Combined with a bit of noise and trilinear filtering, the banding is hardly noticable.
-					ls[y*lightResX+x] = (U8)(llclamp(spec * (1.f / 6), 0.f, 1.f) * 255);
-				}
-			}*/
-		
-
 			U32 lightResX = gSavedSettings.getU32("RenderSpecularResX");
 			U32 lightResY = gSavedSettings.getU32("RenderSpecularResY");
 			F32* ls = new F32[lightResX*lightResY];
-			//F32 specExp = gSavedSettings.getF32("RenderSpecularExponent"); // Note: only use this when creating new specular lighting functions.
+			F32 specExp = gSavedSettings.getF32("RenderSpecularExponent");
             // Calculate the (normalized) blinn-phong specular lookup texture. (with a few tweaks)
 			for (U32 y = 0; y < lightResY; ++y)
 			{
@@ -1413,7 +1374,7 @@ void LLPipeline::createLUTBuffers()
 					ls[y*lightResX+x] = 0;
 					F32 sa = (F32) x/(lightResX-1);
 					F32 spec = (F32) y/(lightResY-1);
-					F32 n = spec * spec * 368;
+					F32 n = spec * spec * specExp;
 					
 					// Nothing special here.  Just your typical blinn-phong term.
 					spec = powf(sa, n);
@@ -1426,23 +1387,6 @@ void LLPipeline::createLUTBuffers()
 					// Since we use R16F, we no longer have a dynamic range issue we need to work around here.
 					// Though some older drivers may not like this, newer drivers shouldn't have this problem.
 					ls[y*lightResX+x] = spec;
-
-					
-					//beckmann distribution
-					/*F32 alpha = acosf((F32) x/(lightResX-1));
-					F32 m = 1.f - (F32) y/(lightResY-1);
-
-					F32 cos4_alpha = cosf(alpha);
-					cos4_alpha *= cos4_alpha;
-					cos4_alpha *= cos4_alpha;
-
-					F32 tan_alpha = tanf(alpha);
-					F32 tan2_alpha = tan_alpha*tan_alpha;
-
-					F32 k = expf(-(tan2_alpha)/(m*m)) /
-						(3.14159f*m*m*cos4_alpha);
-
-					ls[y*lightResX+x] = k;*/
 				}
 			}
 			
@@ -1455,7 +1399,6 @@ void LLPipeline::createLUTBuffers()
 			LLImageGL::generateTextures(1, &mLightFunc);
 			gGL.getTexUnit(0)->bindManual(LLTexUnit::TT_TEXTURE, mLightFunc);
 			LLImageGL::setManualImage(LLTexUnit::getInternalType(LLTexUnit::TT_TEXTURE), 0, pix_format, lightResX, lightResY, GL_RED, GL_FLOAT, ls, false);
-			//LLImageGL::setManualImage(LLTexUnit::getInternalType(LLTexUnit::TT_TEXTURE), 0, GL_UNSIGNED_BYTE, lightResX, lightResY, GL_RED, GL_UNSIGNED_BYTE, ls, false);
 			gGL.getTexUnit(0)->setTextureAddressMode(LLTexUnit::TAM_CLAMP);
 			gGL.getTexUnit(0)->setTextureFilteringOption(LLTexUnit::TFO_TRILINEAR);
 			glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
-- 
cgit v1.2.3


From bd4f4ee7932797008ed15f8c0301f5a0e5911a64 Mon Sep 17 00:00:00 2001
From: Oz Linden <oz@lindenlab.com>
Date: Wed, 19 Mar 2014 14:17:13 -0400
Subject: logging cleanup in support of debugging text editor problems

---
 indra/llui/llkeywords.cpp        | 16 ++++++++++------
 indra/llui/lltextbase.cpp        |  1 +
 indra/newview/llappviewer.cpp    |  4 ++++
 indra/newview/llfloaterabout.cpp | 19 ++++++++++++-------
 4 files changed, 27 insertions(+), 13 deletions(-)

(limited to 'indra')

diff --git a/indra/llui/llkeywords.cpp b/indra/llui/llkeywords.cpp
index 82b50f43ab..a3e033d894 100755
--- a/indra/llui/llkeywords.cpp
+++ b/indra/llui/llkeywords.cpp
@@ -169,8 +169,7 @@ std::string LLKeywords::getArguments(LLSD& arguments)
 			}
 			else
 			{
-				LL_WARNS("SyntaxLSL")
-						<< "Argument array comtains a non-map element!" << LL_ENDL;
+				LL_WARNS("SyntaxLSL") << "Argument array comtains a non-map element!" << LL_ENDL;
 			}
 		}
 	}
@@ -265,11 +264,16 @@ LLColor4 LLKeywords::getColorGroup(const std::string key_in)
 void LLKeywords::initialise(LLSD SyntaxXML)
 {
 	mSyntax = SyntaxXML;
-	mLoaded = TRUE;
+	mLoaded = true;
 }
 
 void LLKeywords::processTokens()
 {
+	if (!mLoaded)
+	{
+		return;
+	}
+
 	// Add 'standard' stuff: Quotes, Comments, Strings, Labels, etc. before processing the LLSD
 	std::string delimiter;
 	addToken(LLKeywordToken::TT_LABEL, "@", getColorGroup("misc-flow-label"), "Label\nTarget for jump statement", delimiter );
@@ -282,7 +286,7 @@ void LLKeywords::processTokens()
 	{
 		if (outerIt->first == "llsd-lsl-syntax-version")
 		{
-			LL_INFOS("SyntaxLSL") << "Skipping over version key." << LL_ENDL;
+			// Skip over version key.
 		}
 		else
 		{
@@ -361,7 +365,7 @@ void LLKeywords::processTokensGroup(LLSD& Tokens, const std::string Group)
 					}
 					else
 					{
-						LL_WARNS("SyntaxLSL") << "Not a valid attribute" << LL_ENDL;
+						LL_WARNS("SyntaxLSL") << "Not a valid attribute: " << innerIt->first << LL_ENDL;
 					}
 				}
 
@@ -408,7 +412,7 @@ void LLKeywords::processTokensGroup(LLSD& Tokens, const std::string Group)
 	}
 	else if (Tokens.isArray())	// Currently nothing should need this, but it's here for completeness
 	{
-		LL_WARNS("SyntaxLSL") << "Curious, shouldn't be an array here; adding all using color " << Color << LL_ENDL;
+		LL_INFOS("SyntaxLSL") << "Curious, shouldn't be an array here; adding all using color " << Color << LL_ENDL;
 		for (int count = 0; count < Tokens.size(); ++count)
 		{
 			addToken(token_type, Tokens[count], Color, "");
diff --git a/indra/llui/lltextbase.cpp b/indra/llui/lltextbase.cpp
index c4664d6fe0..ee16d3de7c 100755
--- a/indra/llui/lltextbase.cpp
+++ b/indra/llui/lltextbase.cpp
@@ -923,6 +923,7 @@ void LLTextBase::createDefaultSegment()
 	// ensures that there is always at least one segment
 	if (mSegments.empty())
 	{
+		
 		LLStyleConstSP sp(new LLStyle(getStyleParams()));
 		LLTextSegmentPtr default_segment = new LLNormalTextSegment( sp, 0, getLength() + 1, *this);
 		mSegments.insert(default_segment);
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index e3c89f1a5f..e4de00b9e5 100755
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -3364,6 +3364,10 @@ LLSD LLAppViewer::getViewerInfo() const
 		{
 			info["SERVER_RELEASE_NOTES_URL"] = LLTrans::getString("RetrievingData");
 		}
+		else
+		{
+			info["SERVER_RELEASE_NOTES_URL"] = LLTrans::getString("NotConnected");
+		}
 	}
 	else if (LLStringUtil::startsWith(mServerReleaseNotesURL, "http")) // it's an URL
 	{
diff --git a/indra/newview/llfloaterabout.cpp b/indra/newview/llfloaterabout.cpp
index 4331a63346..27ca9ab56a 100755
--- a/indra/newview/llfloaterabout.cpp
+++ b/indra/newview/llfloaterabout.cpp
@@ -149,7 +149,8 @@ BOOL LLFloaterAbout::postBuild()
 	}
 	else // not logged in
 	{
-		setSupportText(LLStringUtil::null);
+		LL_DEBUGS("ViewerInfo") << "cannot display region info when not connected" << LL_ENDL;
+		setSupportText(LLTrans::getString("NotConnected"));
 	}
 
 	support_widget->blockUndo();
@@ -268,11 +269,15 @@ void LLFloaterAbout::setSupportText(const std::string& server_release_notes_url)
 	LLViewerTextEditor *support_widget =
 		getChild<LLViewerTextEditor>("support_editor", true);
 
+	LLUIColor about_color = LLUIColorTable::instance().getColor("TextFgReadOnlyColor");
+#   if 0
 	support_widget->clear();
 	support_widget->appendText(LLAppViewer::instance()->getViewerInfoString(),
-								FALSE,
-								LLStyle::Params()
-									.color(LLUIColorTable::instance().getColor("TextFgReadOnlyColor")));
+							   FALSE, LLStyle::Params() .color(about_color));
+#   else
+	support_widget->setText(LLAppViewer::instance()->getViewerInfoString(),
+							LLStyle::Params() .color(about_color));
+#   endif
 }
 
 ///----------------------------------------------------------------------------
@@ -306,9 +311,9 @@ void LLServerReleaseNotesURLFetcher::startFetch()
 // virtual
 void LLServerReleaseNotesURLFetcher::completedHeader(U32 status, const std::string& reason, const LLSD& content)
 {
-	lldebugs << "Status: " << status << llendl;
-	lldebugs << "Reason: " << reason << llendl;
-	lldebugs << "Headers: " << content << llendl;
+	LL_DEBUGS("VersionInfo") << "Status: " << status
+							 << "Reason: " << reason
+							 << "Headers: " << content << LL_ENDL;
 
 	LLFloaterAbout* floater_about = LLFloaterReg::getTypedInstance<LLFloaterAbout>("sl_about");
 	if (floater_about)
-- 
cgit v1.2.3


From 776aadf4ef65681084268c3866058172c89b4259 Mon Sep 17 00:00:00 2001
From: Oz Linden <oz@lindenlab.com>
Date: Wed, 19 Mar 2014 17:30:07 -0400
Subject: OPEN-199: replace the confusing STANDALONE switch with USESYSTEMLIBS

---
 indra/cmake/00-Common.cmake            | 10 +++++-----
 indra/cmake/APR.cmake                  |  6 +++---
 indra/cmake/Audio.cmake                |  6 +++---
 indra/cmake/BerkeleyDB.cmake           |  6 +++---
 indra/cmake/Boost.cmake                |  6 +++---
 indra/cmake/CARes.cmake                |  6 +++---
 indra/cmake/CURL.cmake                 |  6 +++---
 indra/cmake/Copy3rdPartyLibs.cmake     |  4 ++--
 indra/cmake/DBusGlib.cmake             |  4 ++--
 indra/cmake/EXPAT.cmake                |  6 +++---
 indra/cmake/ExamplePlugin.cmake        |  6 +++---
 indra/cmake/FMODEX.cmake               |  8 ++++----
 indra/cmake/FindJsonCpp.cmake          |  4 ++--
 indra/cmake/FreeType.cmake             |  6 +++---
 indra/cmake/GLEXT.cmake                |  4 ++--
 indra/cmake/GLH.cmake                  |  6 +++---
 indra/cmake/GLOD.cmake                 |  4 ++--
 indra/cmake/GStreamer010Plugin.cmake   |  4 ++--
 indra/cmake/Glui.cmake                 |  6 +++---
 indra/cmake/GoogleBreakpad.cmake       |  6 +++---
 indra/cmake/GooglePerfTools.cmake      |  6 +++---
 indra/cmake/Hunspell.cmake             |  6 +++---
 indra/cmake/JPEG.cmake                 |  6 +++---
 indra/cmake/JsonCpp.cmake              |  6 +++---
 indra/cmake/LLAddBuildTest.cmake       | 10 +++++-----
 indra/cmake/LLWindow.cmake             |  6 +++---
 indra/cmake/NDOF.cmake                 |  6 +++---
 indra/cmake/OPENAL.cmake               |  6 +++---
 indra/cmake/OpenJPEG.cmake             |  6 +++---
 indra/cmake/OpenSSL.cmake              |  6 +++---
 indra/cmake/PNG.cmake                  |  6 +++---
 indra/cmake/Prebuilt.cmake             |  2 +-
 indra/cmake/PulseAudio.cmake           |  4 ++--
 indra/cmake/Tut.cmake                  |  4 ++--
 indra/cmake/UI.cmake                   |  6 +++---
 indra/cmake/Variables.cmake            |  2 +-
 indra/cmake/ViewerMiscLibs.cmake       |  4 ++--
 indra/cmake/WebKitLibPlugin.cmake      |  6 +++---
 indra/cmake/XmlRpcEpi.cmake            |  6 +++---
 indra/cmake/ZLIB.cmake                 |  6 +++---
 indra/llcommon/llsdserialize.cpp       |  2 +-
 indra/llcommon/llsdserialize_xml.cpp   |  2 +-
 indra/llcommon/llsys.cpp               |  2 +-
 indra/llimage/llimagejpeg.h            |  2 +-
 indra/llmessage/llares.h               |  2 +-
 indra/llmessage/llhttpassetstorage.cpp |  2 +-
 indra/llprimitive/llmodel.cpp          |  2 +-
 indra/llui/llxuiparser.cpp             |  2 +-
 indra/llxml/llxmlnode.h                |  2 +-
 indra/llxml/llxmlparser.h              |  2 +-
 indra/newview/CMakeLists.txt           |  8 ++++----
 indra/newview/llviewerobjectlist.cpp   |  2 +-
 indra/newview/llvoicevivox.cpp         |  2 +-
 indra/newview/llvoicevivox.h           |  2 +-
 54 files changed, 129 insertions(+), 129 deletions(-)

(limited to 'indra')

diff --git a/indra/cmake/00-Common.cmake b/indra/cmake/00-Common.cmake
index 87484f4ae3..69173c38a2 100755
--- a/indra/cmake/00-Common.cmake
+++ b/indra/cmake/00-Common.cmake
@@ -173,12 +173,12 @@ if (LINUX)
   endif (WORD_SIZE EQUAL 32)
   add_definitions(-mfpmath=sse)
   #add_definitions(-ftree-vectorize) # THIS CRASHES GCC 3.1-3.2
-  if (NOT STANDALONE)
+  if (NOT USESYSTEMLIBS)
     # this stops us requiring a really recent glibc at runtime
     add_definitions(-fno-stack-protector)
     # linking can be very memory-hungry, especially the final viewer link
     set(CMAKE_CXX_LINK_FLAGS "-Wl,--no-keep-memory")
-  endif (NOT STANDALONE)
+  endif (NOT USESYSTEMLIBS)
 
   set(CMAKE_CXX_FLAGS_DEBUG "-fno-inline ${CMAKE_CXX_FLAGS_DEBUG}")
   set(CMAKE_CXX_FLAGS_RELEASE "-O2 ${CMAKE_CXX_FLAGS_RELEASE}")
@@ -225,14 +225,14 @@ if (LINUX OR DARWIN)
 endif (LINUX OR DARWIN)
 
 
-if (STANDALONE)
+if (USESYSTEMLIBS)
   add_definitions(-DLL_STANDALONE=1)
 
   if (LINUX AND ${ARCH} STREQUAL "i686")
     add_definitions(-march=pentiumpro)
   endif (LINUX AND ${ARCH} STREQUAL "i686")
 
-else (STANDALONE)
+else (USESYSTEMLIBS)
   set(${ARCH}_linux_INCLUDES
       ELFIO
       atk-1.0
@@ -241,6 +241,6 @@ else (STANDALONE)
       gtk-2.0
       pango-1.0
       )
-endif (STANDALONE)
+endif (USESYSTEMLIBS)
 
 endif(NOT DEFINED ${CMAKE_CURRENT_LIST_FILE}_INCLUDED)
diff --git a/indra/cmake/APR.cmake b/indra/cmake/APR.cmake
index a87027f5f6..1a01671002 100755
--- a/indra/cmake/APR.cmake
+++ b/indra/cmake/APR.cmake
@@ -8,9 +8,9 @@ set(APR_FIND_REQUIRED ON)
 set(APRUTIL_FIND_QUIETLY ON)
 set(APRUTIL_FIND_REQUIRED ON)
 
-if (STANDALONE)
+if (USESYSTEMLIBS)
   include(FindAPR)
-else (STANDALONE)
+else (USESYSTEMLIBS)
   use_prebuilt_binary(apr_suite)
   if (WINDOWS)
     if (LLCOMMON_LINK_SHARED)
@@ -52,4 +52,4 @@ else (STANDALONE)
       list(APPEND APRUTIL_LIBRARIES ${DB_LIBRARIES} uuid)
     list(APPEND APRUTIL_LIBRARIES ${DB_LIBRARIES} rt)
   endif (LINUX)
-endif (STANDALONE)
+endif (USESYSTEMLIBS)
diff --git a/indra/cmake/Audio.cmake b/indra/cmake/Audio.cmake
index d23bc2f9c6..876b7f82a8 100755
--- a/indra/cmake/Audio.cmake
+++ b/indra/cmake/Audio.cmake
@@ -1,13 +1,13 @@
 # -*- cmake -*-
 include(Prebuilt)
 
-if (STANDALONE)
+if (USESYSTEMLIBS)
   include(FindPkgConfig)
   pkg_check_modules(OGG REQUIRED ogg)
   pkg_check_modules(VORBIS REQUIRED vorbis)
   pkg_check_modules(VORBISENC REQUIRED vorbisenc)
   pkg_check_modules(VORBISFILE REQUIRED vorbisfile)
-else (STANDALONE)
+else (USESYSTEMLIBS)
   use_prebuilt_binary(ogg-vorbis)
   set(VORBIS_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include)
   set(VORBISENC_INCLUDE_DIRS ${VORBIS_INCLUDE_DIRS})
@@ -32,7 +32,7 @@ else (STANDALONE)
     set(VORBISENC_LIBRARIES vorbisenc)
     set(VORBISFILE_LIBRARIES vorbisfile)
   endif (WINDOWS)
-endif (STANDALONE)
+endif (USESYSTEMLIBS)
 
 link_directories(
     ${VORBIS_LIBRARY_DIRS}
diff --git a/indra/cmake/BerkeleyDB.cmake b/indra/cmake/BerkeleyDB.cmake
index 57b53f46ff..5f6b644a15 100755
--- a/indra/cmake/BerkeleyDB.cmake
+++ b/indra/cmake/BerkeleyDB.cmake
@@ -3,9 +3,9 @@
 set(DB_FIND_QUIETLY ON)
 set(DB_FIND_REQUIRED ON)
 
-if (STANDALONE)
+if (USESYSTEMLIBS)
   include(FindBerkeleyDB)
-else (STANDALONE)
+else (USESYSTEMLIBS)
   if (LINUX)
     # Need to add dependency pthread explicitely to support ld.gold.
     use_prebuilt_binary(db)
@@ -14,4 +14,4 @@ else (STANDALONE)
     set(DB_LIBRARIES db-4.2)
   endif (LINUX)
   set(DB_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include)
-endif (STANDALONE)
+endif (USESYSTEMLIBS)
diff --git a/indra/cmake/Boost.cmake b/indra/cmake/Boost.cmake
index cff762e1f0..50ac27d402 100755
--- a/indra/cmake/Boost.cmake
+++ b/indra/cmake/Boost.cmake
@@ -4,7 +4,7 @@ include(Prebuilt)
 set(Boost_FIND_QUIETLY ON)
 set(Boost_FIND_REQUIRED ON)
 
-if (STANDALONE)
+if (USESYSTEMLIBS)
   include(FindBoost)
 
   set(BOOST_CONTEXT_LIBRARY boost_context-mt)
@@ -14,7 +14,7 @@ if (STANDALONE)
   set(BOOST_SIGNALS_LIBRARY boost_signals-mt)
   set(BOOST_SYSTEM_LIBRARY boost_system-mt)
   set(BOOST_THREAD_LIBRARY boost_thread-mt)
-else (STANDALONE)
+else (USESYSTEMLIBS)
   use_prebuilt_binary(boost)
   set(Boost_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include)
   set(BOOST_VERSION "1.52")
@@ -111,4 +111,4 @@ else (STANDALONE)
         optimized boost_thread-mt
         debug boost_thread-mt-d)
   endif (WINDOWS)
-endif (STANDALONE)
+endif (USESYSTEMLIBS)
diff --git a/indra/cmake/CARes.cmake b/indra/cmake/CARes.cmake
index b0dac5b12f..baa55aa49d 100755
--- a/indra/cmake/CARes.cmake
+++ b/indra/cmake/CARes.cmake
@@ -5,9 +5,9 @@ include(Prebuilt)
 set(CARES_FIND_QUIETLY ON)
 set(CARES_FIND_REQUIRED ON)
 
-if (STANDALONE)
+if (USESYSTEMLIBS)
   include(FindCARes)
-else (STANDALONE)
+else (USESYSTEMLIBS)
     use_prebuilt_binary(ares)
     add_definitions("-DCARES_STATICLIB")
     if (WINDOWS)
@@ -18,4 +18,4 @@ else (STANDALONE)
         set(CARES_LIBRARIES cares)
     endif (WINDOWS)
     set(CARES_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/ares)
-endif (STANDALONE)
+endif (USESYSTEMLIBS)
diff --git a/indra/cmake/CURL.cmake b/indra/cmake/CURL.cmake
index 9aba08e573..04afae594d 100755
--- a/indra/cmake/CURL.cmake
+++ b/indra/cmake/CURL.cmake
@@ -4,9 +4,9 @@ include(Prebuilt)
 set(CURL_FIND_QUIETLY ON)
 set(CURL_FIND_REQUIRED ON)
 
-if (STANDALONE)
+if (USESYSTEMLIBS)
   include(FindCURL)
-else (STANDALONE)
+else (USESYSTEMLIBS)
   use_prebuilt_binary(curl)
   if (WINDOWS)
     set(CURL_LIBRARIES 
@@ -16,4 +16,4 @@ else (STANDALONE)
     set(CURL_LIBRARIES libcurl.a)
   endif (WINDOWS)
   set(CURL_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include)
-endif (STANDALONE)
+endif (USESYSTEMLIBS)
diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake
index 44c2d3ac27..160f18c99b 100755
--- a/indra/cmake/Copy3rdPartyLibs.cmake
+++ b/indra/cmake/Copy3rdPartyLibs.cmake
@@ -372,9 +372,9 @@ copy_if_different(
     )
 set(third_party_targets ${third_party_targets} ${out_targets})
 
-if(NOT STANDALONE)
+if(NOT USESYSTEMLIBS)
   add_custom_target(
       stage_third_party_libs ALL
       DEPENDS ${third_party_targets}
       )
-endif(NOT STANDALONE)
+endif(NOT USESYSTEMLIBS)
diff --git a/indra/cmake/DBusGlib.cmake b/indra/cmake/DBusGlib.cmake
index 83c08d3350..d148a35a5b 100755
--- a/indra/cmake/DBusGlib.cmake
+++ b/indra/cmake/DBusGlib.cmake
@@ -1,7 +1,7 @@
 # -*- cmake -*-
 include(Prebuilt)
 
-if (STANDALONE)
+if (USESYSTEMLIBS)
   include(FindPkgConfig)
 
   pkg_check_modules(DBUSGLIB REQUIRED dbus-glib-1)
@@ -18,7 +18,7 @@ elseif (LINUX)
       gobject-2.0
       glib-2.0
       )
-endif (STANDALONE)
+endif (USESYSTEMLIBS)
 
 if (DBUSGLIB_FOUND)
   set(DBUSGLIB ON CACHE BOOL "Build with dbus-glib message bus support.")
diff --git a/indra/cmake/EXPAT.cmake b/indra/cmake/EXPAT.cmake
index acb15dc623..c1155531ff 100755
--- a/indra/cmake/EXPAT.cmake
+++ b/indra/cmake/EXPAT.cmake
@@ -4,9 +4,9 @@ include(Prebuilt)
 set(EXPAT_FIND_QUIETLY ON)
 set(EXPAT_FIND_REQUIRED ON)
 
-if (STANDALONE)
+if (USESYSTEMLIBS)
   include(FindEXPAT)
-else (STANDALONE)
+else (USESYSTEMLIBS)
     use_prebuilt_binary(expat)
     if (WINDOWS)
         set(EXPAT_LIBRARIES libexpatMT)
@@ -14,4 +14,4 @@ else (STANDALONE)
         set(EXPAT_LIBRARIES expat)
     endif (WINDOWS)
     set(EXPAT_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include)
-endif (STANDALONE)
+endif (USESYSTEMLIBS)
diff --git a/indra/cmake/ExamplePlugin.cmake b/indra/cmake/ExamplePlugin.cmake
index 599787ad21..5d826c1f66 100755
--- a/indra/cmake/ExamplePlugin.cmake
+++ b/indra/cmake/ExamplePlugin.cmake
@@ -2,13 +2,13 @@
 include(Linking)
 include(Prebuilt)
 
-if (STANDALONE)
+if (USESYSTEMLIBS)
     set(EXAMPLEPLUGIN OFF CACHE BOOL
         "EXAMPLEPLUGIN support for the llplugin/llmedia test apps.")
-else (STANDALONE)
+else (USESYSTEMLIBS)
     set(EXAMPLEPLUGIN ON CACHE BOOL
         "EXAMPLEPLUGIN support for the llplugin/llmedia test apps.")
-endif (STANDALONE)
+endif (USESYSTEMLIBS)
 
 if (WINDOWS)
 elseif (DARWIN)
diff --git a/indra/cmake/FMODEX.cmake b/indra/cmake/FMODEX.cmake
index 65bc1cabeb..720933d1b7 100644
--- a/indra/cmake/FMODEX.cmake
+++ b/indra/cmake/FMODEX.cmake
@@ -4,17 +4,17 @@
 # When building using proprietary binaries though (i.e. having access to LL private servers),
 # we always build with FMODEX.
 # Open source devs should use the -DFMODEX:BOOL=ON then if they want to build with FMOD, whether
-# they are using STANDALONE or not.
+# they are using USESYSTEMLIBS or not.
 if (INSTALL_PROPRIETARY)
   set(FMODEX ON CACHE BOOL "Using FMOD Ex sound library.")
 endif (INSTALL_PROPRIETARY)
 
 if (FMODEX)
-  if (STANDALONE)
+  if (USESYSTEMLIBS)
     # In that case, we use the version of the library installed on the system
     set(FMODEX_FIND_REQUIRED ON)
     include(FindFMODEX)
-  else (STANDALONE)
+  else (USESYSTEMLIBS)
     if (FMODEX_LIBRARY AND FMODEX_INCLUDE_DIR)
       # If the path have been specified in the arguments, use that
       set(FMODEX_LIBRARIES ${FMODEX_LIBRARY})
@@ -41,6 +41,6 @@ if (FMODEX)
       set(FMODEX_LIBRARIES ${FMODEX_LIBRARY})
       set(FMODEX_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/include/fmodex)
     endif (FMODEX_LIBRARY AND FMODEX_INCLUDE_DIR)
-  endif (STANDALONE)
+  endif (USESYSTEMLIBS)
 endif (FMODEX)
 
diff --git a/indra/cmake/FindJsonCpp.cmake b/indra/cmake/FindJsonCpp.cmake
index 0b056ada58..9398779cff 100755
--- a/indra/cmake/FindJsonCpp.cmake
+++ b/indra/cmake/FindJsonCpp.cmake
@@ -23,10 +23,10 @@ EXEC_PROGRAM(${CMAKE_CXX_COMPILER}
 
 # Try to find a library that was compiled with the same compiler version as we currently use.
 SET(JSONCPP_NAMES ${JSONCPP_NAMES} libjson_linux-gcc-${_gcc_COMPILER_VERSION}_libmt.so)
-IF (STANDALONE)
+IF (USESYSTEMLIBS)
     # On standalone, assume that the system installed library was compiled with the used compiler.
     SET(JSONCPP_NAMES ${JSONCPP_NAMES} libjson.so)
-ENDIF (STANDALONE)
+ENDIF (USESYSTEMLIBS)
 FIND_LIBRARY(JSONCPP_LIBRARY
   NAMES ${JSONCPP_NAMES}
   PATHS /usr/lib /usr/local/lib
diff --git a/indra/cmake/FreeType.cmake b/indra/cmake/FreeType.cmake
index c9a90a9a8d..02c5b37f28 100755
--- a/indra/cmake/FreeType.cmake
+++ b/indra/cmake/FreeType.cmake
@@ -1,14 +1,14 @@
 # -*- cmake -*-
 include(Prebuilt)
 
-if (STANDALONE)
+if (USESYSTEMLIBS)
   include(FindPkgConfig)
 
   pkg_check_modules(FREETYPE REQUIRED freetype2)
-else (STANDALONE)
+else (USESYSTEMLIBS)
   use_prebuilt_binary(freetype)
   set(FREETYPE_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include)
   set(FREETYPE_LIBRARIES freetype)
-endif (STANDALONE)
+endif (USESYSTEMLIBS)
 
 link_directories(${FREETYPE_LIBRARY_DIRS})
diff --git a/indra/cmake/GLEXT.cmake b/indra/cmake/GLEXT.cmake
index 0a3dd976b4..a749644202 100644
--- a/indra/cmake/GLEXT.cmake
+++ b/indra/cmake/GLEXT.cmake
@@ -1,8 +1,8 @@
 # -*- cmake -*-
 include(Prebuilt)
 
-if (NOT STANDALONE)
+if (NOT USESYSTEMLIBS)
   use_prebuilt_binary(glext)
   use_prebuilt_binary(glh_linear)
   set(GLEXT_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/include)
-endif (NOT STANDALONE)
+endif (NOT USESYSTEMLIBS)
diff --git a/indra/cmake/GLH.cmake b/indra/cmake/GLH.cmake
index 911dbe4017..d5262f2efa 100755
--- a/indra/cmake/GLH.cmake
+++ b/indra/cmake/GLH.cmake
@@ -4,8 +4,8 @@ include(Prebuilt)
 set(GLH_FIND_REQUIRED TRUE)
 set(GLH_FIND_QUIETLY TRUE)
 
-if (STANDALONE)
+if (USESYSTEMLIBS)
   include(FindGLH)
-else (STANDALONE)
+else (USESYSTEMLIBS)
   use_prebuilt_binary(glh_linear)
-endif (STANDALONE)
+endif (USESYSTEMLIBS)
diff --git a/indra/cmake/GLOD.cmake b/indra/cmake/GLOD.cmake
index 6bdbaf621e..3683768af9 100755
--- a/indra/cmake/GLOD.cmake
+++ b/indra/cmake/GLOD.cmake
@@ -1,9 +1,9 @@
 # -*- cmake -*-
 include(Prebuilt)
 
-if (NOT STANDALONE)
+if (NOT USESYSTEMLIBS)
   use_prebuilt_binary(GLOD)
-endif (NOT STANDALONE)
+endif (NOT USESYSTEMLIBS)
 
 set(GLOD_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/include)
 set(GLOD_LIBRARIES GLOD)
diff --git a/indra/cmake/GStreamer010Plugin.cmake b/indra/cmake/GStreamer010Plugin.cmake
index d2d0699bcd..cfd8565638 100755
--- a/indra/cmake/GStreamer010Plugin.cmake
+++ b/indra/cmake/GStreamer010Plugin.cmake
@@ -1,7 +1,7 @@
 # -*- cmake -*-
 include(Prebuilt)
 
-if (STANDALONE)
+if (USESYSTEMLIBS)
   include(FindPkgConfig)
 
   pkg_check_modules(GSTREAMER010 REQUIRED gstreamer-0.10)
@@ -26,7 +26,7 @@ elseif (LINUX)
       gthread-2.0
       glib-2.0
       )
-endif (STANDALONE)
+endif (USESYSTEMLIBS)
 
 if (GSTREAMER010_FOUND AND GSTREAMER010_PLUGINS_BASE_FOUND)
   set(GSTREAMER010 ON CACHE BOOL "Build with GStreamer-0.10 streaming media support.")
diff --git a/indra/cmake/Glui.cmake b/indra/cmake/Glui.cmake
index f62a56856c..db353a91ec 100755
--- a/indra/cmake/Glui.cmake
+++ b/indra/cmake/Glui.cmake
@@ -2,14 +2,14 @@
 include(Linking)
 include(Prebuilt)
 
-if (STANDALONE)
+if (USESYSTEMLIBS)
     set(GLUI OFF CACHE BOOL
         "GLUI support for the llplugin/llmedia test apps.")
-else (STANDALONE)
+else (USESYSTEMLIBS)
     use_prebuilt_binary(glui)
     set(GLUI ON CACHE BOOL
         "GLUI support for the llplugin/llmedia test apps.")
-endif (STANDALONE)
+endif (USESYSTEMLIBS)
 
 if (LINUX)
     set(GLUI ON CACHE BOOL
diff --git a/indra/cmake/GoogleBreakpad.cmake b/indra/cmake/GoogleBreakpad.cmake
index 96e22791ec..a41815f7b7 100755
--- a/indra/cmake/GoogleBreakpad.cmake
+++ b/indra/cmake/GoogleBreakpad.cmake
@@ -1,10 +1,10 @@
 # -*- cmake -*-
 include(Prebuilt)
 
-if (STANDALONE)
+if (USESYSTEMLIBS)
   set(BREAKPAD_EXCEPTION_HANDLER_FIND_REQUIRED ON)
   include(FindGoogleBreakpad)
-else (STANDALONE)
+else (USESYSTEMLIBS)
   use_prebuilt_binary(google_breakpad)
   if (DARWIN)
     set(BREAKPAD_EXCEPTION_HANDLER_LIBRARIES exception_handler)
@@ -18,5 +18,5 @@ else (STANDALONE)
   # yes, this does look dumb, no, it's not incorrect
   #
   set(BREAKPAD_INCLUDE_DIRECTORIES "${LIBS_PREBUILT_DIR}/include/google_breakpad" "${LIBS_PREBUILT_DIR}/include/google_breakpad/google_breakpad")
-endif (STANDALONE)
+endif (USESYSTEMLIBS)
 
diff --git a/indra/cmake/GooglePerfTools.cmake b/indra/cmake/GooglePerfTools.cmake
index f3fd008e49..c1faeb9325 100755
--- a/indra/cmake/GooglePerfTools.cmake
+++ b/indra/cmake/GooglePerfTools.cmake
@@ -5,9 +5,9 @@ include(Prebuilt)
 # set ON or OFF as desired.
 set (USE_TCMALLOC OFF)
 
-if (STANDALONE)
+if (USESYSTEMLIBS)
   include(FindGooglePerfTools)
-else (STANDALONE)
+else (USESYSTEMLIBS)
   if (WINDOWS)
     if (USE_TCMALLOC)
        use_prebuilt_binary(gperftools)
@@ -34,7 +34,7 @@ else (STANDALONE)
         ${LIBS_PREBUILT_DIR}/include)
     set(GOOGLE_PERFTOOLS_FOUND "YES")
   endif (LINUX)
-endif (STANDALONE)
+endif (USESYSTEMLIBS)
 
 if (GOOGLE_PERFTOOLS_FOUND)
   # XXX Disable temporarily, until we have compilation issues on 64-bit
diff --git a/indra/cmake/Hunspell.cmake b/indra/cmake/Hunspell.cmake
index 0c9cf93316..ef74d95b2a 100755
--- a/indra/cmake/Hunspell.cmake
+++ b/indra/cmake/Hunspell.cmake
@@ -4,9 +4,9 @@ include(Prebuilt)
 set(HUNSPELL_FIND_QUIETLY ON)
 set(HUNSPELL_FIND_REQUIRED ON)
 
-if (STANDALONE)
+if (USESYSTEMLIBS)
   include(FindHUNSPELL)
-else (STANDALONE)
+else (USESYSTEMLIBS)
   use_prebuilt_binary(libhunspell)
   if (WINDOWS)
     set(HUNSPELL_LIBRARY libhunspell)
@@ -19,4 +19,4 @@ else (STANDALONE)
   endif()
   set(HUNSPELL_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/hunspell)
   use_prebuilt_binary(dictionaries)
-endif (STANDALONE)
+endif (USESYSTEMLIBS)
diff --git a/indra/cmake/JPEG.cmake b/indra/cmake/JPEG.cmake
index 4f99efd602..d6da22aecc 100755
--- a/indra/cmake/JPEG.cmake
+++ b/indra/cmake/JPEG.cmake
@@ -5,9 +5,9 @@ include(Linking)
 set(JPEG_FIND_QUIETLY ON)
 set(JPEG_FIND_REQUIRED ON)
 
-if (STANDALONE)
+if (USESYSTEMLIBS)
   include(FindJPEG)
-else (STANDALONE)
+else (USESYSTEMLIBS)
   use_prebuilt_binary(jpeglib)
   if (LINUX)
     set(JPEG_LIBRARIES jpeg)
@@ -17,4 +17,4 @@ else (STANDALONE)
     set(JPEG_LIBRARIES jpeglib)
   endif (LINUX)
   set(JPEG_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include)
-endif (STANDALONE)
+endif (USESYSTEMLIBS)
diff --git a/indra/cmake/JsonCpp.cmake b/indra/cmake/JsonCpp.cmake
index 7ad73e5683..0aab2d6634 100755
--- a/indra/cmake/JsonCpp.cmake
+++ b/indra/cmake/JsonCpp.cmake
@@ -5,9 +5,9 @@ include(Prebuilt)
 set(JSONCPP_FIND_QUIETLY ON)
 set(JSONCPP_FIND_REQUIRED ON)
 
-if (STANDALONE)
+if (USESYSTEMLIBS)
   include(FindJsonCpp)
-else (STANDALONE)
+else (USESYSTEMLIBS)
   use_prebuilt_binary(jsoncpp)
   if (WINDOWS)
     set(JSONCPP_LIBRARIES 
@@ -19,4 +19,4 @@ else (STANDALONE)
     set(JSONCPP_LIBRARIES libjson_linux-gcc-4.1.3_libmt.a)
   endif (WINDOWS)
   set(JSONCPP_INCLUDE_DIR "${LIBS_PREBUILT_DIR}/include/jsoncpp" "${LIBS_PREBUILT_DIR}/include/json")
-endif (STANDALONE)
+endif (USESYSTEMLIBS)
diff --git a/indra/cmake/LLAddBuildTest.cmake b/indra/cmake/LLAddBuildTest.cmake
index 9bb3077797..4e6c41e528 100644
--- a/indra/cmake/LLAddBuildTest.cmake
+++ b/indra/cmake/LLAddBuildTest.cmake
@@ -202,9 +202,9 @@ FUNCTION(LL_ADD_INTEGRATION_TEST
   ADD_EXECUTABLE(INTEGRATION_TEST_${testname} ${source_files})
   SET_TARGET_PROPERTIES(INTEGRATION_TEST_${testname} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${EXE_STAGING_DIR}")
 
-  if(STANDALONE)
+  if(USESYSTEMLIBS)
     SET_TARGET_PROPERTIES(INTEGRATION_TEST_${testname} PROPERTIES COMPILE_FLAGS -I"${TUT_INCLUDE_DIR}")
-  endif(STANDALONE)
+  endif(USESYSTEMLIBS)
 
   # The following was copied to llcorehttp/CMakeLists.txt's texture_load target. 
   # Any changes made here should be replicated there.
@@ -275,10 +275,10 @@ MACRO(SET_TEST_PATH LISTVAR)
     set(${LISTVAR} ${SHARED_LIB_STAGING_DIR}/${CMAKE_CFG_INTDIR}/Resources ${SHARED_LIB_STAGING_DIR}/Release/Resources /usr/lib)
   ELSE(WINDOWS)
     # Linux uses a single staging directory anyway.
-    IF (STANDALONE)
+    IF (USESYSTEMLIBS)
       set(${LISTVAR} ${CMAKE_BINARY_DIR}/llcommon /usr/lib /usr/local/lib)
-    ELSE (STANDALONE)
+    ELSE (USESYSTEMLIBS)
       set(${LISTVAR} ${SHARED_LIB_STAGING_DIR} /usr/lib)
-    ENDIF (STANDALONE)
+    ENDIF (USESYSTEMLIBS)
   ENDIF(WINDOWS)
 ENDMACRO(SET_TEST_PATH)
diff --git a/indra/cmake/LLWindow.cmake b/indra/cmake/LLWindow.cmake
index ad732ef650..ba07a80f05 100755
--- a/indra/cmake/LLWindow.cmake
+++ b/indra/cmake/LLWindow.cmake
@@ -4,7 +4,7 @@ include(Variables)
 include(GLEXT)
 include(Prebuilt)
 
-if (STANDALONE)
+if (USESYSTEMLIBS)
   include(FindSDL)
 
   # This should be done by FindSDL.  Sigh.
@@ -13,14 +13,14 @@ if (STANDALONE)
       SDL_INCLUDE_DIR
       SDL_LIBRARY
       )
-else (STANDALONE)
+else (USESYSTEMLIBS)
   if (LINUX)
     use_prebuilt_binary(SDL)
     set (SDL_FOUND TRUE)
     set (SDL_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/i686-linux)
     set (SDL_LIBRARY SDL directfb fusion direct)
   endif (LINUX)
-endif (STANDALONE)
+endif (USESYSTEMLIBS)
 
 if (SDL_FOUND)
   include_directories(${SDL_INCLUDE_DIR})
diff --git a/indra/cmake/NDOF.cmake b/indra/cmake/NDOF.cmake
index be6fe415f2..e72845db53 100755
--- a/indra/cmake/NDOF.cmake
+++ b/indra/cmake/NDOF.cmake
@@ -4,10 +4,10 @@ include(Prebuilt)
 set(NDOF ON CACHE BOOL "Use NDOF space navigator joystick library.")
 
 if (NDOF)
-  if (STANDALONE)
+  if (USESYSTEMLIBS)
     set(NDOF_FIND_REQUIRED ON)
     include(FindNDOF)
-  else (STANDALONE)
+  else (USESYSTEMLIBS)
     use_prebuilt_binary(ndofdev)
 
     if (WINDOWS)
@@ -18,7 +18,7 @@ if (NDOF)
 
     set(NDOF_INCLUDE_DIR ${ARCH_PREBUILT_DIRS}/include/ndofdev)
     set(NDOF_FOUND 1)
-  endif (STANDALONE)
+  endif (USESYSTEMLIBS)
 endif (NDOF)
 
 if (NDOF_FOUND)
diff --git a/indra/cmake/OPENAL.cmake b/indra/cmake/OPENAL.cmake
index a3e1fb924e..c084d68de7 100755
--- a/indra/cmake/OPENAL.cmake
+++ b/indra/cmake/OPENAL.cmake
@@ -10,14 +10,14 @@ endif (LINUX)
 
 if (OPENAL)
   set(OPENAL_LIB_INCLUDE_DIRS "${LIBS_PREBUILT_DIR}/include/AL")
-  if (STANDALONE)
+  if (USESYSTEMLIBS)
     include(FindPkgConfig)
     include(FindOpenAL)
     pkg_check_modules(OPENAL_LIB REQUIRED openal)
     pkg_check_modules(FREEALUT_LIB REQUIRED freealut)
-  else (STANDALONE)
+  else (USESYSTEMLIBS)
     use_prebuilt_binary(openal_soft)
-  endif (STANDALONE)
+  endif (USESYSTEMLIBS)
   if(WINDOWS)
     set(OPENAL_LIBRARIES 
       OpenAL32
diff --git a/indra/cmake/OpenJPEG.cmake b/indra/cmake/OpenJPEG.cmake
index fcc82c2f49..bf0bde2ba7 100755
--- a/indra/cmake/OpenJPEG.cmake
+++ b/indra/cmake/OpenJPEG.cmake
@@ -4,9 +4,9 @@ include(Prebuilt)
 set(OPENJPEG_FIND_QUIETLY ON)
 set(OPENJPEG_FIND_REQUIRED ON)
 
-if (STANDALONE)
+if (USESYSTEMLIBS)
   include(FindOpenJPEG)
-else (STANDALONE)
+else (USESYSTEMLIBS)
   use_prebuilt_binary(openjpeg)
   
   if(WINDOWS)
@@ -19,4 +19,4 @@ else (STANDALONE)
   endif(WINDOWS)
   
     set(OPENJPEG_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/include/openjpeg)
-endif (STANDALONE)
+endif (USESYSTEMLIBS)
diff --git a/indra/cmake/OpenSSL.cmake b/indra/cmake/OpenSSL.cmake
index 2704912eb5..5b469f74f9 100755
--- a/indra/cmake/OpenSSL.cmake
+++ b/indra/cmake/OpenSSL.cmake
@@ -4,9 +4,9 @@ include(Prebuilt)
 set(OpenSSL_FIND_QUIETLY ON)
 set(OpenSSL_FIND_REQUIRED ON)
 
-if (STANDALONE)
+if (USESYSTEMLIBS)
   include(FindOpenSSL)
-else (STANDALONE)
+else (USESYSTEMLIBS)
   use_prebuilt_binary(openSSL)
   if (WINDOWS)
     set(OPENSSL_LIBRARIES ssleay32 libeay32)
@@ -14,7 +14,7 @@ else (STANDALONE)
     set(OPENSSL_LIBRARIES ssl crypto)
   endif (WINDOWS)
   set(OPENSSL_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include)
-endif (STANDALONE)
+endif (USESYSTEMLIBS)
 
 if (LINUX)
   set(CRYPTO_LIBRARIES crypto)
diff --git a/indra/cmake/PNG.cmake b/indra/cmake/PNG.cmake
index 913c575672..173d59391e 100755
--- a/indra/cmake/PNG.cmake
+++ b/indra/cmake/PNG.cmake
@@ -4,9 +4,9 @@ include(Prebuilt)
 set(PNG_FIND_QUIETLY ON)
 set(PNG_FIND_REQUIRED ON)
 
-if (STANDALONE)
+if (USESYSTEMLIBS)
   include(FindPNG)
-else (STANDALONE)
+else (USESYSTEMLIBS)
   use_prebuilt_binary(libpng)
   if (WINDOWS)
     set(PNG_LIBRARIES libpng15)
@@ -18,4 +18,4 @@ else (STANDALONE)
     set(PNG_LIBRARIES png15)
     set(PNG_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/libpng15)
   endif()
-endif (STANDALONE)
+endif (USESYSTEMLIBS)
diff --git a/indra/cmake/Prebuilt.cmake b/indra/cmake/Prebuilt.cmake
index ac0cbde253..c3fd8f1666 100755
--- a/indra/cmake/Prebuilt.cmake
+++ b/indra/cmake/Prebuilt.cmake
@@ -18,7 +18,7 @@ endif(INSTALL_PROPRIETARY)
 # ${CMAKE_BINARY_DIR}/temp/${_binary}_installed)
 macro (use_prebuilt_binary _binary)
   if (NOT DEFINED STANDALONE_${_binary})
-    set(STANDALONE_${_binary} ${STANDALONE})
+    set(STANDALONE_${_binary} ${USESYSTEMLIBS})
   endif (NOT DEFINED STANDALONE_${_binary})
 
   if (NOT STANDALONE_${_binary})
diff --git a/indra/cmake/PulseAudio.cmake b/indra/cmake/PulseAudio.cmake
index 360a971058..cce27f1bdd 100755
--- a/indra/cmake/PulseAudio.cmake
+++ b/indra/cmake/PulseAudio.cmake
@@ -4,7 +4,7 @@ include(Prebuilt)
 set(PULSEAUDIO OFF CACHE BOOL "Build with PulseAudio support, if available.")
 
 if (PULSEAUDIO)
-  if (STANDALONE)
+  if (USESYSTEMLIBS)
     include(FindPkgConfig)
 
     pkg_check_modules(PULSEAUDIO libpulse)
@@ -20,7 +20,7 @@ if (PULSEAUDIO)
     set(PULSEAUDIO_LIBRARIES
       # none needed!
       )
-  endif (STANDALONE)
+  endif (USESYSTEMLIBS)
 endif (PULSEAUDIO)
 
 if (PULSEAUDIO_FOUND)
diff --git a/indra/cmake/Tut.cmake b/indra/cmake/Tut.cmake
index 7488e9dcb0..e11a3c3314 100755
--- a/indra/cmake/Tut.cmake
+++ b/indra/cmake/Tut.cmake
@@ -1,6 +1,6 @@
 # -*- cmake -*-
 include(Prebuilt)
 
-if (NOT STANDALONE)
+if (NOT USESYSTEMLIBS)
   use_prebuilt_binary(tut)
-endif(NOT STANDALONE)
+endif(NOT USESYSTEMLIBS)
diff --git a/indra/cmake/UI.cmake b/indra/cmake/UI.cmake
index d0fd4df03a..58acdc22bd 100755
--- a/indra/cmake/UI.cmake
+++ b/indra/cmake/UI.cmake
@@ -2,7 +2,7 @@
 include(Prebuilt)
 include(FreeType)
 
-if (STANDALONE)
+if (USESYSTEMLIBS)
   include(FindPkgConfig)
     
   if (LINUX)
@@ -31,7 +31,7 @@ if (STANDALONE)
     list(APPEND UI_LIBRARIES ${${pkg}_LIBRARIES})
     add_definitions(${${pkg}_CFLAGS_OTHERS})
   endforeach(pkg)
-else (STANDALONE)
+else (USESYSTEMLIBS)
   use_prebuilt_binary(gtk-atk-pango-glib)
   if (LINUX)
     set(UI_LIBRARIES
@@ -59,7 +59,7 @@ else (STANDALONE)
   foreach(include ${${LL_ARCH}_INCLUDES})
       include_directories(${LIBS_PREBUILT_DIR}/include/${include})
   endforeach(include)
-endif (STANDALONE)
+endif (USESYSTEMLIBS)
 
 if (LINUX)
   add_definitions(-DLL_GTK=1 -DLL_X11=1)
diff --git a/indra/cmake/Variables.cmake b/indra/cmake/Variables.cmake
index 22d0a7f0fe..963b1bd386 100755
--- a/indra/cmake/Variables.cmake
+++ b/indra/cmake/Variables.cmake
@@ -183,7 +183,7 @@ if (XCODE_VERSION GREATER 4.2)
 endif (XCODE_VERSION GREATER 4.2)
 
 set(VERSION_BUILD "0" CACHE STRING "Revision number passed in from the outside")
-set(STANDALONE OFF CACHE BOOL "Do not use Linden-supplied prebuilt libraries.")
+set(USESYSTEMLIBS OFF CACHE BOOL "Use libraries from your system rather than Linden-supplied prebuilt libraries.")
 set(UNATTENDED OFF CACHE BOOL "Should be set to ON for building with VC Express editions.")
 
 set(USE_PRECOMPILED_HEADERS ON CACHE BOOL "Enable use of precompiled header directives where supported.")
diff --git a/indra/cmake/ViewerMiscLibs.cmake b/indra/cmake/ViewerMiscLibs.cmake
index 5b00c989a4..d4be24799f 100755
--- a/indra/cmake/ViewerMiscLibs.cmake
+++ b/indra/cmake/ViewerMiscLibs.cmake
@@ -1,10 +1,10 @@
 # -*- cmake -*-
 include(Prebuilt)
 
-if (NOT STANDALONE)
+if (NOT USESYSTEMLIBS)
   use_prebuilt_binary(libhunspell)
   use_prebuilt_binary(libuuid)
   use_prebuilt_binary(slvoice)
   use_prebuilt_binary(fontconfig)
-endif(NOT STANDALONE)
+endif(NOT USESYSTEMLIBS)
 
diff --git a/indra/cmake/WebKitLibPlugin.cmake b/indra/cmake/WebKitLibPlugin.cmake
index d9df78bfc8..76f2c148db 100755
--- a/indra/cmake/WebKitLibPlugin.cmake
+++ b/indra/cmake/WebKitLibPlugin.cmake
@@ -2,7 +2,7 @@
 include(Linking)
 include(Prebuilt)
 
-if (STANDALONE)
+if (USESYSTEMLIBS)
   # The minimal version, 4.4.3, is rather arbitrary: it's the version in Debian/Lenny.
   find_package(Qt4 4.4.3 COMPONENTS QtCore QtGui QtNetwork QtOpenGL QtWebKit REQUIRED)
   include(${QT_USE_FILE})
@@ -28,11 +28,11 @@ if (STANDALONE)
   list(APPEND QT_PLUGIN_LIBRARIES jpeg)
     set(WEBKITLIBPLUGIN OFF CACHE BOOL
         "WEBKITLIBPLUGIN support for the llplugin/llmedia test apps.")
-else (STANDALONE)
+else (USESYSTEMLIBS)
     use_prebuilt_binary(llqtwebkit)
     set(WEBKITLIBPLUGIN ON CACHE BOOL
         "WEBKITLIBPLUGIN support for the llplugin/llmedia test apps.")
-endif (STANDALONE)
+endif (USESYSTEMLIBS)
 
 if (WINDOWS)
     set(WEBKIT_PLUGIN_LIBRARIES 
diff --git a/indra/cmake/XmlRpcEpi.cmake b/indra/cmake/XmlRpcEpi.cmake
index 5bd4848245..3a0caa0a06 100755
--- a/indra/cmake/XmlRpcEpi.cmake
+++ b/indra/cmake/XmlRpcEpi.cmake
@@ -4,9 +4,9 @@ include(Prebuilt)
 set(XMLRPCEPI_FIND_QUIETLY ON)
 set(XMLRPCEPI_FIND_REQUIRED ON)
 
-if (STANDALONE)
+if (USESYSTEMLIBS)
   include(FindXmlRpcEpi)
-else (STANDALONE)
+else (USESYSTEMLIBS)
     use_prebuilt_binary(xmlrpc-epi)
     if (WINDOWS)
         set(XMLRPCEPI_LIBRARIES 
@@ -17,4 +17,4 @@ else (STANDALONE)
         set(XMLRPCEPI_LIBRARIES xmlrpc-epi)
     endif (WINDOWS)
     set(XMLRPCEPI_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include)
-endif (STANDALONE)
+endif (USESYSTEMLIBS)
diff --git a/indra/cmake/ZLIB.cmake b/indra/cmake/ZLIB.cmake
index 48e5130ad5..b99a8644c9 100755
--- a/indra/cmake/ZLIB.cmake
+++ b/indra/cmake/ZLIB.cmake
@@ -5,9 +5,9 @@ set(ZLIB_FIND_REQUIRED ON)
 
 include(Prebuilt)
 
-if (STANDALONE)
+if (USESYSTEMLIBS)
   include(FindZLIB)
-else (STANDALONE)
+else (USESYSTEMLIBS)
   use_prebuilt_binary(zlib)
   if (WINDOWS)
     set(ZLIB_LIBRARIES 
@@ -19,4 +19,4 @@ else (STANDALONE)
   if (WINDOWS OR LINUX)
     set(ZLIB_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/zlib)
   endif (WINDOWS OR LINUX)
-endif (STANDALONE)
+endif (USESYSTEMLIBS)
diff --git a/indra/llcommon/llsdserialize.cpp b/indra/llcommon/llsdserialize.cpp
index ad4fce6f35..77841918ca 100755
--- a/indra/llcommon/llsdserialize.cpp
+++ b/indra/llcommon/llsdserialize.cpp
@@ -34,7 +34,7 @@
 #include <iostream>
 #include "apr_base64.h"
 
-#ifdef LL_STANDALONE
+#ifdef LL_USESYSTEMLIBS
 # include <zlib.h>
 #else
 # include "zlib/zlib.h"  // for davep's dirty little zip functions
diff --git a/indra/llcommon/llsdserialize_xml.cpp b/indra/llcommon/llsdserialize_xml.cpp
index 614a2d5636..4f2a652044 100755
--- a/indra/llcommon/llsdserialize_xml.cpp
+++ b/indra/llcommon/llsdserialize_xml.cpp
@@ -35,7 +35,7 @@
 
 extern "C"
 {
-#ifdef LL_STANDALONE
+#ifdef LL_USESYSTEMLIBS
 # include <expat.h>
 #else
 # include "expat/expat.h"
diff --git a/indra/llcommon/llsys.cpp b/indra/llcommon/llsys.cpp
index e63045659e..436745c5e4 100755
--- a/indra/llcommon/llsys.cpp
+++ b/indra/llcommon/llsys.cpp
@@ -33,7 +33,7 @@
 #include "llsys.h"
 
 #include <iostream>
-#ifdef LL_STANDALONE
+#ifdef LL_USESYSTEMLIBS
 # include <zlib.h>
 #else
 # include "zlib/zlib.h"
diff --git a/indra/llimage/llimagejpeg.h b/indra/llimage/llimagejpeg.h
index 7ac7f5d2e0..3d364551a9 100755
--- a/indra/llimage/llimagejpeg.h
+++ b/indra/llimage/llimagejpeg.h
@@ -32,7 +32,7 @@
 #include "llimage.h"
 
 extern "C" {
-#ifdef LL_STANDALONE
+#ifdef LL_USESYSTEMLIBS
 # include <jpeglib.h>
 # include <jerror.h>
 #else
diff --git a/indra/llmessage/llares.h b/indra/llmessage/llares.h
index 800781ee88..675120c621 100755
--- a/indra/llmessage/llares.h
+++ b/indra/llmessage/llares.h
@@ -39,7 +39,7 @@
 # pragma warning(pop)
 #endif
 
-#ifdef LL_STANDALONE
+#ifdef LL_USESYSTEMLIBS
 # include <ares.h>
 #else
 # include <ares/ares.h>
diff --git a/indra/llmessage/llhttpassetstorage.cpp b/indra/llmessage/llhttpassetstorage.cpp
index 7dcf160c9b..9a6b1e0eb7 100755
--- a/indra/llmessage/llhttpassetstorage.cpp
+++ b/indra/llmessage/llhttpassetstorage.cpp
@@ -37,7 +37,7 @@
 #include "llvfile.h"
 #include "llvfs.h"
 
-#ifdef LL_STANDALONE
+#ifdef LL_USESYSTEMLIBS
 # include <zlib.h>
 #else
 # include "zlib/zlib.h"
diff --git a/indra/llprimitive/llmodel.cpp b/indra/llprimitive/llmodel.cpp
index 34e0483a83..36d9232cca 100755
--- a/indra/llprimitive/llmodel.cpp
+++ b/indra/llprimitive/llmodel.cpp
@@ -44,7 +44,7 @@
 #pragma warning (default : 4264)
 #endif
 
-#ifdef LL_STANDALONE
+#ifdef LL_USESYSTEMLIBS
 # include <zlib.h>
 #else
 # include "zlib/zlib.h"
diff --git a/indra/llui/llxuiparser.cpp b/indra/llui/llxuiparser.cpp
index 6322da9123..0b84b9f694 100755
--- a/indra/llui/llxuiparser.cpp
+++ b/indra/llui/llxuiparser.cpp
@@ -30,7 +30,7 @@
 
 #include "llxmlnode.h"
 
-#ifdef LL_STANDALONE
+#ifdef LL_USESYSTEMLIBS
 #include <expat.h>
 #else
 #include "expat/expat.h"
diff --git a/indra/llxml/llxmlnode.h b/indra/llxml/llxmlnode.h
index ec486d7957..c1c0bfe5d0 100755
--- a/indra/llxml/llxmlnode.h
+++ b/indra/llxml/llxmlnode.h
@@ -30,7 +30,7 @@
 #ifndef XML_STATIC
 #define XML_STATIC
 #endif
-#ifdef LL_STANDALONE
+#ifdef LL_USESYSTEMLIBS
 #include <expat.h>
 #else
 #include "expat/expat.h"
diff --git a/indra/llxml/llxmlparser.h b/indra/llxml/llxmlparser.h
index e0f8b69452..a5b210404f 100755
--- a/indra/llxml/llxmlparser.h
+++ b/indra/llxml/llxmlparser.h
@@ -30,7 +30,7 @@
 #ifndef XML_STATIC
 #define XML_STATIC
 #endif
-#ifdef LL_STANDALONE
+#ifdef LL_USESYSTEMLIBS
 #include <expat.h>
 #else
 #include "expat/expat.h"
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index 17e340d136..deda6f2005 100755
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -1455,9 +1455,9 @@ if (WINDOWS)
 
     SOURCE_GROUP("Resource Files" FILES ${viewer_RESOURCE_FILES})
 
-    if (NOT STANDALONE)
+    if (NOT USESYSTEMLIBS)
         list(APPEND viewer_SOURCE_FILES ${viewer_RESOURCE_FILES})
-    endif (NOT STANDALONE)
+    endif (NOT USESYSTEMLIBS)
 
     find_library(DINPUT_LIBRARY dinput8 ${DIRECTX_LIBRARY_DIR})
     find_library(DXGUID_LIBRARY dxguid ${DIRECTX_LIBRARY_DIR})
@@ -1568,9 +1568,9 @@ source_group("Character File" FILES ${viewer_CHARACTER_FILES})
 
 set_source_files_properties(${viewer_CHARACTER_FILES}
                             PROPERTIES HEADER_FILE_ONLY TRUE)
-if (NOT STANDALONE)
+if (NOT USESYSTEMLIBS)
     list(APPEND viewer_SOURCE_FILES ${viewer_CHARACTER_FILES})
-endif (NOT STANDALONE)
+endif (NOT USESYSTEMLIBS)
 
 if (WINDOWS)
   file(GLOB viewer_INSTALLER_FILES installers/windows/*.nsi)
diff --git a/indra/newview/llviewerobjectlist.cpp b/indra/newview/llviewerobjectlist.cpp
index f667c2bf33..33c900ea74 100755
--- a/indra/newview/llviewerobjectlist.cpp
+++ b/indra/newview/llviewerobjectlist.cpp
@@ -68,7 +68,7 @@
 #include "u64.h"
 #include "llviewertexturelist.h"
 #include "lldatapacker.h"
-#ifdef LL_STANDALONE
+#ifdef LL_USESYSTEMLIBS
 #include <zlib.h>
 #else
 #include "zlib/zlib.h"
diff --git a/indra/newview/llvoicevivox.cpp b/indra/newview/llvoicevivox.cpp
index 050d9dd785..b9856e3a83 100755
--- a/indra/newview/llvoicevivox.cpp
+++ b/indra/newview/llvoicevivox.cpp
@@ -35,7 +35,7 @@
 #include "llbufferstream.h"
 #include "llfile.h"
 #include "llmenugl.h"
-#ifdef LL_STANDALONE
+#ifdef LL_USESYSTEMLIBS
 # include "expat.h"
 #else
 # include "expat/expat.h"
diff --git a/indra/newview/llvoicevivox.h b/indra/newview/llvoicevivox.h
index c325d72ba6..5e876fa2ef 100755
--- a/indra/newview/llvoicevivox.h
+++ b/indra/newview/llvoicevivox.h
@@ -38,7 +38,7 @@ class LLVivoxProtocolParser;
 #include "llviewerregion.h"
 #include "llcallingcard.h"   // for LLFriendObserver
 
-#ifdef LL_STANDALONE
+#ifdef LL_USESYSTEMLIBS
 # include "expat.h"
 #else
 # include "expat/expat.h"
-- 
cgit v1.2.3


From 8e53c5bfb0e9feffa0450b362f21f56036b9b75c Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Wed, 26 Mar 2014 20:31:05 +0000
Subject: storm-1831 Removing the callback after first region crossing.
 Prevents repeated callbacks after highlighting has been removed for live
 script.

---
 indra/newview/llpreviewscript.cpp | 9 +++------
 indra/newview/llpreviewscript.h   | 1 +
 2 files changed, 4 insertions(+), 6 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp
index 4c6f4fd3ba..84e7a1650d 100755
--- a/indra/newview/llpreviewscript.cpp
+++ b/indra/newview/llpreviewscript.cpp
@@ -434,7 +434,7 @@ void LLScriptEdCore::updateKeywords()
 	if (mLive)
 	{
 		clearHighlights();
-		gAgent.removeRegionChangedCallback(mRegionChangedCallback);
+		mRegionChangedCallback.disconnect();
 	}
 	else
 	{
@@ -458,9 +458,7 @@ void LLScriptEdCore::processLoaded()
 
 void LLScriptEdCore::clearHighlights()
 {
-	mEditor->mKeywords.clearLoaded();
 	mEditor->clearSegments();
-	mEditor->mKeywords.clear();
 }
 
 void LLScriptEdCore::processKeywords()
@@ -1309,7 +1307,7 @@ void* LLPreviewLSL::createScriptEdPanel(void* userdata)
 								   LLPreviewLSL::onSearchReplace,
 								   self,
 								   0);
-
+	self->mScriptEd->mLive = false;
 	return self->mScriptEd;
 }
 
@@ -1324,7 +1322,7 @@ LLPreviewLSL::LLPreviewLSL(const LLSD& key )
 // virtual
 BOOL LLPreviewLSL::postBuild()
 {
-	const LLInventoryItem* item = getItem();	
+	const LLInventoryItem* item = getItem();
 
 	llassert(item);
 	if (item)
@@ -1756,7 +1754,6 @@ void LLPreviewLSL::onLoadComplete( LLVFS *vfs, const LLUUID& asset_uuid, LLAsset
 //static 
 void* LLLiveLSLEditor::createScriptEdPanel(void* userdata)
 {
-	
 	LLLiveLSLEditor *self = (LLLiveLSLEditor*)userdata;
 
 	self->mScriptEd =  new LLScriptEdCore(
diff --git a/indra/newview/llpreviewscript.h b/indra/newview/llpreviewscript.h
index 0841c8188b..dc4f828cf1 100755
--- a/indra/newview/llpreviewscript.h
+++ b/indra/newview/llpreviewscript.h
@@ -162,6 +162,7 @@ private:
 	LLScriptEdContainer* mContainer; // parent view
 
 public:
+	boost::signals2::connection mFileFetchedCallback;
 	boost::signals2::connection mRegionChangedCallback;
 
 };
-- 
cgit v1.2.3


From 0fddf9656b5ff704859f590eac9df522cbe39ef0 Mon Sep 17 00:00:00 2001
From: Nat Goodspeed <nat@lindenlab.com>
Date: Thu, 27 Mar 2014 20:03:08 -0400
Subject: DRTVWR-363: re-enable commented-out
 LLNotificationsListener::listChannels() and its caller.

---
 indra/llui/llnotificationslistener.cpp | 11 +++--------
 1 file changed, 3 insertions(+), 8 deletions(-)

(limited to 'indra')

diff --git a/indra/llui/llnotificationslistener.cpp b/indra/llui/llnotificationslistener.cpp
index 9e8e943ee6..3bbeb3a778 100644
--- a/indra/llui/llnotificationslistener.cpp
+++ b/indra/llui/llnotificationslistener.cpp
@@ -42,11 +42,10 @@ LLNotificationsListener::LLNotificationsListener(LLNotifications & notifications
         "Add a notification with specified [\"name\"], [\"substitutions\"] and [\"payload\"].\n"
         "If optional [\"reply\"] specified, arrange to send user response on that LLEventPump.",
         &LLNotificationsListener::requestAdd);
-    /*    add("listChannels",
+    add("listChannels",
         "Post to [\"reply\"] a map of info on existing channels",
         &LLNotificationsListener::listChannels,
         LLSD().with("reply", LLSD()));
-    */
     add("listChannelNotifications",
         "Post to [\"reply\"] an array of info on notifications in channel [\"channel\"]",
         &LLNotificationsListener::listChannelNotifications,
@@ -117,15 +116,11 @@ void LLNotificationsListener::NotificationResponder(const std::string& reply_pum
 	reponse_event["response"] = response;
 	LLEventPumps::getInstance()->obtain(reply_pump).post(reponse_event);
 }
-/*
+
 void LLNotificationsListener::listChannels(const LLSD& params) const
 {
     LLReqID reqID(params);
     LLSD response(reqID.makeResponse());
-    for (LLNotifications::
-
-
-
     for (LLNotifications::ChannelMap::const_iterator cmi(mNotifications.mChannels.begin()),
                                                      cmend(mNotifications.mChannels.end());
          cmi != cmend; ++cmi)
@@ -136,7 +131,7 @@ void LLNotificationsListener::listChannels(const LLSD& params) const
     }
     LLEventPumps::instance().obtain(params["reply"]).post(response);
 }
-*/
+
 void LLNotificationsListener::listChannelNotifications(const LLSD& params) const
 {
     LLReqID reqID(params);
-- 
cgit v1.2.3


From ba892274b393550be3cc7a25ff0e8f86cc1344a9 Mon Sep 17 00:00:00 2001
From: Nat Goodspeed <nat@lindenlab.com>
Date: Fri, 28 Mar 2014 10:30:03 -0400
Subject: DRTVWR-363: Fix LLNotificationsListener::listChannels() channel walk.
 LLNotifications::ChannelMap went away when LLNotificationChannel became an
 LLInstanceTracker subclass. Iterate the universe of channels using
 LLNotificationChannel::beginInstances(), endInstances() instead. More
 troubling is that LLNotificationChannel::getParentChannelName() went away
 too. When LLNotificationChannel acquired a Params block and corresponding
 constructor, it acquired the ability to listen on multiple upstream sources.
 That meant that a single mParent string became inapplicable, and its access
 method was removed. (Curiously, mParent was not itself removed, but it was
 left unused.) Change mParent to mParents, a vector<string>, built by
 connectToChannel(). Introduce getParents(), an accessor returning an
 iterator_range over that vector. Change
 LLNotificationsListener::listChannels() to collect a "parents" key in the map
 returned for each channel, and -- for backwards compatibility -- capture the
 first entry in the "parents" array as "parent".

---
 indra/llui/llnotifications.cpp         |  1 +
 indra/llui/llnotifications.h           |  8 +++++++-
 indra/llui/llnotificationslistener.cpp | 16 +++++++++++-----
 3 files changed, 19 insertions(+), 6 deletions(-)

(limited to 'indra')

diff --git a/indra/llui/llnotifications.cpp b/indra/llui/llnotifications.cpp
index 5c288c3f03..99641ae104 100755
--- a/indra/llui/llnotifications.cpp
+++ b/indra/llui/llnotifications.cpp
@@ -1189,6 +1189,7 @@ void LLNotificationChannel::connectToChannel( const std::string& channel_name )
 	}
 	else
 	{
+		mParents.push_back(channel_name);
 		LLNotificationChannelPtr p = LLNotifications::instance().getChannel(channel_name);
 		p->connectChanged(boost::bind(&LLNotificationChannelBase::updateItem, this, _1));
 	}
diff --git a/indra/llui/llnotifications.h b/indra/llui/llnotifications.h
index 6ac4a98806..39426d9a89 100755
--- a/indra/llui/llnotifications.h
+++ b/indra/llui/llnotifications.h
@@ -88,6 +88,7 @@
 #include <boost/enable_shared_from_this.hpp>
 #include <boost/type_traits.hpp>
 #include <boost/signals2.hpp>
+#include <boost/range.hpp>
 
 #include "llevents.h"
 #include "llfunctorregistry.h"
@@ -839,6 +840,11 @@ public:
 	typedef LLNotificationSet::iterator Iterator;
     
 	std::string getName() const { return mName; }
+	typedef std::vector<std::string>::const_iterator parents_iter;
+	boost::iterator_range<parents_iter> getParents() const
+	{
+		return boost::iterator_range<parents_iter>(mParents);
+	}
     
 	void connectToChannel(const std::string& channel_name);
     
@@ -853,7 +859,7 @@ public:
 
 private:
 	std::string mName;
-	std::string mParent;
+	std::vector<std::string> mParents;
 };
 
 // An interface class to provide a clean linker seam to the LLNotifications class.
diff --git a/indra/llui/llnotificationslistener.cpp b/indra/llui/llnotificationslistener.cpp
index 3bbeb3a778..b6a32a0e78 100644
--- a/indra/llui/llnotificationslistener.cpp
+++ b/indra/llui/llnotificationslistener.cpp
@@ -32,6 +32,7 @@
 #include "llnotificationtemplate.h"
 #include "llsd.h"
 #include "llui.h"
+#include <boost/foreach.hpp>
 
 LLNotificationsListener::LLNotificationsListener(LLNotifications & notifications) :
     LLEventAPI("LLNotifications",
@@ -121,13 +122,18 @@ void LLNotificationsListener::listChannels(const LLSD& params) const
 {
     LLReqID reqID(params);
     LLSD response(reqID.makeResponse());
-    for (LLNotifications::ChannelMap::const_iterator cmi(mNotifications.mChannels.begin()),
-                                                     cmend(mNotifications.mChannels.end());
+    for (LLNotificationChannel::instance_iter cmi(LLNotificationChannel::beginInstances()),
+                                              cmend(LLNotificationChannel::endInstances());
          cmi != cmend; ++cmi)
     {
-        LLSD channelInfo;
-        channelInfo["parent"] = cmi->second->getParentChannelName();
-        response[cmi->first] = channelInfo;
+        LLSD channelInfo, parents;
+        BOOST_FOREACH(const std::string& parent, cmi->getParents())
+        {
+            parents.append(parent);
+        }
+        channelInfo["parents"] = parents;
+        channelInfo["parent"] = parents.size()? parents[0] : "";
+        response[cmi->getName()] = channelInfo;
     }
     LLEventPumps::instance().obtain(params["reply"]).post(response);
 }
-- 
cgit v1.2.3


From 8bc42784122619e3f37afabbc5888821c3430369 Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Fri, 28 Mar 2014 17:21:36 +0000
Subject: strom-1831: Cleaning out commented and unused code

---
 indra/llui/llkeywords.cpp  | 10 ----------
 indra/llui/llkeywords.h    |  1 -
 indra/newview/llsyntaxid.h |  3 ---
 3 files changed, 14 deletions(-)

(limited to 'indra')

diff --git a/indra/llui/llkeywords.cpp b/indra/llui/llkeywords.cpp
index 82b50f43ab..b495709ce0 100755
--- a/indra/llui/llkeywords.cpp
+++ b/indra/llui/llkeywords.cpp
@@ -134,16 +134,6 @@ void LLKeywords::addToken(LLKeywordToken::TOKEN_TYPE type,
 	}
 }
 
-void LLKeywords::clear()
-{
-	clearLoaded();
-	mSyntax = LLSD();
-
-	std::for_each(mWordTokenMap.begin(), mWordTokenMap.end(), DeletePairedPointer());
-	std::for_each(mLineTokenList.begin(), mLineTokenList.end(), DeletePointer());
-	std::for_each(mDelimiterTokenList.begin(), mDelimiterTokenList.end(), DeletePointer());
-}
-
 std::string LLKeywords::getArguments(LLSD& arguments)
 {
 	std::string argString = "";
diff --git a/indra/llui/llkeywords.h b/indra/llui/llkeywords.h
index de7645a5d2..689fd75bcd 100755
--- a/indra/llui/llkeywords.h
+++ b/indra/llui/llkeywords.h
@@ -110,7 +110,6 @@ public:
 	~LLKeywords();
 
 	void		addColorGroup(const std::string key_in, const LLColor4 color);
-	void		clear();
 	void		clearLoaded() { mLoaded = false; }
 	LLColor4	getColorGroup(const std::string key_in);
 	bool		isLoaded() const	{ return mLoaded; }
diff --git a/indra/newview/llsyntaxid.h b/indra/newview/llsyntaxid.h
index 1b6903f2a2..7d6e120038 100644
--- a/indra/newview/llsyntaxid.h
+++ b/indra/newview/llsyntaxid.h
@@ -54,8 +54,6 @@ public:
 	static const std::string	SIMULATOR_FEATURE;
 
 protected:
-	//LLViewerRegion*	region;
-
 	static bool		sInitialised;
 	static LLSD		sKeywordsXml;
 	static bool		sLoaded;
@@ -111,7 +109,6 @@ protected:
 	void			setFileNameCurrent(std::string& name) { mFileNameCurrent = name; }
 	void			setFileNameDefault(std::string& name) { mFileNameDefault = name; }
 	void			setFileNameNew(std::string name) { mFileNameNew = name; }
-//	void			setSimulatorFeatureName(const std::string& name) { mSimulatorFeature = name; }
 };
 
 
-- 
cgit v1.2.3


From 08ca5279ffbf3e47fc42a32e38339ce806df1741 Mon Sep 17 00:00:00 2001
From: Ima Mechanique <ima.mechanique@secondlife.com>
Date: Fri, 28 Mar 2014 21:32:30 +0000
Subject: storm-1831: Fixing the remaining LL_ERRS.

---
 indra/newview/llsyntaxid.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'indra')

diff --git a/indra/newview/llsyntaxid.cpp b/indra/newview/llsyntaxid.cpp
index 80511cd73f..14265fd3af 100644
--- a/indra/newview/llsyntaxid.cpp
+++ b/indra/newview/llsyntaxid.cpp
@@ -412,7 +412,7 @@ void LLSyntaxIdLSL::loadKeywordsIntoLLSD()
 	}
 	else
 	{
-		LL_ERRS("SyntaxLSL") << "Unable to open file: " << mFullFileSpec << LL_ENDL;
+		LL_WARNS("SyntaxLSL") << "Unable to open file: " << mFullFileSpec << LL_ENDL;
 	}
 	sLoadFailed = !sLoaded;
 }
-- 
cgit v1.2.3


From 0039e80d7c625e466833b86df5767c723f698034 Mon Sep 17 00:00:00 2001
From: Cinder <cinder.roxley@phoenixviewer.com>
Date: Wed, 16 Apr 2014 11:52:27 -0600
Subject: bool not U32

---
 indra/llui/llkeywords.cpp | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

(limited to 'indra')

diff --git a/indra/llui/llkeywords.cpp b/indra/llui/llkeywords.cpp
index 21129853de..e2ffd30f8d 100755
--- a/indra/llui/llkeywords.cpp
+++ b/indra/llui/llkeywords.cpp
@@ -37,14 +37,14 @@
 inline bool LLKeywordToken::isHead(const llwchar* s) const
 {
 	// strncmp is much faster than string compare
-	bool res = TRUE;
+	bool res = true;
 	const llwchar* t = mToken.c_str();
 	S32 len = mToken.size();
 	for (S32 i=0; i<len; i++)
 	{
 		if (s[i] != t[i])
 		{
-			res = FALSE;
+			res = false;
 			break;
 		}
 	}
@@ -53,14 +53,14 @@ inline bool LLKeywordToken::isHead(const llwchar* s) const
 
 inline bool LLKeywordToken::isTail(const llwchar* s) const
 {
-	bool res = TRUE;
+	bool res = true;
 	const llwchar* t = mDelimiter.c_str();
 	S32 len = mDelimiter.size();
 	for (S32 i=0; i<len; i++)
 	{
 		if (s[i] != t[i])
 		{
-			res = FALSE;
+			res = false;
 			break;
 		}
 	}
-- 
cgit v1.2.3


From 20a7d749cf8ea76c1481022f17153e72670b23ec Mon Sep 17 00:00:00 2001
From: Cinder <cinder.roxley@phoenixviewer.com>
Date: Wed, 16 Apr 2014 11:52:46 -0600
Subject: Orphaned definition

---
 indra/llui/llkeywords.h | 1 -
 1 file changed, 1 deletion(-)

(limited to 'indra')

diff --git a/indra/llui/llkeywords.h b/indra/llui/llkeywords.h
index 689fd75bcd..2f7932f815 100755
--- a/indra/llui/llkeywords.h
+++ b/indra/llui/llkeywords.h
@@ -172,7 +172,6 @@ protected:
 	LLColor4	readColor(LLSD& sd);
 	void		insertSegment(std::vector<LLTextSegmentPtr>& seg_list, LLTextSegmentPtr new_segment, S32 text_len, const LLColor4 &defaultColor, class LLTextEditor& editor);
 	void		insertSegments(const LLWString& wtext, std::vector<LLTextSegmentPtr>& seg_list, LLKeywordToken* token, S32 text_len, S32 seg_start, S32 seg_end, const LLColor4 &defaultColor, LLTextEditor& editor);
-	BOOL		loadIntoLLSD( const std::string& filename, LLSD& data );
 
 	LLSD		mColors;
 	bool		mLoaded;
-- 
cgit v1.2.3


From 8c39617c9ac469a8635d511142148ad5a38de836 Mon Sep 17 00:00:00 2001
From: Cinder <cinder.roxley@phoenixviewer.com>
Date: Fri, 18 Apr 2014 12:52:07 -0600
Subject: Begin moving script editor portions of LLTextEditor to their own
 derived class. This should fix the run off segment bugs by not overriding
 LLTextBase::clearSegments() in LLTextEditor TODO: Move the rest of the script
 stuff out of LLTextEditor for simplicity sake

---
 indra/llui/lltextbase.cpp                          |  1 -
 indra/llui/lltexteditor.cpp                        |  8 ----
 indra/llui/lltexteditor.h                          |  1 -
 indra/newview/CMakeLists.txt                       |  2 +
 indra/newview/llfloatergotoline.cpp                |  2 +-
 indra/newview/llpreviewscript.cpp                  |  4 +-
 indra/newview/llpreviewscript.h                    |  4 +-
 indra/newview/llscripteditor.cpp                   | 51 ++++++++++++++++++++++
 indra/newview/llscripteditor.h                     | 51 ++++++++++++++++++++++
 .../skins/default/xui/en/panel_script_ed.xml       |  4 +-
 .../newview/skins/default/xui/en/script_editor.xml |  5 +++
 11 files changed, 116 insertions(+), 17 deletions(-)
 create mode 100644 indra/newview/llscripteditor.cpp
 create mode 100644 indra/newview/llscripteditor.h
 create mode 100644 indra/newview/skins/default/xui/en/script_editor.xml

(limited to 'indra')

diff --git a/indra/llui/lltextbase.cpp b/indra/llui/lltextbase.cpp
index ee16d3de7c..c4664d6fe0 100755
--- a/indra/llui/lltextbase.cpp
+++ b/indra/llui/lltextbase.cpp
@@ -923,7 +923,6 @@ void LLTextBase::createDefaultSegment()
 	// ensures that there is always at least one segment
 	if (mSegments.empty())
 	{
-		
 		LLStyleConstSP sp(new LLStyle(getStyleParams()));
 		LLTextSegmentPtr default_segment = new LLNormalTextSegment( sp, 0, getLength() + 1, *this);
 		mSegments.insert(default_segment);
diff --git a/indra/llui/lltexteditor.cpp b/indra/llui/lltexteditor.cpp
index df8d37e3aa..8120f3f9a1 100755
--- a/indra/llui/lltexteditor.cpp
+++ b/indra/llui/lltexteditor.cpp
@@ -2529,14 +2529,6 @@ void LLTextEditor::loadKeywords()
 	}
 }
 
-void LLTextEditor::clearSegments()
-{
-	if (!mSegments.empty())
-	{
-		mSegments.clear();
-	}
-}
-
 void LLTextEditor::updateSegments()
 {
 	if (mReflowIndex < S32_MAX && mKeywords.isLoaded() && mParseOnTheFly)
diff --git a/indra/llui/lltexteditor.h b/indra/llui/lltexteditor.h
index 698153587f..09c56fca5a 100755
--- a/indra/llui/lltexteditor.h
+++ b/indra/llui/lltexteditor.h
@@ -208,7 +208,6 @@ public:
 
 	const LLTextSegmentPtr	getPreviousSegment() const;
 	void			getSelectedSegments(segment_vec_t& segments) const;
-	void			clearSegments();
 
 	void			setShowContextMenu(bool show) { mShowContextMenu = show; }
 	bool			getShowContextMenu() const { return mShowContextMenu; }
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index 34eab9fa33..f4c1d0b151 100755
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -494,6 +494,7 @@ set(viewer_SOURCE_FILES
     llsaveoutfitcombobtn.cpp
     llsceneview.cpp
     llscreenchannel.cpp
+    llscripteditor.cpp
     llscriptfloater.cpp
     llscrollingpanelparam.cpp
     llscrollingpanelparambase.cpp
@@ -1074,6 +1075,7 @@ set(viewer_HEADER_FILES
     llsaveoutfitcombobtn.h
     llsceneview.h
     llscreenchannel.h
+    llscripteditor.h
     llscriptfloater.h
     llscrollingpanelparam.h
     llscrollingpanelparambase.h
diff --git a/indra/newview/llfloatergotoline.cpp b/indra/newview/llfloatergotoline.cpp
index d66e418926..3b34f03532 100644
--- a/indra/newview/llfloatergotoline.cpp
+++ b/indra/newview/llfloatergotoline.cpp
@@ -30,7 +30,7 @@
 #include "llpreviewscript.h"
 #include "llfloaterreg.h"
 #include "lllineeditor.h"
-#include "llviewertexteditor.h"
+#include "llscripteditor.h"
 #include "llviewerwindow.h"
 
 LLFloaterGotoLine* LLFloaterGotoLine::sInstance = NULL;
diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp
index 84e7a1650d..0d95874406 100755
--- a/indra/newview/llpreviewscript.cpp
+++ b/indra/newview/llpreviewscript.cpp
@@ -69,6 +69,7 @@
 #include "llkeyboard.h"
 #include "llscrollcontainer.h"
 #include "llcheckboxctrl.h"
+#include "llscripteditor.h"
 #include "llselectmgr.h"
 #include "lltooldraganddrop.h"
 #include "llscrolllistctrl.h"
@@ -77,7 +78,6 @@
 #include "lldir.h"
 #include "llcombobox.h"
 #include "llviewerstats.h"
-#include "llviewertexteditor.h"
 #include "llviewerwindow.h"
 #include "lluictrlfactory.h"
 #include "llmediactrl.h"
@@ -399,7 +399,7 @@ BOOL LLScriptEdCore::postBuild()
 
 	childSetCommitCallback("Insert...", &LLScriptEdCore::onBtnInsertFunction, this);
 
-	mEditor = getChild<LLViewerTextEditor>("Script Editor");
+	mEditor = getChild<LLScriptEditor>("Script Editor");
 
 	childSetCommitCallback("lsl errors", &LLScriptEdCore::onErrorList, this);
 	childSetAction("Save_btn", boost::bind(&LLScriptEdCore::doSave,this,FALSE));
diff --git a/indra/newview/llpreviewscript.h b/indra/newview/llpreviewscript.h
index dc4f828cf1..913303d57d 100755
--- a/indra/newview/llpreviewscript.h
+++ b/indra/newview/llpreviewscript.h
@@ -39,7 +39,7 @@
 
 class LLLiveLSLFile;
 class LLMessageSystem;
-class LLTextEditor;
+class LLScriptEditor;
 class LLButton;
 class LLCheckBoxCtrl;
 class LLScrollListCtrl;
@@ -140,7 +140,7 @@ protected:
 
 private:
 	std::string		mSampleText;
-	LLTextEditor*	mEditor;
+	LLScriptEditor*	mEditor;
 	void			(*mLoadCallback)(void* userdata);
 	void			(*mSaveCallback)(void* userdata, BOOL close_after_save);
 	void			(*mSearchReplaceCallback) (void* userdata);
diff --git a/indra/newview/llscripteditor.cpp b/indra/newview/llscripteditor.cpp
new file mode 100644
index 0000000000..7067f49fba
--- /dev/null
+++ b/indra/newview/llscripteditor.cpp
@@ -0,0 +1,51 @@
+/**
+ * @file llecripteditor.cpp
+ * @author Cinder Roxley
+ * @brief Text editor widget used for viewing and editing scripts
+ *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2012, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
+ * $/LicenseInfo$
+ */
+
+#include "linden_common.h"
+#include "llscripteditor.h"
+
+static LLDefaultChildRegistry::Register<LLScriptEditor> r("script_editor");
+
+LLScriptEditor::LLScriptEditor::Params::Params()
+{
+
+}
+
+
+LLScriptEditor::LLScriptEditor(const Params& p)
+:	LLTextEditor(p)
+{
+	
+}
+
+void LLScriptEditor::clearSegments()
+{
+	if (!mSegments.empty())
+	{
+		mSegments.clear();
+	}
+}
diff --git a/indra/newview/llscripteditor.h b/indra/newview/llscripteditor.h
new file mode 100644
index 0000000000..1e05e337c5
--- /dev/null
+++ b/indra/newview/llscripteditor.h
@@ -0,0 +1,51 @@
+/**
+ * @file llecripteditor.h
+ * @author Cinder Roxley
+ * @brief Text editor widget used for viewing and editing scripts
+ *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2012, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
+ * $/LicenseInfo$
+ */
+
+#ifndef LL_SCRIPTEDITOR_H
+#define LL_SCRIPTEDITOR_H
+
+#include "lltexteditor.h"
+
+class LLScriptEditor : public LLTextEditor
+{
+	friend class LLUICtrlFactory;
+public:
+	
+	struct Params : public LLInitParam::Block<Params, LLTextEditor::Params>
+	{
+		Params();
+	};
+	
+	virtual ~LLScriptEditor() {};
+	void clearSegments();
+	
+protected:
+	LLScriptEditor(const Params& p);
+
+};
+
+#endif // LL_SCRIPTEDITOR_H
diff --git a/indra/newview/skins/default/xui/en/panel_script_ed.xml b/indra/newview/skins/default/xui/en/panel_script_ed.xml
index d1b35dce9d..3e88e2dc04 100755
--- a/indra/newview/skins/default/xui/en/panel_script_ed.xml
+++ b/indra/newview/skins/default/xui/en/panel_script_ed.xml
@@ -148,7 +148,7 @@
              name="Keyword Help..." />
         </menu>
     </menu_bar>
-    <text_editor
+    <script_editor
     left="0"
      type="string"
      length="1"
@@ -165,7 +165,7 @@
      enable_tooltip_paste="true"
      word_wrap="true">
         Loading...
-    </text_editor>
+    </script_editor>
     <scroll_list
     top_pad="10"
     left="0"
diff --git a/indra/newview/skins/default/xui/en/script_editor.xml b/indra/newview/skins/default/xui/en/script_editor.xml
new file mode 100644
index 0000000000..d24833e85c
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/script_editor.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<script_editor
+    name="script_editor"
+    parse_urls="false">
+</script_editor>
-- 
cgit v1.2.3


From 9ec900c3c440a8d1e25d55667c861d27a95b1297 Mon Sep 17 00:00:00 2001
From: Cinder <cinder.roxley@phoenixviewer.com>
Date: Fri, 18 Apr 2014 12:53:19 -0600
Subject: Trivial typo fix

---
 indra/newview/llscripteditor.cpp | 2 +-
 indra/newview/llscripteditor.h   | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llscripteditor.cpp b/indra/newview/llscripteditor.cpp
index 7067f49fba..67a43c0ef0 100644
--- a/indra/newview/llscripteditor.cpp
+++ b/indra/newview/llscripteditor.cpp
@@ -1,5 +1,5 @@
 /**
- * @file llecripteditor.cpp
+ * @file llscripteditor.cpp
  * @author Cinder Roxley
  * @brief Text editor widget used for viewing and editing scripts
  *
diff --git a/indra/newview/llscripteditor.h b/indra/newview/llscripteditor.h
index 1e05e337c5..a0bee36a25 100644
--- a/indra/newview/llscripteditor.h
+++ b/indra/newview/llscripteditor.h
@@ -1,5 +1,5 @@
 /**
- * @file llecripteditor.h
+ * @file llscripteditor.h
  * @author Cinder Roxley
  * @brief Text editor widget used for viewing and editing scripts
  *
-- 
cgit v1.2.3


From b533844945a648ab1613a305c072809bbd6d76a8 Mon Sep 17 00:00:00 2001
From: Cinder Biscuits <cinder.roxley@phoenixviewer.com>
Date: Fri, 18 Apr 2014 20:06:39 +0000
Subject: STORM-2023: Restore system color picker on OSX

---
 indra/llwindow/llwindowmacosx.cpp | 33 +++++++++++++++++++++++++++++----
 1 file changed, 29 insertions(+), 4 deletions(-)

(limited to 'indra')

diff --git a/indra/llwindow/llwindowmacosx.cpp b/indra/llwindow/llwindowmacosx.cpp
index 11c0b51086..832e08d181 100755
--- a/indra/llwindow/llwindowmacosx.cpp
+++ b/indra/llwindow/llwindowmacosx.cpp
@@ -39,6 +39,7 @@
 #include "indra_constants.h"
 
 #include <OpenGL/OpenGL.h>
+#include <Carbon/Carbon.h>
 #include <CoreServices/CoreServices.h>
 
 extern BOOL gDebugWindowProc;
@@ -1743,16 +1744,40 @@ LLSD LLWindowMacOSX::getNativeKeyData()
 	return result;
 }
 
-
 BOOL LLWindowMacOSX::dialogColorPicker( F32 *r, F32 *g, F32 *b)
 {
-	// Is this even used anywhere?  Do we really need an OS color picker?
 	BOOL	retval = FALSE;
-	//S32		error = 0;
+	OSErr	error = noErr;
+	NColorPickerInfo	info;
+	
+	memset(&info, 0, sizeof(info));
+	info.theColor.color.rgb.red = (UInt16)(*r * 65535.f);
+	info.theColor.color.rgb.green = (UInt16)(*g * 65535.f);
+	info.theColor.color.rgb.blue = (UInt16)(*b * 65535.f);
+	info.placeWhere = kCenterOnMainScreen;
+	
+	if(gWindowImplementation != NULL)
+		gWindowImplementation->beforeDialog();
+	
+	error = NPickColor(&info);
+	
+	if(gWindowImplementation != NULL)
+		gWindowImplementation->afterDialog();
+	
+	if (error == noErr)
+	{
+		retval = info.newColorChosen;
+		if (info.newColorChosen)
+		{
+			*r = ((float) info.theColor.color.rgb.red) / 65535.0;
+			*g = ((float) info.theColor.color.rgb.green) / 65535.0;
+			*b = ((float) info.theColor.color.rgb.blue) / 65535.0;
+		}
+	}
+
 	return (retval);
 }
 
-
 void *LLWindowMacOSX::getPlatformWindow()
 {
 	// NOTE: this will be NULL in fullscreen mode.  Plan accordingly.
-- 
cgit v1.2.3


From 1173dde898d5b61749b1c1631d060bf6730b9642 Mon Sep 17 00:00:00 2001
From: Cinder Biscuits <cinder.roxley@phoenixviewer.com>
Date: Fri, 18 Apr 2014 21:05:20 +0000
Subject: Remove calls to now unused methods

---
 indra/llwindow/llwindowmacosx.cpp | 8 +-------
 1 file changed, 1 insertion(+), 7 deletions(-)

(limited to 'indra')

diff --git a/indra/llwindow/llwindowmacosx.cpp b/indra/llwindow/llwindowmacosx.cpp
index 832e08d181..ed0348e10e 100755
--- a/indra/llwindow/llwindowmacosx.cpp
+++ b/indra/llwindow/llwindowmacosx.cpp
@@ -1755,15 +1755,9 @@ BOOL LLWindowMacOSX::dialogColorPicker( F32 *r, F32 *g, F32 *b)
 	info.theColor.color.rgb.green = (UInt16)(*g * 65535.f);
 	info.theColor.color.rgb.blue = (UInt16)(*b * 65535.f);
 	info.placeWhere = kCenterOnMainScreen;
-	
-	if(gWindowImplementation != NULL)
-		gWindowImplementation->beforeDialog();
-	
+
 	error = NPickColor(&info);
 	
-	if(gWindowImplementation != NULL)
-		gWindowImplementation->afterDialog();
-	
 	if (error == noErr)
 	{
 		retval = info.newColorChosen;
-- 
cgit v1.2.3


From 54c7b96bf19efd28cc7ce81c0864ee7bbb7d6b1d Mon Sep 17 00:00:00 2001
From: Cinder <cinder.roxley@phoenixviewer.com>
Date: Fri, 18 Apr 2014 22:03:05 -0600
Subject: Fix header guard

---
 indra/newview/llsyntaxid.h | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llsyntaxid.h b/indra/newview/llsyntaxid.h
index 7d6e120038..1f7e893b38 100644
--- a/indra/newview/llsyntaxid.h
+++ b/indra/newview/llsyntaxid.h
@@ -25,10 +25,8 @@
  * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
  * $/LicenseInfo$
  */
-#ifndef LLSYSNTAXIDLSL_H
-#define LLSYSNTAXIDLSL_H
-
-#endif // LLSYSNTAXIDLSL_H
+#ifndef LL_SYNTAXID_H
+#define LL_SYNTAXID_H
 
 #include "llviewerprecompiledheaders.h"
 
@@ -144,3 +142,5 @@ public:
 	 */
 	void cacheFile(const LLSD& content_ref);
 };
+
+#endif // LLSYNTAXID_H
-- 
cgit v1.2.3


From dcffb97518cb2888489c93b90862518f761967dd Mon Sep 17 00:00:00 2001
From: Cinder <cinder.roxley@phoenixviewer.com>
Date: Fri, 18 Apr 2014 23:13:57 -0600
Subject: Move some more script editor functions from LLTextEditor to
 LLScriptEditor

---
 indra/llui/llkeywords.cpp                          |  6 +--
 indra/llui/llkeywords.h                            | 12 +++---
 indra/llui/lltexteditor.cpp                        | 37 ------------------
 indra/llui/lltexteditor.h                          | 15 +-------
 indra/newview/llpreviewscript.cpp                  |  3 +-
 indra/newview/llscripteditor.cpp                   | 44 ++++++++++++++++++++++
 indra/newview/llscripteditor.h                     | 14 ++++++-
 .../xui/en/floater_region_debug_console.xml        |  1 -
 .../skins/default/xui/en/panel_script_ed.xml       |  1 -
 .../newview/skins/default/xui/en/script_editor.xml |  4 +-
 10 files changed, 71 insertions(+), 66 deletions(-)

(limited to 'indra')

diff --git a/indra/llui/llkeywords.cpp b/indra/llui/llkeywords.cpp
index e2ffd30f8d..07c84e57c0 100755
--- a/indra/llui/llkeywords.cpp
+++ b/indra/llui/llkeywords.cpp
@@ -89,7 +89,7 @@ void LLKeywords::addColorGroup(const std::string key_in, const LLColor4 color)
 }
 
 // Add the token as described
-void LLKeywords::addToken(LLKeywordToken::TOKEN_TYPE type,
+void LLKeywords::addToken(LLKeywordToken::ETokenType type,
 						  const std::string& key_in,
 						  const LLColor4& color,
 						  const std::string& tool_tip_in,
@@ -300,7 +300,7 @@ void LLKeywords::processTokensGroup(LLSD& Tokens, const std::string Group)
 	LLColor4 ColorDeprecated = getColorGroup("deprecated");
 	LLColor4 ColorGM = getColorGroup("god-mode");
 
-	LLKeywordToken::TOKEN_TYPE token_type = LLKeywordToken::TT_UNKNOWN;
+	LLKeywordToken::ETokenType token_type = LLKeywordToken::TT_UNKNOWN;
 	// If a new token type is added here, it must also be added to the 'addToken' method
 	if (Group == "constants")
 	{
@@ -633,7 +633,7 @@ void LLKeywords::findSegments(std::vector<LLTextSegmentPtr>* seg_list, const LLW
 					seg_start = cur - base;
 					cur += cur_delimiter->getLengthHead();
 
-					LLKeywordToken::TOKEN_TYPE type = cur_delimiter->getType();
+					LLKeywordToken::ETokenType type = cur_delimiter->getType();
 					if( type == LLKeywordToken::TT_TWO_SIDED_DELIMITER || type == LLKeywordToken::TT_DOUBLE_QUOTATION_MARKS )
 					{
 						while( *cur && !cur_delimiter->isTail(cur))
diff --git a/indra/llui/llkeywords.h b/indra/llui/llkeywords.h
index 2f7932f815..69bc8919db 100755
--- a/indra/llui/llkeywords.h
+++ b/indra/llui/llkeywords.h
@@ -53,7 +53,7 @@ public:
 	 * - TT_TWO_SIDED_DELIMITER are for delimiters that end with a different delimiter than they open with.
 	 * - TT_DOUBLE_QUOTATION_MARKS are for delimiting areas using the same delimiter to open and close.
 	 */
-	enum TOKEN_TYPE
+	typedef enum e_token_type
 	{
 		TT_UNKNOWN,
 		TT_WORD,
@@ -69,9 +69,9 @@ public:
 		TT_LABEL,							// LINE
 		TT_SECTION,							// WORD
 		TT_TYPE								// WORD
-	};
+	} ETokenType;
 
-	LLKeywordToken( TOKEN_TYPE type, const LLColor4& color, const LLWString& token, const LLWString& tool_tip, const LLWString& delimiter  )
+	LLKeywordToken( ETokenType type, const LLColor4& color, const LLWString& token, const LLWString& tool_tip, const LLWString& delimiter  )
 		:
 		mType( type ),
 		mToken( token ),
@@ -87,7 +87,7 @@ public:
 	bool				isTail(const llwchar* s) const;
 	const LLWString&	getToken() const		{ return mToken; }
 	const LLColor4&		getColor() const		{ return mColor; }
-	TOKEN_TYPE			getType()  const		{ return mType; }
+	ETokenType			getType()  const		{ return mType; }
 	const LLWString&	getToolTip() const		{ return mToolTip; }
 	const LLWString&	getDelimiter() const	{ return mDelimiter; }
 
@@ -96,7 +96,7 @@ public:
 #endif
 
 private:
-	TOKEN_TYPE	mType;
+	ETokenType	mType;
 	LLWString	mToken;
 	LLColor4	mColor;
 	LLWString	mToolTip;
@@ -119,7 +119,7 @@ public:
 	void		processTokens();
 
 	// Add the token as described
-	void addToken(LLKeywordToken::TOKEN_TYPE type,
+	void addToken(LLKeywordToken::ETokenType type,
 					const std::string& key,
 					const LLColor4& color,
 					const std::string& tool_tip = LLStringUtil::null,
diff --git a/indra/llui/lltexteditor.cpp b/indra/llui/lltexteditor.cpp
index 8120f3f9a1..b18c545f30 100755
--- a/indra/llui/lltexteditor.cpp
+++ b/indra/llui/lltexteditor.cpp
@@ -2511,43 +2511,6 @@ BOOL LLTextEditor::tryToRevertToPristineState()
 	return isPristine(); // TRUE => success
 }
 
-
-static LLFastTimer::DeclareTimer FTM_SYNTAX_HIGHLIGHTING("Syntax Highlighting");
-void LLTextEditor::loadKeywords()
-{
-	LLFastTimer ft(FTM_SYNTAX_HIGHLIGHTING);
-	mKeywords.processTokens();
-
-	segment_vec_t segment_list;
-	mKeywords.findSegments(&segment_list, getWText(), mDefaultColor.get(), *this);
-
-	mSegments.clear();
-	segment_set_t::iterator insert_it = mSegments.begin();
-	for (segment_vec_t::iterator list_it = segment_list.begin(); list_it != segment_list.end(); ++list_it)
-	{
-		insert_it = mSegments.insert(insert_it, *list_it);
-	}
-}
-
-void LLTextEditor::updateSegments()
-{
-	if (mReflowIndex < S32_MAX && mKeywords.isLoaded() && mParseOnTheFly)
-	{
-		LLFastTimer ft(FTM_SYNTAX_HIGHLIGHTING);
-		// HACK:  No non-ascii keywords for now
-		segment_vec_t segment_list;
-		mKeywords.findSegments(&segment_list, getWText(), mDefaultColor.get(), *this);
-
-		clearSegments();
-		for (segment_vec_t::iterator list_it = segment_list.begin(); list_it != segment_list.end(); ++list_it)
-		{
-			insertSegment(*list_it);
-		}
-	}
-
-	LLTextBase::updateSegments();
-}
-
 void LLTextEditor::updateLinkSegments()
 {
 	LLWString wtext = getWText();
diff --git a/indra/llui/lltexteditor.h b/indra/llui/lltexteditor.h
index 09c56fca5a..6c14ad90a5 100755
--- a/indra/llui/lltexteditor.h
+++ b/indra/llui/lltexteditor.h
@@ -30,7 +30,6 @@
 #define LL_LLTEXTEDITOR_H
 
 #include "llrect.h"
-#include "llkeywords.h"
 #include "llframetimer.h"
 #include "lldarray.h"
 #include "llstyle.h"
@@ -45,7 +44,6 @@
 
 class LLFontGL;
 class LLScrollbar;
-class LLKeywordToken;
 class TextCmd;
 class LLUICtrlFactory;
 class LLScrollContainer;
@@ -188,14 +186,6 @@ public:
 
 	void			getCurrentLineAndColumn( S32* line, S32* col, BOOL include_wordwrap );
 
-	LLKeywords		mKeywords;
-	void			loadKeywords();
-	LLKeywords::keyword_iterator_t keywordsBegin()	{ return mKeywords.begin(); }
-	LLKeywords::keyword_iterator_t keywordsEnd()	{ return mKeywords.end(); }
-
-	void			loadKeywords(const std::string& filename_keywords,
-								const std::string& filename_colors);
-
 	// Hacky methods to make it into a word-wrapping, potentially scrolling,
 	// read-only text box.
 	void			setCommitOnFocusLost(BOOL b)			{ mCommitOnFocusLost = b; }
@@ -293,8 +283,8 @@ protected:
 
 	BOOL				mShowLineNumbers;
 	bool				mAutoIndent;
+	bool				mParseOnTheFly;
 
-	/*virtual*/ void	updateSegments();
 	void				updateLinkSegments();
 
 private:
@@ -331,7 +321,6 @@ private:
 
 	BOOL			mAllowEmbeddedItems;
 	bool			mShowContextMenu;
-	bool			mParseOnTheFly;
 	bool			mEnableTooltipPaste;
 	bool			mPassDelete;
 
@@ -351,4 +340,4 @@ extern template class LLTextEditor* LLView::getChild<class LLTextEditor>(
 	const std::string& name, BOOL recurse) const;
 #endif
 
-#endif  // LL_TEXTEDITOR_
+#endif  // LL_TEXTEDITOR_H
diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp
index 0d95874406..e778015965 100755
--- a/indra/newview/llpreviewscript.cpp
+++ b/indra/newview/llpreviewscript.cpp
@@ -472,8 +472,7 @@ void LLScriptEdCore::processKeywords()
 
 		if (mSyntaxIdLSL.isLoaded())
 		{
-			mEditor->mKeywords.initialise(mSyntaxIdLSL.getKeywordsXML());
-
+			mEditor->initKeywords();
 			mEditor->loadKeywords();
 
 			std::vector<std::string> primary_keywords;
diff --git a/indra/newview/llscripteditor.cpp b/indra/newview/llscripteditor.cpp
index 67a43c0ef0..61b5eec9fc 100644
--- a/indra/newview/llscripteditor.cpp
+++ b/indra/newview/llscripteditor.cpp
@@ -28,6 +28,8 @@
 #include "linden_common.h"
 #include "llscripteditor.h"
 
+#include "llsyntaxid.h"
+
 static LLDefaultChildRegistry::Register<LLScriptEditor> r("script_editor");
 
 LLScriptEditor::LLScriptEditor::Params::Params()
@@ -42,6 +44,48 @@ LLScriptEditor::LLScriptEditor(const Params& p)
 	
 }
 
+void LLScriptEditor::initKeywords()
+{
+	mKeywords.initialise(LLSyntaxIdLSL::getInstance()->getKeywordsXML());
+}
+
+static LLFastTimer::DeclareTimer FTM_SYNTAX_HIGHLIGHTING("Syntax Highlighting");
+
+void LLScriptEditor::loadKeywords()
+{
+	LLFastTimer ft(FTM_SYNTAX_HIGHLIGHTING);
+	mKeywords.processTokens();
+	
+	segment_vec_t segment_list;
+	mKeywords.findSegments(&segment_list, getWText(), mDefaultColor.get(), *this);
+	
+	mSegments.clear();
+	segment_set_t::iterator insert_it = mSegments.begin();
+	for (segment_vec_t::iterator list_it = segment_list.begin(); list_it != segment_list.end(); ++list_it)
+	{
+		insert_it = mSegments.insert(insert_it, *list_it);
+	}
+}
+
+void LLScriptEditor::updateSegments()
+{
+	if (mReflowIndex < S32_MAX && mKeywords.isLoaded() && mParseOnTheFly)
+	{
+		LLFastTimer ft(FTM_SYNTAX_HIGHLIGHTING);
+		// HACK:  No non-ascii keywords for now
+		segment_vec_t segment_list;
+		mKeywords.findSegments(&segment_list, getWText(), mDefaultColor.get(), *this);
+		
+		clearSegments();
+		for (segment_vec_t::iterator list_it = segment_list.begin(); list_it != segment_list.end(); ++list_it)
+		{
+			insertSegment(*list_it);
+		}
+	}
+	
+	LLTextBase::updateSegments();
+}
+
 void LLScriptEditor::clearSegments()
 {
 	if (!mSegments.empty())
diff --git a/indra/newview/llscripteditor.h b/indra/newview/llscripteditor.h
index a0bee36a25..86c915d6a0 100644
--- a/indra/newview/llscripteditor.h
+++ b/indra/newview/llscripteditor.h
@@ -41,11 +41,21 @@ public:
 	};
 	
 	virtual ~LLScriptEditor() {};
-	void clearSegments();
+	void	initKeywords();
+	void	loadKeywords();
+	void	clearSegments();
+	LLKeywords::keyword_iterator_t keywordsBegin()	{ return mKeywords.begin(); }
+	LLKeywords::keyword_iterator_t keywordsEnd()	{ return mKeywords.end(); }
 	
 protected:
 	LLScriptEditor(const Params& p);
-
+	
+private:
+	void	updateSegments();
+	void	loadKeywords(const std::string& filename_keywords,
+						 const std::string& filename_colors);
+	
+	LLKeywords	mKeywords;
 };
 
 #endif // LL_SCRIPTEDITOR_H
diff --git a/indra/newview/skins/default/xui/en/floater_region_debug_console.xml b/indra/newview/skins/default/xui/en/floater_region_debug_console.xml
index 99b812a880..11172d8a3e 100755
--- a/indra/newview/skins/default/xui/en/floater_region_debug_console.xml
+++ b/indra/newview/skins/default/xui/en/floater_region_debug_console.xml
@@ -21,7 +21,6 @@
     layout="topleft"
     max_length="65536"
     name="region_debug_console_output"
-    show_line_numbers="false" 
     word_wrap="true"
     track_end="true"
     read_only="true">
diff --git a/indra/newview/skins/default/xui/en/panel_script_ed.xml b/indra/newview/skins/default/xui/en/panel_script_ed.xml
index 3e88e2dc04..1a4f0aff73 100755
--- a/indra/newview/skins/default/xui/en/panel_script_ed.xml
+++ b/indra/newview/skins/default/xui/en/panel_script_ed.xml
@@ -161,7 +161,6 @@
      name="Script Editor"
      text_readonly_color="DkGray"
      width="487"
-     show_line_numbers="true" 
      enable_tooltip_paste="true"
      word_wrap="true">
         Loading...
diff --git a/indra/newview/skins/default/xui/en/script_editor.xml b/indra/newview/skins/default/xui/en/script_editor.xml
index d24833e85c..b030a117fc 100644
--- a/indra/newview/skins/default/xui/en/script_editor.xml
+++ b/indra/newview/skins/default/xui/en/script_editor.xml
@@ -1,5 +1,7 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <script_editor
     name="script_editor"
-    parse_urls="false">
+    parse_urls="false"
+	show_context_menu="true"
+	show_line_numbers="true">
 </script_editor>
-- 
cgit v1.2.3


From 46627b4eb2218babbc94421f9b93c03e2951cc6c Mon Sep 17 00:00:00 2001
From: Cinder <cinder.roxley@phoenixviewer.com>
Date: Fri, 18 Apr 2014 23:20:33 -0600
Subject: Remove clearHighlights()

---
 indra/newview/llpreviewscript.cpp | 9 ++-------
 indra/newview/llpreviewscript.h   | 1 -
 2 files changed, 2 insertions(+), 8 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp
index e778015965..1d95276c51 100755
--- a/indra/newview/llpreviewscript.cpp
+++ b/indra/newview/llpreviewscript.cpp
@@ -433,7 +433,7 @@ void LLScriptEdCore::updateKeywords()
 {
 	if (mLive)
 	{
-		clearHighlights();
+		mEditor->clearSegments();
 		mRegionChangedCallback.disconnect();
 	}
 	else
@@ -456,11 +456,6 @@ void LLScriptEdCore::processLoaded()
 	}
 }
 
-void LLScriptEdCore::clearHighlights()
-{
-	mEditor->clearSegments();
-}
-
 void LLScriptEdCore::processKeywords()
 {
 	if (mSyntaxIdLSL.isLoaded())
@@ -468,7 +463,7 @@ void LLScriptEdCore::processKeywords()
 		LL_INFOS("SyntaxLSL")
 				<< "Hashes are different, updating highlighter." << LL_ENDL;
 
-		clearHighlights();
+		mEditor->clearSegments();
 
 		if (mSyntaxIdLSL.isLoaded())
 		{
diff --git a/indra/newview/llpreviewscript.h b/indra/newview/llpreviewscript.h
index 913303d57d..3ac48ae9c4 100755
--- a/indra/newview/llpreviewscript.h
+++ b/indra/newview/llpreviewscript.h
@@ -77,7 +77,6 @@ protected:
 public:
 	~LLScriptEdCore();
 	
-	void			clearHighlights();
 	void			initialiseKeywords();
 	void			initMenu();
 	void			processKeywords();
-- 
cgit v1.2.3


From 1dad526a5c66104a629c248e560f8e5ddb62c060 Mon Sep 17 00:00:00 2001
From: Cinder <cinder.roxley@phoenixviewer.com>
Date: Fri, 18 Apr 2014 23:25:21 -0600
Subject: Reinstate support text appendText() in LLFloaterAbout

---
 indra/newview/llfloaterabout.cpp | 5 -----
 1 file changed, 5 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llfloaterabout.cpp b/indra/newview/llfloaterabout.cpp
index 27ca9ab56a..4d8c8e3e99 100755
--- a/indra/newview/llfloaterabout.cpp
+++ b/indra/newview/llfloaterabout.cpp
@@ -270,14 +270,9 @@ void LLFloaterAbout::setSupportText(const std::string& server_release_notes_url)
 		getChild<LLViewerTextEditor>("support_editor", true);
 
 	LLUIColor about_color = LLUIColorTable::instance().getColor("TextFgReadOnlyColor");
-#   if 0
 	support_widget->clear();
 	support_widget->appendText(LLAppViewer::instance()->getViewerInfoString(),
 							   FALSE, LLStyle::Params() .color(about_color));
-#   else
-	support_widget->setText(LLAppViewer::instance()->getViewerInfoString(),
-							LLStyle::Params() .color(about_color));
-#   endif
 }
 
 ///----------------------------------------------------------------------------
-- 
cgit v1.2.3


From 3dc1b32bf32643613c9912f1165de0f52d0a82c8 Mon Sep 17 00:00:00 2001
From: Cinder <cinder.roxley@phoenixviewer.com>
Date: Mon, 21 Apr 2014 09:33:21 -0600
Subject: Windows build fix.

---
 indra/newview/llscripteditor.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'indra')

diff --git a/indra/newview/llscripteditor.cpp b/indra/newview/llscripteditor.cpp
index 61b5eec9fc..bb59a1d821 100644
--- a/indra/newview/llscripteditor.cpp
+++ b/indra/newview/llscripteditor.cpp
@@ -25,7 +25,7 @@
  * $/LicenseInfo$
  */
 
-#include "linden_common.h"
+#include "llviewerprecompiledheaders.h"
 #include "llscripteditor.h"
 
 #include "llsyntaxid.h"
-- 
cgit v1.2.3


From 54d392c4ff8a2a211e00a62023409b2dba85e8e9 Mon Sep 17 00:00:00 2001
From: Cinder <cinder.roxley@phoenixviewer.com>
Date: Mon, 21 Apr 2014 12:07:46 -0600
Subject: Another oops windows build fix.

---
 indra/newview/llscripteditor.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'indra')

diff --git a/indra/newview/llscripteditor.cpp b/indra/newview/llscripteditor.cpp
index bb59a1d821..5d87f7ba0c 100644
--- a/indra/newview/llscripteditor.cpp
+++ b/indra/newview/llscripteditor.cpp
@@ -32,7 +32,7 @@
 
 static LLDefaultChildRegistry::Register<LLScriptEditor> r("script_editor");
 
-LLScriptEditor::LLScriptEditor::Params::Params()
+LLScriptEditor::Params::Params()
 {
 
 }
-- 
cgit v1.2.3


From 5870788f68c6b1fb504ae95403e7da95bc55ed4c Mon Sep 17 00:00:00 2001
From: Oz Linden <oz@lindenlab.com>
Date: Tue, 22 Apr 2014 16:08:13 -0400
Subject: catch a few more cases of STANDALONE -> USESYSTEMLIBS

---
 indra/cmake/00-Common.cmake |  2 +-
 indra/cmake/Prebuilt.cmake  | 10 +++++-----
 2 files changed, 6 insertions(+), 6 deletions(-)

(limited to 'indra')

diff --git a/indra/cmake/00-Common.cmake b/indra/cmake/00-Common.cmake
index 69173c38a2..335dd89080 100755
--- a/indra/cmake/00-Common.cmake
+++ b/indra/cmake/00-Common.cmake
@@ -226,7 +226,7 @@ endif (LINUX OR DARWIN)
 
 
 if (USESYSTEMLIBS)
-  add_definitions(-DLL_STANDALONE=1)
+  add_definitions(-DLL_USESYSTEMLIBS=1)
 
   if (LINUX AND ${ARCH} STREQUAL "i686")
     add_definitions(-march=pentiumpro)
diff --git a/indra/cmake/Prebuilt.cmake b/indra/cmake/Prebuilt.cmake
index c3fd8f1666..e548805148 100755
--- a/indra/cmake/Prebuilt.cmake
+++ b/indra/cmake/Prebuilt.cmake
@@ -17,11 +17,11 @@ endif(INSTALL_PROPRIETARY)
 # of previous attempts is serialized in the file
 # ${CMAKE_BINARY_DIR}/temp/${_binary}_installed)
 macro (use_prebuilt_binary _binary)
-  if (NOT DEFINED STANDALONE_${_binary})
-    set(STANDALONE_${_binary} ${USESYSTEMLIBS})
-  endif (NOT DEFINED STANDALONE_${_binary})
+  if (NOT DEFINED USESYSTEMLIBS_${_binary})
+    set(USESYSTEMLIBS_${_binary} ${USESYSTEMLIBS})
+  endif (NOT DEFINED USESYSTEMLIBS_${_binary})
 
-  if (NOT STANDALONE_${_binary})
+  if (NOT USESYSTEMLIBS_${_binary})
     if("${${_binary}_installed}" STREQUAL "" AND EXISTS "${CMAKE_BINARY_DIR}/temp/${_binary}_installed")
       file(READ ${CMAKE_BINARY_DIR}/temp/${_binary}_installed "${_binary}_installed")
       if(DEBUG_PREBUILT)
@@ -52,7 +52,7 @@ macro (use_prebuilt_binary _binary)
               "Failed to download or unpack prebuilt '${_binary}'."
               " Process returned ${${_binary}_installed}.")
     endif (NOT ${_binary}_installed EQUAL 0)
-  endif (NOT STANDALONE_${_binary})
+  endif (NOT USESYSTEMLIBS_${_binary})
 endmacro (use_prebuilt_binary _binary)
 
 endif(NOT DEFINED ${CMAKE_CURRENT_LIST_FILE}_INCLUDED)
-- 
cgit v1.2.3


From e8422e5bed6c593c8a26b533f33103911a1d3da6 Mon Sep 17 00:00:00 2001
From: Cinder <cinder.roxley@phoenixviewer.com>
Date: Tue, 6 May 2014 11:09:50 -0600
Subject: Let's get started: some code policy cleanup, reference arguments
 where we can, correct spelling

---
 indra/llui/llkeywords.cpp                          | 130 ++++++++++-----------
 indra/llui/llkeywords.h                            |   6 +-
 .../newview/app_settings/keywords_lsl_default.xml  |  20 ++--
 indra/newview/llpreviewscript.cpp                  |  79 ++++++-------
 indra/newview/llpreviewscript.h                    |   1 -
 indra/newview/llsyntaxid.cpp                       |  17 +--
 indra/newview/llsyntaxid.h                         |   8 +-
 7 files changed, 125 insertions(+), 136 deletions(-)

(limited to 'indra')

diff --git a/indra/llui/llkeywords.cpp b/indra/llui/llkeywords.cpp
index 07c84e57c0..bae604e270 100755
--- a/indra/llui/llkeywords.cpp
+++ b/indra/llui/llkeywords.cpp
@@ -82,7 +82,7 @@ LLKeywords::~LLKeywords()
 	mDelimiterTokenList.clear();
 }
 
-void LLKeywords::addColorGroup(const std::string key_in, const LLColor4 color)
+void LLKeywords::addColorGroup(const std::string& key_in, const LLColor4& color)
 {
 	WStringMapIndex key ( utf8str_to_wstring(key_in) );
 	mColorGroupMap[key] = color;
@@ -176,79 +176,79 @@ std::string LLKeywords::getAttribute(const std::string& key)
 	return (it != mAttributes.end()) ? it->second : "";
 }
 
-LLColor4 LLKeywords::getColorGroup(const std::string key_in)
+LLColor4 LLKeywords::getColorGroup(const std::string& key_in)
 {
-	std::string ColourGroup = "Black";
+	std::string color_group = "Black";
 	if (key_in == "constants-float")
 	{
-		ColourGroup = "SyntaxLslConstantFloat";
+		color_group = "SyntaxLslConstantFloat";
 	}
 	else if (key_in == "constants-integer")
 	{
-		ColourGroup = "SyntaxLslConstantInteger";
+		color_group = "SyntaxLslConstantInteger";
 	}
 	else if (key_in == "constants-key")
 	{
-		ColourGroup = "SyntaxLslConstantKey";
+		color_group = "SyntaxLslConstantKey";
 	}
 	else if (key_in == "constants-rotation")
 	{
-		ColourGroup = "SyntaxLslConstantRotation";
+		color_group = "SyntaxLslConstantRotation";
 	}
 	else if (key_in == "constants-string")
 	{
-		ColourGroup = "SyntaxLslConstantString";
+		color_group = "SyntaxLslConstantString";
 	}
 	else if (key_in == "constants-vector")
 	{
-		ColourGroup = "SyntaxLslConstantVector";
+		color_group = "SyntaxLslConstantVector";
 	}
 	else if (key_in == "misc-flow-label")
 	{
-		ColourGroup = "SyntaxLslControlFlow";
+		color_group = "SyntaxLslControlFlow";
 	}
 	else if (key_in =="deprecated")
 	{
-		ColourGroup = "SyntaxLslDeprecated";
+		color_group = "SyntaxLslDeprecated";
 	}
 	else if (key_in == "events")
 	{
-		ColourGroup = "SyntaxLslEvent";
+		color_group = "SyntaxLslEvent";
 	}
 	else if (key_in == "functions")
 	{
-		ColourGroup = "SyntaxLslFunction";
+		color_group = "SyntaxLslFunction";
 	}
 	else if (key_in =="god-mode")
 	{
-		ColourGroup = "SyntaxLslGodMode";
+		color_group = "SyntaxLslGodMode";
 	}
 	else if (key_in == "types")
 	{
-		ColourGroup = "SyntaxLslDataType";
+		color_group = "SyntaxLslDataType";
 	}
 	else if (key_in == "sections")
 	{
-		ColourGroup = "SyntaxLslSection";
+		color_group = "SyntaxLslSection";
 	}
 	else if (key_in == "misc-double_quotation_marks")
 	{
-		ColourGroup = "SyntaxLslStringLiteral";
+		color_group = "SyntaxLslStringLiteral";
 	}
 	else if (key_in == "misc-comments_1_sided")
 	{
-		ColourGroup = "SyntaxLslComment1Sided";
+		color_group = "SyntaxLslComment1Sided";
 	}
 	else if (key_in == "misc-comments_2_sided")
 	{
-		ColourGroup = "SyntaxLslComment2Sided";	
+		color_group = "SyntaxLslComment2Sided";	
 	}
 	else
 	{
 		LL_WARNS("SyntaxLSL") << "Color key '" << key_in << "' not recognized!" << LL_ENDL;
 	}
 
-	return LLUIColorTable::instance().getColor(ColourGroup);
+	return LLUIColorTable::instance().getColor(color_group);
 }
 
 void LLKeywords::initialise(LLSD SyntaxXML)
@@ -271,107 +271,107 @@ void LLKeywords::processTokens()
 	addToken(LLKeywordToken::TT_TWO_SIDED_DELIMITER, "/*", getColorGroup("misc-comments_2_sided"), "Comment (multi-line)\nNon-functional commentary or disabled code", "*/" );
 	addToken(LLKeywordToken::TT_DOUBLE_QUOTATION_MARKS, "\"", getColorGroup("misc-double_quotation_marks"), "String literal", "\"" );
 
-	LLSD::map_iterator outerIt = mSyntax.beginMap();
-	for ( ; outerIt != mSyntax.endMap(); ++outerIt)
+	LLSD::map_iterator itr = mSyntax.beginMap();
+	for ( ; itr != mSyntax.endMap(); ++itr)
 	{
-		if (outerIt->first == "llsd-lsl-syntax-version")
+		if (itr->first == "llsd-lsl-syntax-version")
 		{
 			// Skip over version key.
 		}
 		else
 		{
-			if (outerIt->second.isMap())
+			if (itr->second.isMap())
 			{
-				processTokensGroup(outerIt->second, outerIt->first);
+				processTokensGroup(itr->second, itr->first);
 			}
 			else
 			{
-				LL_WARNS("LSL-Tokens-Processing") << "Map for " + outerIt->first + " entries is missing! Ignoring." << LL_ENDL;
+				LL_WARNS("LSL-Tokens-Processing") << "Map for " + itr->first + " entries is missing! Ignoring." << LL_ENDL;
 			}
 		}
 	}
 	LL_INFOS("SyntaxLSL") << "Finished processing tokens." << LL_ENDL;
 }
 
-void LLKeywords::processTokensGroup(LLSD& Tokens, const std::string Group)
+void LLKeywords::processTokensGroup(const LLSD& tokens, const std::string& group)
 {
-	LLColor4 Color;
-	LLColor4 ColorGroup;
-	LLColor4 ColorDeprecated = getColorGroup("deprecated");
-	LLColor4 ColorGM = getColorGroup("god-mode");
+	LLColor4 color;
+	LLColor4 color_group;
+	LLColor4 color_deprecated = getColorGroup("deprecated");
+	LLColor4 color_god_mode = getColorGroup("god-mode");
 
 	LLKeywordToken::ETokenType token_type = LLKeywordToken::TT_UNKNOWN;
 	// If a new token type is added here, it must also be added to the 'addToken' method
-	if (Group == "constants")
+	if (group == "constants")
 	{
 		token_type = LLKeywordToken::TT_CONSTANT;
 	}
-	else if (Group == "controls")
+	else if (group == "controls")
 	{
 		token_type = LLKeywordToken::TT_CONTROL;
 	}
-	else if (Group == "events")
+	else if (group == "events")
 	{
 		token_type = LLKeywordToken::TT_EVENT;
 	}
-	else if (Group == "functions")
+	else if (group == "functions")
 	{
 		token_type = LLKeywordToken::TT_FUNCTION;
 	}
-	else if (Group == "label")
+	else if (group == "label")
 	{
 		token_type = LLKeywordToken::TT_LABEL;
 	}
-	else if (Group == "types")
+	else if (group == "types")
 	{
 		token_type = LLKeywordToken::TT_TYPE;
 	}
 
-	ColorGroup = getColorGroup(Group);
-	LL_INFOS("Tokens") << "Group: '" << Group << "', using colour: '" << ColorGroup << "'" << LL_ENDL;
+	color_group = getColorGroup(group);
+	LL_INFOS("Tokens") << "Group: '" << group << "', using color: '" << color_group << "'" << LL_ENDL;
 
-	if (Tokens.isMap())
+	if (tokens.isMap())
 	{
-		LLSD::map_iterator outerIt = Tokens.beginMap();
-		for ( ; outerIt != Tokens.endMap(); ++outerIt)
+		LLSD::map_const_iterator outer_itr = tokens.beginMap();
+		for ( ; outer_itr != tokens.endMap(); ++outer_itr)
 		{
-			if (outerIt->second.isMap())
+			if (outer_itr->second.isMap())
 			{
 				mAttributes.clear();
-				LLSD arguments = LLSD ();
-				LLSD::map_iterator innerIt = outerIt->second.beginMap();
-				for ( ; innerIt != outerIt->second.endMap(); ++innerIt)
+				LLSD arguments = LLSD();
+				LLSD::map_const_iterator inner_itr = outer_itr->second.beginMap();
+				for ( ; inner_itr != outer_itr->second.endMap(); ++inner_itr)
 				{
-					if (innerIt->first == "arguments")
+					if (inner_itr->first == "arguments")
 					{ 
-						if (innerIt->second.isArray())
+						if (inner_itr->second.isArray())
 						{
-							arguments = innerIt->second;
+							arguments = inner_itr->second;
 						}
 					}
-					else if (!innerIt->second.isMap() && !innerIt->second.isArray())
+					else if (!inner_itr->second.isMap() && !inner_itr->second.isArray())
 					{
-						mAttributes[innerIt->first] = innerIt->second.asString();
+						mAttributes[inner_itr->first] = inner_itr->second.asString();
 					}
 					else
 					{
-						LL_WARNS("SyntaxLSL") << "Not a valid attribute: " << innerIt->first << LL_ENDL;
+						LL_WARNS("SyntaxLSL") << "Not a valid attribute: " << inner_itr->first << LL_ENDL;
 					}
 				}
 
 				std::string tooltip = "";
 				if (token_type == LLKeywordToken::TT_CONSTANT)
 				{
-					ColorGroup = getColorGroup(Group + "-" + getAttribute("type"));
+					color_group = getColorGroup(group + "-" + getAttribute("type"));
 					tooltip = "Type: " + getAttribute("type") + ", Value: " + getAttribute("value");
 				}
 				else if (token_type == LLKeywordToken::TT_EVENT)
 				{
-					tooltip = outerIt->first + "(" + getArguments(arguments) + ")";
+					tooltip = outer_itr->first + "(" + getArguments(arguments) + ")";
 				}
 				else if (token_type == LLKeywordToken::TT_FUNCTION)
 				{
-					tooltip = getAttribute("return") + " " + outerIt->first + "(" + getArguments(arguments) + ");";
+					tooltip = getAttribute("return") + " " + outer_itr->first + "(" + getArguments(arguments) + ");";
 					tooltip += "\nEnergy: ";
 					tooltip += getAttribute("energy") == "" ? "0.0" : getAttribute("energy");
 					if (getAttribute("sleep") != "")
@@ -389,28 +389,28 @@ void LLKeywords::processTokensGroup(LLSD& Tokens, const std::string Group)
 					tooltip += getAttribute("tooltip");
 				}
 
-				Color = getAttribute("deprecated") == "true" ? ColorDeprecated : ColorGroup;
+				color = getAttribute("deprecated") == "true" ? color_deprecated : color_group;
 
 				if (getAttribute("god-mode") == "true")
 				{
-					Color = ColorGM;
+					color = color_god_mode;
 				}
 
-				addToken(token_type, outerIt->first, Color, tooltip);
+				addToken(token_type, outer_itr->first, color, tooltip);
 			}
 		}
 	}
-	else if (Tokens.isArray())	// Currently nothing should need this, but it's here for completeness
+	else if (tokens.isArray())	// Currently nothing should need this, but it's here for completeness
 	{
-		LL_INFOS("SyntaxLSL") << "Curious, shouldn't be an array here; adding all using color " << Color << LL_ENDL;
-		for (int count = 0; count < Tokens.size(); ++count)
+		LL_INFOS("SyntaxLSL") << "Curious, shouldn't be an array here; adding all using color " << color << LL_ENDL;
+		for (int count = 0; count < tokens.size(); ++count)
 		{
-			addToken(token_type, Tokens[count], Color, "");
+			addToken(token_type, tokens[count], color, "");
 		}
 	}
 	else
 	{
-		LL_WARNS("Tokens") << "Invalid map/array passed: '" << Tokens << "'" << LL_ENDL;
+		LL_WARNS("Tokens") << "Invalid map/array passed: '" << tokens << "'" << LL_ENDL;
 	}
 }
 
@@ -511,11 +511,11 @@ LLColor4 LLKeywords::readColor(LLSD& sd)
 {
 	if (sd.isArray())
 	{
-		return LLColor4 (sd, 1.f);
+		return LLColor4(sd, 1.f);
 	}
 	else if (sd.isMap())
 	{
-		return LLColor4 ( sd.get("x").asReal(), sd.get("y").asReal(), sd.get("z").asReal(), 1.f );
+		return LLColor4( sd.get("x").asReal(), sd.get("y").asReal(), sd.get("z").asReal(), 1.f );
 	}
 	else
 	{
diff --git a/indra/llui/llkeywords.h b/indra/llui/llkeywords.h
index 69bc8919db..b17e9dd942 100755
--- a/indra/llui/llkeywords.h
+++ b/indra/llui/llkeywords.h
@@ -109,9 +109,9 @@ public:
 	LLKeywords();
 	~LLKeywords();
 
-	void		addColorGroup(const std::string key_in, const LLColor4 color);
+	void		addColorGroup(const std::string& key_in, const LLColor4& color);
 	void		clearLoaded() { mLoaded = false; }
-	LLColor4	getColorGroup(const std::string key_in);
+	LLColor4	getColorGroup(const std::string& key_in);
 	bool		isLoaded() const	{ return mLoaded; }
 
 	void		findSegments(std::vector<LLTextSegmentPtr> *seg_list, const LLWString& text, const LLColor4 &defaultColor, class LLTextEditor& editor );
@@ -167,7 +167,7 @@ public:
 #endif
 
 protected:
-	void		processTokensGroup(LLSD& Tokens, const std::string Group);
+	void		processTokensGroup(const LLSD& Tokens, const std::string& Group);
 	LLColor4	readColor(const std::string& s);
 	LLColor4	readColor(LLSD& sd);
 	void		insertSegment(std::vector<LLTextSegmentPtr>& seg_list, LLTextSegmentPtr new_segment, S32 text_len, const LLColor4 &defaultColor, class LLTextEditor& editor);
diff --git a/indra/newview/app_settings/keywords_lsl_default.xml b/indra/newview/app_settings/keywords_lsl_default.xml
index 83801a7e1e..53a89f0f09 100755
--- a/indra/newview/app_settings/keywords_lsl_default.xml
+++ b/indra/newview/app_settings/keywords_lsl_default.xml
@@ -89,7 +89,7 @@
          <key>vector</key>
          <map>
             <key>tooltip</key>
-            <string>A vector is a data type that contains a set of three float values.\nVectors are used to represent colours (RGB), positions, and directions/velocities.</string>
+            <string>A vector is a data type that contains a set of three float values.\nVectors are used to represent colors (RGB), positions, and directions/velocities.</string>
          </map>
       </map>
       <key>constants</key>
@@ -852,7 +852,7 @@
             <key>value</key>
             <string>0x2</string>
             <key>tooltip</key>
-            <string>The object colour has changed.</string>
+            <string>The object color has changed.</string>
          </map>
          <key>CHANGED_INVENTORY</key>
          <map>
@@ -4372,7 +4372,7 @@
             <key>value</key>
             <integer>3</integer>
             <key>tooltip</key>
-            <string>A vector &lt;r, g, b&gt; which determines the ending colour of the object.</string>
+            <string>A vector &lt;r, g, b&gt; which determines the ending color of the object.</string>
          </map>
          <key>PSYS_PART_END_GLOW</key>
          <map>
@@ -4426,7 +4426,7 @@
             <key>value</key>
             <string>0x1</string>
             <key>tooltip</key>
-            <string>Interpolate both the colour and alpha from the start value to the end value.</string>
+            <string>Interpolate both the color and alpha from the start value to the end value.</string>
          </map>
          <key>PSYS_PART_INTERP_SCALE_MASK</key>
          <map>
@@ -4471,7 +4471,7 @@
             <key>value</key>
             <integer>1</integer>
             <key>tooltip</key>
-            <string>A vector &lt;r.r, g.g, b.b&gt; which determines the starting colour of the object.</string>
+            <string>A vector &lt;r.r, g.g, b.b&gt; which determines the starting color of the object.</string>
          </map>
          <key>PSYS_PART_START_GLOW</key>
          <map>
@@ -9032,7 +9032,7 @@
                </map>
             </array>
             <key>tooltip</key>
-            <string>Returns the color on Face.\nReturns the colour of Face as a vector of red, green, and blue values between 0 and 1. If face is ALL_SIDES the colour returned is the mean average of each channel.</string>
+            <string>Returns the color on Face.\nReturns the color of Face as a vector of red, green, and blue values between 0 and 1. If face is ALL_SIDES the color returned is the mean average of each channel.</string>
          </map>
          <key>llGetCreator</key>
          <map>
@@ -15304,7 +15304,7 @@
             <key>arguments</key>
             <array>
                <map>
-                  <key>Colour</key>
+                  <key>Color</key>
                   <map>
                      <key>type</key>
                      <string>vector</string>
@@ -15323,7 +15323,7 @@
                </map>
             </array>
             <key>tooltip</key>
-            <string>Sets the color, for the face.\nSets the colour of the side specified. If Face is ALL_SIDES, sets the colour on all faces.</string>
+            <string>Sets the color, for the face.\nSets the color of the side specified. If Face is ALL_SIDES, sets the color on all faces.</string>
          </map>
          <key>llSetContentType</key>
          <map>
@@ -15671,7 +15671,7 @@
                   </map>
                </map>
                <map>
-                  <key>Colour</key>
+                  <key>Color</key>
                   <map>
                      <key>type</key>
                      <string>vector</string>
@@ -15690,7 +15690,7 @@
                </map>
             </array>
             <key>tooltip</key>
-            <string>If a task exists in the link chain at LinkNumber, set the Face to color.\nSets the colour of the linked child's side, specified by LinkNumber.</string>
+            <string>If a task exists in the link chain at LinkNumber, set the Face to color.\nSets the color of the linked child's side, specified by LinkNumber.</string>
          </map>
          <key>llSetLinkMedia</key>
          <map>
diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp
index 1d95276c51..fae4aeb7bc 100755
--- a/indra/newview/llpreviewscript.cpp
+++ b/indra/newview/llpreviewscript.cpp
@@ -374,6 +374,7 @@ LLScriptEdCore::LLScriptEdCore(
 
 	setXMLFilename("panel_script_ed.xml");
 	llassert_always(mContainer != NULL);
+	mRegionChangedCallback = gAgent.addRegionChangedCallback(boost::bind(&LLScriptEdCore::updateKeywords, this));
 }
 
 LLScriptEdCore::~LLScriptEdCore()
@@ -389,6 +390,7 @@ LLScriptEdCore::~LLScriptEdCore()
 	}
 
 	delete mLiveFile;
+	mRegionChangedCallback.disconnect();
 }
 
 BOOL LLScriptEdCore::postBuild()
@@ -407,25 +409,20 @@ BOOL LLScriptEdCore::postBuild()
 
 	initMenu();
 
-	mSyntaxIdLSL.addFileFetchedCallback(boost::bind(&LLScriptEdCore::processKeywords, this));
+	LLSyntaxIdLSL::getInstance()->addFileFetchedCallback(boost::bind(&LLScriptEdCore::processKeywords, this));
 
 	// Intialise keyword highlighting for the current simulator's version of LSL
-	mSyntaxIdLSL.initialise();
+	LLSyntaxIdLSL::getInstance()->initialise();
 
-	if (mSyntaxIdLSL.isDifferentVersion())
+	if (LLSyntaxIdLSL::getInstance()->isDifferentVersion())
 	{
 		processLoaded();
 	}
 	else
 	{
-		LL_INFOS("SyntaxLSL")
-				<< "Hashes are the same, no need to update highlighter." << LL_ENDL;
+		LL_DEBUGS("SyntaxLSL") << "Hashes are the same, no need to update highlighter." << LL_ENDL;
 	}
 
-
-	// Set up a callback for region changes
-	mRegionChangedCallback = gAgent.addRegionChangedCallback(boost::bind(&LLScriptEdCore::updateKeywords, this));
-
 	return TRUE;
 }
 
@@ -434,7 +431,6 @@ void LLScriptEdCore::updateKeywords()
 	if (mLive)
 	{
 		mEditor->clearSegments();
-		mRegionChangedCallback.disconnect();
 	}
 	else
 	{
@@ -444,61 +440,54 @@ void LLScriptEdCore::updateKeywords()
 
 void LLScriptEdCore::processLoaded()
 {
-	mSyntaxIdLSL.initialise();
-	if (mSyntaxIdLSL.isLoaded())
+	LLSyntaxIdLSL::getInstance()->initialise();
+	if (LLSyntaxIdLSL::getInstance()->isLoaded())
 	{
 		processKeywords();
 	}
 	else
 	{
-		LL_INFOS("SyntaxLSL")
-				<< "Hashes are different, waiting for the syntax file to be retrieved." << LL_ENDL;
+		LL_DEBUGS("SyntaxLSL") << "Hashes are different, waiting for the syntax file to be retrieved." << LL_ENDL;
 	}
 }
 
 void LLScriptEdCore::processKeywords()
 {
-	if (mSyntaxIdLSL.isLoaded())
+	if (LLSyntaxIdLSL::getInstance()->isLoaded())
 	{
-		LL_INFOS("SyntaxLSL")
-				<< "Hashes are different, updating highlighter." << LL_ENDL;
+		LL_DEBUGS("SyntaxLSL") << "Hashes are different, updating highlighter." << LL_ENDL;
 
 		mEditor->clearSegments();
 
-		if (mSyntaxIdLSL.isLoaded())
-		{
-			mEditor->initKeywords();
-			mEditor->loadKeywords();
-
-			std::vector<std::string> primary_keywords;
-			std::vector<std::string> secondary_keywords;
-			LLKeywordToken *token;
-			LLKeywords::keyword_iterator_t token_it;
-			for (token_it = mEditor->keywordsBegin(); token_it != mEditor->keywordsEnd(); ++token_it)
-			{
-				token = token_it->second;
-				if (token->getType() == LLKeywordToken::TT_FUNCTION)
-				{
-					primary_keywords.push_back( wstring_to_utf8str(token->getToken()) );
-				}
-				else
-				{
-					secondary_keywords.push_back( wstring_to_utf8str(token->getToken()) );
-				}
-			}
+		mEditor->initKeywords();
+		mEditor->loadKeywords();
 
-			for (std::vector<std::string>::const_iterator iter= primary_keywords.begin();
-				 iter!= primary_keywords.end(); ++iter)
+		string_vec_t primary_keywords;
+		string_vec_t secondary_keywords;
+		LLKeywordToken *token;
+		LLKeywords::keyword_iterator_t token_it;
+		for (token_it = mEditor->keywordsBegin(); token_it != mEditor->keywordsEnd(); ++token_it)
+		{
+			token = token_it->second;
+			if (token->getType() == LLKeywordToken::TT_FUNCTION)
 			{
-				mFunctions->add(*iter);
+				primary_keywords.push_back( wstring_to_utf8str(token->getToken()) );
 			}
-
-			for (std::vector<std::string>::const_iterator iter= secondary_keywords.begin();
-				 iter!= secondary_keywords.end(); ++iter)
+			else
 			{
-				mFunctions->add(*iter);
+				secondary_keywords.push_back( wstring_to_utf8str(token->getToken()) );
 			}
 		}
+		for (string_vec_t::const_iterator iter = primary_keywords.begin();
+			 iter!= primary_keywords.end(); ++iter)
+		{
+			mFunctions->add(*iter);
+		}
+		for (string_vec_t::const_iterator iter = secondary_keywords.begin();
+			 iter!= secondary_keywords.end(); ++iter)
+		{
+			mFunctions->add(*iter);
+		}
 	}
 }
 
diff --git a/indra/newview/llpreviewscript.h b/indra/newview/llpreviewscript.h
index 3ac48ae9c4..966c149d3d 100755
--- a/indra/newview/llpreviewscript.h
+++ b/indra/newview/llpreviewscript.h
@@ -156,7 +156,6 @@ private:
 	BOOL			mEnableSave;
 	BOOL			mHasScriptData;
 	LLLiveLSLFile*	mLiveFile;
-	LLSyntaxIdLSL	mSyntaxIdLSL;
 
 	LLScriptEdContainer* mContainer; // parent view
 
diff --git a/indra/newview/llsyntaxid.cpp b/indra/newview/llsyntaxid.cpp
index 14265fd3af..3f726fa8b5 100644
--- a/indra/newview/llsyntaxid.cpp
+++ b/indra/newview/llsyntaxid.cpp
@@ -127,13 +127,13 @@ LLSyntaxIdLSL::file_fetched_signal_t	LLSyntaxIdLSL::sFileFetchedSignal;
 /**
  * @brief LLSyntaxIdLSL constructor
  */
-LLSyntaxIdLSL::LLSyntaxIdLSL(std::string filenameDefault, std::string simFeatureName, std::string capabilityName) :
-	mFilePath(LL_PATH_APP_SETTINGS)
+LLSyntaxIdLSL::LLSyntaxIdLSL(const std::string& filename, const std::string& sim_feature, const std::string& capability)
+:	mFilePath(LL_PATH_APP_SETTINGS)
 {
-	mCapabilityName = capabilityName;
-	mFileNameCurrent = filenameDefault;
-	mFileNameDefault = filenameDefault;
-	mSimulatorFeature = simFeatureName;
+	mCapabilityName = capability;
+	mFileNameCurrent = filename;
+	mFileNameDefault = filename;
+	mSimulatorFeature = sim_feature;
 	mSyntaxIdCurrent = LLUUID();
 }
 
@@ -321,6 +321,9 @@ void LLSyntaxIdLSL::initialise()
 //-----------------------------------------------------------------------------
 // isSupportedVersion
 //-----------------------------------------------------------------------------
+const U32         LLSD_SYNTAX_LSL_VERSION_EXPECTED = 2;
+const std::string LLSD_SYNTAX_LSL_VERSION_KEY("llsd-lsl-syntax-version");
+
 bool LLSyntaxIdLSL::isSupportedVersion(const LLSD& content)
 {
 	bool isValid = false;
@@ -328,8 +331,6 @@ bool LLSyntaxIdLSL::isSupportedVersion(const LLSD& content)
 	 * If the schema used to store LSL keywords and hints changes, this value is incremented
 	 * Note that it should _not_ be changed if the keywords and hints _content_ changes.
 	 */
-	const U32         LLSD_SYNTAX_LSL_VERSION_EXPECTED = 2;
-	const std::string LLSD_SYNTAX_LSL_VERSION_KEY("llsd-lsl-syntax-version");
 
 	if (content.has(LLSD_SYNTAX_LSL_VERSION_KEY))
 	{
diff --git a/indra/newview/llsyntaxid.h b/indra/newview/llsyntaxid.h
index 1f7e893b38..75cfc45380 100644
--- a/indra/newview/llsyntaxid.h
+++ b/indra/newview/llsyntaxid.h
@@ -75,7 +75,7 @@ private:
 
 public:
 	LLSyntaxIdLSL();
-	LLSyntaxIdLSL(std::string filenameDefault, std::string simFeatureName, std::string capabilityName);
+	LLSyntaxIdLSL(const std::string& filename, const std::string& sim_feature, const std::string& capability);
 
 	bool			checkSyntaxIdChanged();
 	bool			fetching();
@@ -104,9 +104,9 @@ protected:
 	void			loadDefaultKeywordsIntoLLSD();
 	void			loadKeywordsIntoLLSD();
 	void			setSyntaxId(LLUUID SyntaxId) { mSyntaxIdCurrent = SyntaxId; }
-	void			setFileNameCurrent(std::string& name) { mFileNameCurrent = name; }
-	void			setFileNameDefault(std::string& name) { mFileNameDefault = name; }
-	void			setFileNameNew(std::string name) { mFileNameNew = name; }
+	void			setFileNameCurrent(const std::string& name) { mFileNameCurrent = name; }
+	void			setFileNameDefault(const std::string& name) { mFileNameDefault = name; }
+	void			setFileNameNew(const std::string name) { mFileNameNew = name; }
 };
 
 
-- 
cgit v1.2.3


From 1e851a2eb70e5f6b12a47c382efb3b9b17674993 Mon Sep 17 00:00:00 2001
From: Oz Linden <oz@lindenlab.com>
Date: Wed, 7 May 2014 15:18:44 -0400
Subject: correct bad merges from 3.7.7-release

---
 indra/llui/llkeywords.cpp         |  4 ++--
 indra/llui/lltexteditor.cpp       | 28 +++++++++++++++++-----------
 indra/newview/llappearancemgr.cpp |  4 ++--
 indra/newview/llscripteditor.cpp  |  6 +++---
 4 files changed, 24 insertions(+), 18 deletions(-)

(limited to 'indra')

diff --git a/indra/llui/llkeywords.cpp b/indra/llui/llkeywords.cpp
index 07c84e57c0..c79468ba5b 100755
--- a/indra/llui/llkeywords.cpp
+++ b/indra/llui/llkeywords.cpp
@@ -523,13 +523,13 @@ LLColor4 LLKeywords::readColor(LLSD& sd)
 	}
 }
 
-LLFastTimer::DeclareTimer FTM_SYNTAX_COLORING("Syntax Coloring");
+LLTrace::BlockTimerStatHandle FTM_SYNTAX_COLORING("Syntax Coloring");
 
 // Walk through a string, applying the rules specified by the keyword token list and
 // create a list of color segments.
 void LLKeywords::findSegments(std::vector<LLTextSegmentPtr>* seg_list, const LLWString& wtext, const LLColor4 &defaultColor, LLTextEditor& editor)
 {
-	LLFastTimer ft(FTM_SYNTAX_COLORING);
+	LL_RECORD_BLOCK_TIME(FTM_SYNTAX_COLORING);
 	seg_list->clear();
 
 	if( wtext.empty() )
diff --git a/indra/llui/lltexteditor.cpp b/indra/llui/lltexteditor.cpp
index b18c545f30..7818f6e285 100755
--- a/indra/llui/lltexteditor.cpp
+++ b/indra/llui/lltexteditor.cpp
@@ -792,7 +792,7 @@ BOOL LLTextEditor::handleHover(S32 x, S32 y, MASK mask)
 			setCursorAtLocalPos( clamped_x, clamped_y, true );
 			mSelectionEnd = mCursorPos;
 		}
-		lldebugst(LLERR_USER_INPUT) << "hover handled by " << getName() << " (active)" << llendl;		
+		LL_DEBUGS("UserInput") << "hover handled by " << getName() << " (active)" << LL_ENDL;		
 		getWindow()->setCursor(UI_CURSOR_IBEAM);
 		handled = TRUE;
 	}
@@ -2567,20 +2567,20 @@ BOOL LLTextEditor::importBuffer(const char* buffer, S32 length )
 	instream.getline(tbuf, MAX_STRING);
 	if( 1 != sscanf(tbuf, "Linden text version %d", &version) )
 	{
-		llwarns << "Invalid Linden text file header " << llendl;
+		LL_WARNS() << "Invalid Linden text file header " << LL_ENDL;
 		return FALSE;
 	}
 
 	if( 1 != version )
 	{
-		llwarns << "Invalid Linden text file version: " << version << llendl;
+		LL_WARNS() << "Invalid Linden text file version: " << version << LL_ENDL;
 		return FALSE;
 	}
 
 	instream.getline(tbuf, MAX_STRING);
 	if( 0 != sscanf(tbuf, "{") )
 	{
-		llwarns << "Invalid Linden text file format" << llendl;
+		LL_WARNS() << "Invalid Linden text file format" << LL_ENDL;
 		return FALSE;
 	}
 
@@ -2588,13 +2588,13 @@ BOOL LLTextEditor::importBuffer(const char* buffer, S32 length )
 	instream.getline(tbuf, MAX_STRING);
 	if( 1 != sscanf(tbuf, "Text length %d", &text_len) )
 	{
-		llwarns << "Invalid Linden text length field" << llendl;
+		LL_WARNS() << "Invalid Linden text length field" << LL_ENDL;
 		return FALSE;
 	}
 
 	if( text_len > mMaxTextByteLength )
 	{
-		llwarns << "Invalid Linden text length: " << text_len << llendl;
+		LL_WARNS() << "Invalid Linden text length: " << text_len << LL_ENDL;
 		return FALSE;
 	}
 
@@ -2603,21 +2603,21 @@ BOOL LLTextEditor::importBuffer(const char* buffer, S32 length )
 	char* text = new char[ text_len + 1];
 	if (text == NULL)
 	{
-		llerrs << "Memory allocation failure." << llendl;			
+		LL_ERRS() << "Memory allocation failure." << LL_ENDL;			
 		return FALSE;
 	}
 	instream.get(text, text_len + 1, '\0');
 	text[text_len] = '\0';
 	if( text_len != (S32)strlen(text) )/* Flawfinder: ignore */
 	{
-		llwarns << llformat("Invalid text length: %d != %d ",strlen(text),text_len) << llendl;/* Flawfinder: ignore */
+		LL_WARNS() << llformat("Invalid text length: %d != %d ",strlen(text),text_len) << LL_ENDL;/* Flawfinder: ignore */
 		success = FALSE;
 	}
 
 	instream.getline(tbuf, MAX_STRING);
 	if( success && (0 != sscanf(tbuf, "}")) )
 	{
-		llwarns << "Invalid Linden text file format: missing terminal }" << llendl;
+		LL_WARNS() << "Invalid Linden text file format: missing terminal }" << LL_ENDL;
 		success = FALSE;
 	}
 
@@ -2680,7 +2680,7 @@ void LLTextEditor::resetPreedit()
     {
 		if (hasPreeditString())
         {
-            llwarns << "Preedit and selection!" << llendl;
+            LL_WARNS() << "Preedit and selection!" << LL_ENDL;
             deselect();
         }
         else
@@ -2690,6 +2690,12 @@ void LLTextEditor::resetPreedit()
     }
 	if (hasPreeditString())
 	{
+		if (hasSelection())
+		{
+			LL_WARNS() << "Preedit and selection!" << LL_ENDL;
+			deselect();
+		}
+
 		setCursorPos(mPreeditPositions.front());
 		removeStringNoUndo(mCursorPos, mPreeditPositions.back() - mCursorPos);
 		insertStringNoUndo(mCursorPos, mPreeditOverwrittenWString);
@@ -2879,7 +2885,7 @@ void LLTextEditor::markAsPreedit(S32 position, S32 length)
 	setCursorPos(position);
 	if (hasPreeditString())
 	{
-		llwarns << "markAsPreedit invoked when hasPreeditString is true." << llendl;
+		LL_WARNS() << "markAsPreedit invoked when hasPreeditString is true." << LL_ENDL;
 	}
 	mPreeditWString = LLWString( getWText(), position, length );
 	if (length > 0)
diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp
index 3024e90894..bab4936bb4 100755
--- a/indra/newview/llappearancemgr.cpp
+++ b/indra/newview/llappearancemgr.cpp
@@ -1435,9 +1435,9 @@ void LLAppearanceMgr::takeOffOutfit(const LLUUID& cat_id)
 	// deactivate all gestures in the outfit folder
 	LLInventoryModel::item_array_t gest_items;
 	getDescendentsOfAssetType(cat_id, gest_items, LLAssetType::AT_GESTURE, false);
-	for(S32 i = 0; i  < gest_items.count(); ++i)
+	for(S32 i = 0; i  < gest_items.size(); ++i)
 	{
-		LLViewerInventoryItem *gest_item = gest_items.get(i);
+		LLViewerInventoryItem *gest_item = gest_items[i];
 		if ( LLGestureMgr::instance().isGestureActive( gest_item->getLinkedUUID()) )
 		{
 			LLGestureMgr::instance().deactivateGesture( gest_item->getLinkedUUID() );
diff --git a/indra/newview/llscripteditor.cpp b/indra/newview/llscripteditor.cpp
index 5d87f7ba0c..12c328e809 100644
--- a/indra/newview/llscripteditor.cpp
+++ b/indra/newview/llscripteditor.cpp
@@ -49,11 +49,11 @@ void LLScriptEditor::initKeywords()
 	mKeywords.initialise(LLSyntaxIdLSL::getInstance()->getKeywordsXML());
 }
 
-static LLFastTimer::DeclareTimer FTM_SYNTAX_HIGHLIGHTING("Syntax Highlighting");
+LLTrace::BlockTimerStatHandle FTM_SYNTAX_HIGHLIGHTING("Syntax Highlighting");
 
 void LLScriptEditor::loadKeywords()
 {
-	LLFastTimer ft(FTM_SYNTAX_HIGHLIGHTING);
+	LL_RECORD_BLOCK_TIME(FTM_SYNTAX_HIGHLIGHTING);
 	mKeywords.processTokens();
 	
 	segment_vec_t segment_list;
@@ -71,7 +71,7 @@ void LLScriptEditor::updateSegments()
 {
 	if (mReflowIndex < S32_MAX && mKeywords.isLoaded() && mParseOnTheFly)
 	{
-		LLFastTimer ft(FTM_SYNTAX_HIGHLIGHTING);
+		LL_RECORD_BLOCK_TIME(FTM_SYNTAX_HIGHLIGHTING);
 		// HACK:  No non-ascii keywords for now
 		segment_vec_t segment_list;
 		mKeywords.findSegments(&segment_list, getWText(), mDefaultColor.get(), *this);
-- 
cgit v1.2.3


From 8501d6494bceeea962d7251d882ddc244a8daa7f Mon Sep 17 00:00:00 2001
From: Cinder <cinder.roxley@phoenixviewer.com>
Date: Wed, 7 May 2014 19:58:56 -0600
Subject: Code policy

---
 indra/llui/llkeywords.cpp                          |  2 +-
 indra/llui/llkeywords.h                            |  2 +-
 .../newview/app_settings/keywords_lsl_default.xml  |  2 +-
 indra/newview/llpreviewscript.cpp                  |  4 +--
 indra/newview/llpreviewscript.h                    |  2 +-
 indra/newview/llscripteditor.cpp                   |  2 +-
 indra/newview/llsyntaxid.cpp                       | 38 ++++++++--------------
 indra/newview/llsyntaxid.h                         | 24 ++++----------
 8 files changed, 27 insertions(+), 49 deletions(-)

(limited to 'indra')

diff --git a/indra/llui/llkeywords.cpp b/indra/llui/llkeywords.cpp
index bae604e270..346b9a83bd 100755
--- a/indra/llui/llkeywords.cpp
+++ b/indra/llui/llkeywords.cpp
@@ -251,7 +251,7 @@ LLColor4 LLKeywords::getColorGroup(const std::string& key_in)
 	return LLUIColorTable::instance().getColor(color_group);
 }
 
-void LLKeywords::initialise(LLSD SyntaxXML)
+void LLKeywords::initialize(LLSD SyntaxXML)
 {
 	mSyntax = SyntaxXML;
 	mLoaded = true;
diff --git a/indra/llui/llkeywords.h b/indra/llui/llkeywords.h
index b17e9dd942..eecb327fee 100755
--- a/indra/llui/llkeywords.h
+++ b/indra/llui/llkeywords.h
@@ -115,7 +115,7 @@ public:
 	bool		isLoaded() const	{ return mLoaded; }
 
 	void		findSegments(std::vector<LLTextSegmentPtr> *seg_list, const LLWString& text, const LLColor4 &defaultColor, class LLTextEditor& editor );
-	void		initialise(LLSD SyntaxXML);
+	void		initialize(LLSD SyntaxXML);
 	void		processTokens();
 
 	// Add the token as described
diff --git a/indra/newview/app_settings/keywords_lsl_default.xml b/indra/newview/app_settings/keywords_lsl_default.xml
index 53a89f0f09..02823136ee 100755
--- a/indra/newview/app_settings/keywords_lsl_default.xml
+++ b/indra/newview/app_settings/keywords_lsl_default.xml
@@ -21,7 +21,7 @@
          <key>for</key>
          <map>
             <key>tooltip</key>
-            <string>for loop\nfor (&lt;initialiser&gt;; &lt;condition&gt;; &lt;post-iteration-statement&gt;)\n{ ...\n}</string>
+            <string>for loop\nfor (&lt;initializer&gt;; &lt;condition&gt;; &lt;post-iteration-statement&gt;)\n{ ...\n}</string>
          </map>
          <key>if</key>
          <map>
diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp
index fae4aeb7bc..73dc19dd81 100755
--- a/indra/newview/llpreviewscript.cpp
+++ b/indra/newview/llpreviewscript.cpp
@@ -412,7 +412,7 @@ BOOL LLScriptEdCore::postBuild()
 	LLSyntaxIdLSL::getInstance()->addFileFetchedCallback(boost::bind(&LLScriptEdCore::processKeywords, this));
 
 	// Intialise keyword highlighting for the current simulator's version of LSL
-	LLSyntaxIdLSL::getInstance()->initialise();
+	LLSyntaxIdLSL::getInstance()->initialize();
 
 	if (LLSyntaxIdLSL::getInstance()->isDifferentVersion())
 	{
@@ -440,7 +440,7 @@ void LLScriptEdCore::updateKeywords()
 
 void LLScriptEdCore::processLoaded()
 {
-	LLSyntaxIdLSL::getInstance()->initialise();
+	LLSyntaxIdLSL::getInstance()->initialize();
 	if (LLSyntaxIdLSL::getInstance()->isLoaded())
 	{
 		processKeywords();
diff --git a/indra/newview/llpreviewscript.h b/indra/newview/llpreviewscript.h
index 966c149d3d..69a72325fc 100755
--- a/indra/newview/llpreviewscript.h
+++ b/indra/newview/llpreviewscript.h
@@ -77,7 +77,7 @@ protected:
 public:
 	~LLScriptEdCore();
 	
-	void			initialiseKeywords();
+	void			initializeKeywords();
 	void			initMenu();
 	void			processKeywords();
 	void			processLoaded();
diff --git a/indra/newview/llscripteditor.cpp b/indra/newview/llscripteditor.cpp
index 5d87f7ba0c..869368e72c 100644
--- a/indra/newview/llscripteditor.cpp
+++ b/indra/newview/llscripteditor.cpp
@@ -46,7 +46,7 @@ LLScriptEditor::LLScriptEditor(const Params& p)
 
 void LLScriptEditor::initKeywords()
 {
-	mKeywords.initialise(LLSyntaxIdLSL::getInstance()->getKeywordsXML());
+	mKeywords.initialize(LLSyntaxIdLSL::getInstance()->getKeywordsXML());
 }
 
 static LLFastTimer::DeclareTimer FTM_SYNTAX_HIGHLIGHTING("Syntax Highlighting");
diff --git a/indra/newview/llsyntaxid.cpp b/indra/newview/llsyntaxid.cpp
index 3f726fa8b5..3582ac024d 100644
--- a/indra/newview/llsyntaxid.cpp
+++ b/indra/newview/llsyntaxid.cpp
@@ -70,7 +70,7 @@ void fetchKeywordsFileResponder::result(const LLSD& content_ref)
 					<< "Supported verson of syntax file." << LL_ENDL;
 
 			LLSyntaxIdLSL::setKeywordsXml(content_ref);
-			LLSyntaxIdLSL::sInitialised = true;
+			LLSyntaxIdLSL::sInitialized = true;
 			LLSyntaxIdLSL::sLoaded = true;
 			LLSyntaxIdLSL::sLoadFailed = false;
 
@@ -117,12 +117,12 @@ const std::string LLSyntaxIdLSL::CAPABILITY_NAME = "LSLSyntax";
 const std::string LLSyntaxIdLSL::FILENAME_DEFAULT = "keywords_lsl_default.xml";
 const std::string LLSyntaxIdLSL::SIMULATOR_FEATURE = "LSLSyntaxId";
 
-bool LLSyntaxIdLSL::sInitialised;
+bool LLSyntaxIdLSL::sInitialized;
 LLSD LLSyntaxIdLSL::sKeywordsXml;
 bool LLSyntaxIdLSL::sLoaded;
 bool LLSyntaxIdLSL::sLoadFailed;
 bool LLSyntaxIdLSL::sVersionChanged;
-LLSyntaxIdLSL::file_fetched_signal_t	LLSyntaxIdLSL::sFileFetchedSignal;
+LLSyntaxIdLSL::file_fetched_signal_t LLSyntaxIdLSL::sFileFetchedSignal;
 
 /**
  * @brief LLSyntaxIdLSL constructor
@@ -207,7 +207,7 @@ bool LLSyntaxIdLSL::checkSyntaxIdChanged()
 			}
 			else
 			{
-				if ( mSyntaxIdCurrent.isNull() && isInitialised())
+				if ( mSyntaxIdCurrent.isNull() && isInitialized())
 				{
 					LL_INFOS("SyntaxLSL")
 							<< "It does not have LSLSyntaxId capability, remaining with default keywords file!"
@@ -255,9 +255,9 @@ void LLSyntaxIdLSL::fetchKeywordsFile()
 
 
 //-----------------------------------------------------------------------------
-// initialise
+// initialize
 //-----------------------------------------------------------------------------
-void LLSyntaxIdLSL::initialise()
+void LLSyntaxIdLSL::initialize()
 {
 	mFileNameNew = mFileNameCurrent;
 	mSyntaxIdNew = mSyntaxIdCurrent;
@@ -309,7 +309,7 @@ void LLSyntaxIdLSL::initialise()
 			loadDefaultKeywordsIntoLLSD();
 		}
 	}
-	else if (!isInitialised())
+	else if (!isInitialized())
 	{
 		loadDefaultKeywordsIntoLLSD();
 	}
@@ -355,8 +355,7 @@ bool LLSyntaxIdLSL::isSupportedVersion(const LLSD& content)
 //-----------------------------------------------------------------------------
 void LLSyntaxIdLSL::loadDefaultKeywordsIntoLLSD()
 {
-	LL_INFOS("SyntaxLSL")
-			<< "LSLSyntaxId is null so we will use the default file!" << LL_ENDL;
+	LL_INFOS("SyntaxLSL") << "LSLSyntaxId is null so we will use the default file!" << LL_ENDL;
 	mSyntaxIdNew = LLUUID();
 	buildFullFileSpec();
 	loadKeywordsIntoLLSD();
@@ -373,9 +372,7 @@ void LLSyntaxIdLSL::loadDefaultKeywordsIntoLLSD()
  */
 void LLSyntaxIdLSL::loadKeywordsIntoLLSD()
 {
-	LL_INFOS("SyntaxLSL")
-			<< "Trying to open cached or default keyword file ;-)"
-			<< LL_ENDL;
+	LL_INFOS("SyntaxLSL") << "Trying to open cached or default keyword file" << LL_ENDL;
 
 	// Is this the right thing to do, or should we leave the old content
 	// even if it isn't entirely accurate anymore?
@@ -389,9 +386,7 @@ void LLSyntaxIdLSL::loadKeywordsIntoLLSD()
 		sLoaded = (bool)LLSDSerialize::fromXML(content, file);
 		if (!sLoaded)
 		{
-			LL_WARNS("SyntaxLSL")
-					<< "Unable to deserialise file: "
-					<< mFullFileSpec << LL_ENDL;
+			LL_WARNS("SyntaxLSL") << "Unable to deserialise file: " << mFullFileSpec << LL_ENDL;
 		}
 		else
 		{
@@ -399,15 +394,13 @@ void LLSyntaxIdLSL::loadKeywordsIntoLLSD()
 			{
 				sKeywordsXml = content;
 				sLoaded = true;
-				sInitialised = true;
-				LL_INFOS("SyntaxLSL")
-						<< "Deserialised file: " << mFullFileSpec << LL_ENDL;
+				sInitialized = true;
+				LL_INFOS("SyntaxLSL") << "Deserialised file: " << mFullFileSpec << LL_ENDL;
 			}
 			else
 			{
 				sLoaded = false;
-				LL_WARNS("SyntaxLSL")
-					<< "Unknown or unsupported version of syntax file." << LL_ENDL;
+				LL_WARNS("SyntaxLSL") << "Unknown or unsupported version of syntax file." << LL_ENDL;
 			}
 		}
 	}
@@ -422,8 +415,3 @@ boost::signals2::connection LLSyntaxIdLSL::addFileFetchedCallback(const file_fet
 {
 	return sFileFetchedSignal.connect(cb);
 }
-
-void LLSyntaxIdLSL::removeFileFetchedCallback(boost::signals2::connection callback)
-{
-	sFileFetchedSignal.disconnect(callback);
-}
diff --git a/indra/newview/llsyntaxid.h b/indra/newview/llsyntaxid.h
index 75cfc45380..b68f3f4237 100644
--- a/indra/newview/llsyntaxid.h
+++ b/indra/newview/llsyntaxid.h
@@ -36,23 +36,18 @@
 #include "llsingleton.h"
 #include "llviewerregion.h"
 
-
-/**
- * @file llsyntaxid.h
- * @brief Tracks the file needed to decorate the current sim's version of LSL.
- */
-class LLSyntaxIdLSL: public LLSingleton<LLSyntaxIdLSL>
+class LLSyntaxIdLSL : public LLSingleton<LLSyntaxIdLSL>
 {
 friend class fetchKeywordsFileResponder;
 public:
 	typedef boost::signals2::signal<void()> file_fetched_signal_t;
 
-	static const std::string	CAPABILITY_NAME;
-	static const std::string	FILENAME_DEFAULT;
-	static const std::string	SIMULATOR_FEATURE;
+	static const std::string CAPABILITY_NAME;
+	static const std::string FILENAME_DEFAULT;
+	static const std::string SIMULATOR_FEATURE;
 
 protected:
-	static bool		sInitialised;
+	static bool		sInitialized;
 	static LLSD		sKeywordsXml;
 	static bool		sLoaded;
 	static bool		sLoadFailed;
@@ -85,16 +80,15 @@ public:
 	LLSD			getKeywordsXML()		const { return sKeywordsXml; }
 	LLUUID			getSyntaxId()			const { return mSyntaxIdCurrent; }
 	bool			isDifferentVersion()	const { return sVersionChanged; }
-	bool			isInitialised()			const { return sInitialised; }
+	bool			isInitialized()			const { return sInitialized; }
 
-	void			initialise();
+	void			initialize();
 	bool			isLoaded() { return sLoaded; }
 
 	static bool		isSupportedVersion(const LLSD& content);
 	static void		setKeywordsXml(const LLSD& content) { sKeywordsXml = content; }
 
 	boost::signals2::connection		addFileFetchedCallback(const file_fetched_signal_t::slot_type& cb);
-	void							removeFileFetchedCallback(boost::signals2::connection callback);
 
 
 protected:
@@ -110,10 +104,6 @@ protected:
 };
 
 
-/**
- * @file  llsyntaxid.h
- * @brief Handles responses for the LSLSyntax capability's get call. Is a friend of LLSyntaxIdLSL
- */
 class fetchKeywordsFileResponder : public LLHTTPClient::Responder
 {
 public:
-- 
cgit v1.2.3


From 059a29e976a41c30ec9fb346ae53bbc51aa682fc Mon Sep 17 00:00:00 2001
From: Cinder <cinder.roxley@phoenixviewer.com>
Date: Sun, 11 May 2014 23:17:31 -0600
Subject: Fix callback signal, Eliminate some unnecessary statics

---
 indra/newview/llpreviewscript.cpp |  5 +++--
 indra/newview/llsyntaxid.cpp      | 35 ++++++++++++++---------------------
 indra/newview/llsyntaxid.h        | 20 ++++++++------------
 3 files changed, 25 insertions(+), 35 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp
index befec98849..d83a2bc3a6 100755
--- a/indra/newview/llpreviewscript.cpp
+++ b/indra/newview/llpreviewscript.cpp
@@ -374,7 +374,6 @@ LLScriptEdCore::LLScriptEdCore(
 
 	setXMLFilename("panel_script_ed.xml");
 	llassert_always(mContainer != NULL);
-	mRegionChangedCallback = gAgent.addRegionChangedCallback(boost::bind(&LLScriptEdCore::updateKeywords, this));
 }
 
 LLScriptEdCore::~LLScriptEdCore()
@@ -391,6 +390,7 @@ LLScriptEdCore::~LLScriptEdCore()
 
 	delete mLiveFile;
 	mRegionChangedCallback.disconnect();
+	mFileFetchedCallback.disconnect();
 }
 
 BOOL LLScriptEdCore::postBuild()
@@ -409,7 +409,7 @@ BOOL LLScriptEdCore::postBuild()
 
 	initMenu();
 
-	LLSyntaxIdLSL::getInstance()->addFileFetchedCallback(boost::bind(&LLScriptEdCore::processKeywords, this));
+	mFileFetchedCallback = LLSyntaxIdLSL::getInstance()->addFileFetchedCallback(boost::bind(&LLScriptEdCore::processKeywords, this));
 
 	// Intialise keyword highlighting for the current simulator's version of LSL
 	LLSyntaxIdLSL::getInstance()->initialize();
@@ -422,6 +422,7 @@ BOOL LLScriptEdCore::postBuild()
 	{
 		LL_DEBUGS("SyntaxLSL") << "Hashes are the same, no need to update highlighter." << LL_ENDL;
 	}
+	mRegionChangedCallback = gAgent.addRegionChangedCallback(boost::bind(&LLScriptEdCore::updateKeywords, this));
 
 	return TRUE;
 }
diff --git a/indra/newview/llsyntaxid.cpp b/indra/newview/llsyntaxid.cpp
index 3582ac024d..093caf3ecf 100644
--- a/indra/newview/llsyntaxid.cpp
+++ b/indra/newview/llsyntaxid.cpp
@@ -49,7 +49,7 @@ void fetchKeywordsFileResponder::errorWithContent(U32 status,
 												  const std::string& reason,
 												  const LLSD& content)
 {
-	LLSyntaxIdLSL::sLoadFailed = true;
+	LLSyntaxIdLSL::getInstance()->sLoadFailed = true;
 	LL_WARNS("SyntaxLSL")
 			<< "fetchKeywordsFileResponder error [status:"
 			<< status << "]: " << content
@@ -64,35 +64,35 @@ void fetchKeywordsFileResponder::result(const LLSD& content_ref)
 		LL_DEBUGS("SyntaxLSL")
 				<< "content_ref isMap so assuming valid XML." << LL_ENDL;
 
-		if (LLSyntaxIdLSL::isSupportedVersion(content_ref))
+		if (LLSyntaxIdLSL::getInstance()->isSupportedVersion(content_ref))
 		{
 			LL_INFOS("SyntaxLSL")
 					<< "Supported verson of syntax file." << LL_ENDL;
 
-			LLSyntaxIdLSL::setKeywordsXml(content_ref);
-			LLSyntaxIdLSL::sInitialized = true;
-			LLSyntaxIdLSL::sLoaded = true;
-			LLSyntaxIdLSL::sLoadFailed = false;
+			LLSyntaxIdLSL::getInstance()->setKeywordsXml(content_ref);
+			LLSyntaxIdLSL::getInstance()->sInitialized = true;
+			LLSyntaxIdLSL::getInstance()->sLoaded = true;
+			LLSyntaxIdLSL::getInstance()->sLoadFailed = false;
 
 			cacheFile(content_ref);
 		}
 		else
 		{
-			LLSyntaxIdLSL::sLoaded = false;
-			LLSyntaxIdLSL::sLoadFailed = true;
+			LLSyntaxIdLSL::getInstance()->sLoaded = false;
+			LLSyntaxIdLSL::getInstance()->sLoadFailed = true;
 			LL_WARNS("SyntaxLSL")
 					<< "Unknown or unsupported version of syntax file." << LL_ENDL;
 		}
 	}
 	else
 	{
-		LLSyntaxIdLSL::sLoaded = false;
-		LLSyntaxIdLSL::sLoadFailed = true;
+		LLSyntaxIdLSL::getInstance()->sLoaded = false;
+		LLSyntaxIdLSL::getInstance()->sLoadFailed = true;
 		LL_WARNS("SyntaxLSL")
 				<< "Syntax file '" << mFileSpec << "' contains invalid LLSD!" << LL_ENDL;
 	}
 
-	LLSyntaxIdLSL::sFileFetchedSignal();
+	LLSyntaxIdLSL::getInstance()->sFileFetchedSignal();
 }
 
 void fetchKeywordsFileResponder::cacheFile(const LLSD& content_ref)
@@ -113,16 +113,9 @@ void fetchKeywordsFileResponder::cacheFile(const LLSD& content_ref)
 //-----------------------------------------------------------------------------
 // LLSyntaxIdLSL
 //-----------------------------------------------------------------------------
-const std::string LLSyntaxIdLSL::CAPABILITY_NAME = "LSLSyntax";
-const std::string LLSyntaxIdLSL::FILENAME_DEFAULT = "keywords_lsl_default.xml";
-const std::string LLSyntaxIdLSL::SIMULATOR_FEATURE = "LSLSyntaxId";
-
-bool LLSyntaxIdLSL::sInitialized;
-LLSD LLSyntaxIdLSL::sKeywordsXml;
-bool LLSyntaxIdLSL::sLoaded;
-bool LLSyntaxIdLSL::sLoadFailed;
-bool LLSyntaxIdLSL::sVersionChanged;
-LLSyntaxIdLSL::file_fetched_signal_t LLSyntaxIdLSL::sFileFetchedSignal;
+const std::string CAPABILITY_NAME = "LSLSyntax";
+const std::string FILENAME_DEFAULT = "keywords_lsl_default.xml";
+const std::string SIMULATOR_FEATURE = "LSLSyntaxId";
 
 /**
  * @brief LLSyntaxIdLSL constructor
diff --git a/indra/newview/llsyntaxid.h b/indra/newview/llsyntaxid.h
index b68f3f4237..179d622286 100644
--- a/indra/newview/llsyntaxid.h
+++ b/indra/newview/llsyntaxid.h
@@ -42,17 +42,13 @@ friend class fetchKeywordsFileResponder;
 public:
 	typedef boost::signals2::signal<void()> file_fetched_signal_t;
 
-	static const std::string CAPABILITY_NAME;
-	static const std::string FILENAME_DEFAULT;
-	static const std::string SIMULATOR_FEATURE;
-
 protected:
-	static bool		sInitialized;
-	static LLSD		sKeywordsXml;
-	static bool		sLoaded;
-	static bool		sLoadFailed;
-	static bool		sVersionChanged;
-	static file_fetched_signal_t	sFileFetchedSignal;
+	bool		sInitialized;
+	LLSD		sKeywordsXml;
+	bool		sLoaded;
+	bool		sLoadFailed;
+	bool		sVersionChanged;
+	file_fetched_signal_t	sFileFetchedSignal;
 
 private:
 	std::string		mCapabilityName;
@@ -85,8 +81,8 @@ public:
 	void			initialize();
 	bool			isLoaded() { return sLoaded; }
 
-	static bool		isSupportedVersion(const LLSD& content);
-	static void		setKeywordsXml(const LLSD& content) { sKeywordsXml = content; }
+	bool		isSupportedVersion(const LLSD& content);
+	void		setKeywordsXml(const LLSD& content) { sKeywordsXml = content; }
 
 	boost::signals2::connection		addFileFetchedCallback(const file_fetched_signal_t::slot_type& cb);
 
-- 
cgit v1.2.3


From 6141aa44d0f2aa2662a536c9d3ce9312dd57bd99 Mon Sep 17 00:00:00 2001
From: Cinder <cinder.roxley@phoenixviewer.com>
Date: Mon, 12 May 2014 06:54:04 -0600
Subject: STORM-2027 - Fix syntax highlighting on subsequent opening of
 scripts. This could use more refactoring, but it fixes it.

---
 indra/newview/llpreviewscript.cpp | 8 +++++---
 indra/newview/llpreviewscript.h   | 1 +
 2 files changed, 6 insertions(+), 3 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp
index d83a2bc3a6..b300f3a39c 100755
--- a/indra/newview/llpreviewscript.cpp
+++ b/indra/newview/llpreviewscript.cpp
@@ -352,6 +352,7 @@ LLScriptEdCore::LLScriptEdCore(
 	void (*save_callback)(void*, BOOL),
 	void (*search_replace_callback) (void* userdata),
 	void* userdata,
+	bool live,
 	S32 bottom_pad)
 	:
 	LLPanel(),
@@ -366,6 +367,7 @@ LLScriptEdCore::LLScriptEdCore(
 	mLiveHelpHistorySize(0),
 	mEnableSave(FALSE),
 	mLiveFile(NULL),
+	mLive(live),
 	mContainer(container),
 	mHasScriptData(FALSE)
 {
@@ -420,7 +422,7 @@ BOOL LLScriptEdCore::postBuild()
 	}
 	else
 	{
-		LL_DEBUGS("SyntaxLSL") << "Hashes are the same, no need to update highlighter." << LL_ENDL;
+		processKeywords();
 	}
 	mRegionChangedCallback = gAgent.addRegionChangedCallback(boost::bind(&LLScriptEdCore::updateKeywords, this));
 
@@ -1289,8 +1291,8 @@ void* LLPreviewLSL::createScriptEdPanel(void* userdata)
 								   LLPreviewLSL::onSave,
 								   LLPreviewLSL::onSearchReplace,
 								   self,
+								   false,
 								   0);
-	self->mScriptEd->mLive = false;
 	return self->mScriptEd;
 }
 
@@ -1745,8 +1747,8 @@ void* LLLiveLSLEditor::createScriptEdPanel(void* userdata)
 								   &LLLiveLSLEditor::onSave,
 								   &LLLiveLSLEditor::onSearchReplace,
 								   self,
+								   true,
 								   0);
-	self->mScriptEd->mLive = true;
 	return self->mScriptEd;
 }
 
diff --git a/indra/newview/llpreviewscript.h b/indra/newview/llpreviewscript.h
index 8b98b908e1..e19a87ec0a 100755
--- a/indra/newview/llpreviewscript.h
+++ b/indra/newview/llpreviewscript.h
@@ -72,6 +72,7 @@ protected:
 		void (*save_callback)(void* userdata, BOOL close_after_save),
 		void (*search_replace_callback)(void* userdata),
 		void* userdata,
+		bool live,
 		S32 bottom_pad = 0);	// pad below bottom row of buttons
 public:
 	~LLScriptEdCore();
-- 
cgit v1.2.3


From 70aff2154b910afd9a8bdc14c72c4e058c8b1076 Mon Sep 17 00:00:00 2001
From: Cinder <cinder.roxley@phoenixviewer.com>
Date: Mon, 12 May 2014 07:23:52 -0600
Subject: Eliminate updateKeywords()

---
 indra/newview/llpreviewscript.cpp | 26 ++++++++++++--------------
 indra/newview/llpreviewscript.h   |  1 -
 2 files changed, 12 insertions(+), 15 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp
index b300f3a39c..5e7b148101 100755
--- a/indra/newview/llpreviewscript.cpp
+++ b/indra/newview/llpreviewscript.cpp
@@ -391,8 +391,14 @@ LLScriptEdCore::~LLScriptEdCore()
 	}
 
 	delete mLiveFile;
-	mRegionChangedCallback.disconnect();
-	mFileFetchedCallback.disconnect();
+	if (mRegionChangedCallback.connected())
+	{
+		mRegionChangedCallback.disconnect();
+	}
+	if (mFileFetchedCallback.connected())
+	{
+		mFileFetchedCallback.disconnect();
+	}
 }
 
 BOOL LLScriptEdCore::postBuild()
@@ -424,21 +430,13 @@ BOOL LLScriptEdCore::postBuild()
 	{
 		processKeywords();
 	}
-	mRegionChangedCallback = gAgent.addRegionChangedCallback(boost::bind(&LLScriptEdCore::updateKeywords, this));
-
-	return TRUE;
-}
-
-void LLScriptEdCore::updateKeywords()
-{
+	
 	if (mLive)
 	{
-		mEditor->clearSegments();
-	}
-	else
-	{
-		processLoaded();
+		mRegionChangedCallback = gAgent.addRegionChangedCallback(boost::bind(&LLScriptEdCore::processLoaded, this));
 	}
+
+	return TRUE;
 }
 
 void LLScriptEdCore::processLoaded()
diff --git a/indra/newview/llpreviewscript.h b/indra/newview/llpreviewscript.h
index e19a87ec0a..5aab3ed938 100755
--- a/indra/newview/llpreviewscript.h
+++ b/indra/newview/llpreviewscript.h
@@ -81,7 +81,6 @@ public:
 	void			initMenu();
 	void			processKeywords();
 	void			processLoaded();
-	void			updateKeywords();
 
 	virtual void	draw();
 	/*virtual*/	BOOL	postBuild();
-- 
cgit v1.2.3


From 82cd99d6eb1fbe57e80f54ece6f740c520c7b78a Mon Sep 17 00:00:00 2001
From: Cinder <cinder.roxley@phoenixviewer.com>
Date: Mon, 12 May 2014 07:49:18 -0600
Subject: Style - rename previously static members, fix scope, ease up on the
 exclamation points in debug messages

---
 indra/newview/llsyntaxid.cpp | 133 ++++++++++++++++---------------------------
 indra/newview/llsyntaxid.h   |  58 +++++++++----------
 2 files changed, 76 insertions(+), 115 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llsyntaxid.cpp b/indra/newview/llsyntaxid.cpp
index 093caf3ecf..9a0f53978e 100644
--- a/indra/newview/llsyntaxid.cpp
+++ b/indra/newview/llsyntaxid.cpp
@@ -40,20 +40,15 @@
 fetchKeywordsFileResponder::fetchKeywordsFileResponder(std::string filespec)
 {
 	mFileSpec = filespec;
-	LL_INFOS("SyntaxLSL")
-			<< "Instantiating with file saving to: '" << filespec << "'"
-			<< LL_ENDL;
+	LL_DEBUGS("SyntaxLSL") << "Instantiating with file saving to: '" << filespec << "'" << LL_ENDL;
 }
 
 void fetchKeywordsFileResponder::errorWithContent(U32 status,
 												  const std::string& reason,
 												  const LLSD& content)
 {
-	LLSyntaxIdLSL::getInstance()->sLoadFailed = true;
-	LL_WARNS("SyntaxLSL")
-			<< "fetchKeywordsFileResponder error [status:"
-			<< status << "]: " << content
-			<< LL_ENDL;
+	LLSyntaxIdLSL::getInstance()->mLoadFailed = true;
+	LL_WARNS("SyntaxLSL") << "fetchKeywordsFileResponder error [status:" << status << "]: " << content << LL_ENDL;
 }
 
 void fetchKeywordsFileResponder::result(const LLSD& content_ref)
@@ -61,38 +56,34 @@ void fetchKeywordsFileResponder::result(const LLSD& content_ref)
 	// Continue only if a valid LLSD object was returned.
 	if (content_ref.isMap())
 	{
-		LL_DEBUGS("SyntaxLSL")
-				<< "content_ref isMap so assuming valid XML." << LL_ENDL;
+		LL_DEBUGS("SyntaxLSL") << "content_ref isMap so assuming valid XML." << LL_ENDL;
 
 		if (LLSyntaxIdLSL::getInstance()->isSupportedVersion(content_ref))
 		{
-			LL_INFOS("SyntaxLSL")
-					<< "Supported verson of syntax file." << LL_ENDL;
+			LL_DEBUGS("SyntaxLSL") << "Supported verson of syntax file." << LL_ENDL;
 
 			LLSyntaxIdLSL::getInstance()->setKeywordsXml(content_ref);
-			LLSyntaxIdLSL::getInstance()->sInitialized = true;
-			LLSyntaxIdLSL::getInstance()->sLoaded = true;
-			LLSyntaxIdLSL::getInstance()->sLoadFailed = false;
+			LLSyntaxIdLSL::getInstance()->mInitialized = true;
+			LLSyntaxIdLSL::getInstance()->mLoaded = true;
+			LLSyntaxIdLSL::getInstance()->mLoadFailed = false;
 
 			cacheFile(content_ref);
 		}
 		else
 		{
-			LLSyntaxIdLSL::getInstance()->sLoaded = false;
-			LLSyntaxIdLSL::getInstance()->sLoadFailed = true;
-			LL_WARNS("SyntaxLSL")
-					<< "Unknown or unsupported version of syntax file." << LL_ENDL;
+			LLSyntaxIdLSL::getInstance()->mLoaded = false;
+			LLSyntaxIdLSL::getInstance()->mLoadFailed = true;
+			LL_WARNS("SyntaxLSL") << "Unknown or unsupported version of syntax file." << LL_ENDL;
 		}
 	}
 	else
 	{
-		LLSyntaxIdLSL::getInstance()->sLoaded = false;
-		LLSyntaxIdLSL::getInstance()->sLoadFailed = true;
-		LL_WARNS("SyntaxLSL")
-				<< "Syntax file '" << mFileSpec << "' contains invalid LLSD!" << LL_ENDL;
+		LLSyntaxIdLSL::getInstance()->mLoaded = false;
+		LLSyntaxIdLSL::getInstance()->mLoadFailed = true;
+		LL_WARNS("SyntaxLSL") << "Syntax file '" << mFileSpec << "' contains invalid LLSD." << LL_ENDL;
 	}
 
-	LLSyntaxIdLSL::getInstance()->sFileFetchedSignal();
+	LLSyntaxIdLSL::getInstance()->mFileFetchedSignal();
 }
 
 void fetchKeywordsFileResponder::cacheFile(const LLSD& content_ref)
@@ -106,8 +97,7 @@ void fetchKeywordsFileResponder::cacheFile(const LLSD& content_ref)
 	file.write(xml.c_str(), str.str().size());
 	file.close();
 
-	LL_INFOS("SyntaxLSL")
-			<< "Syntax file received, saving as: '" << mFileSpec << "'" << LL_ENDL;
+	LL_DEBUGS("SyntaxLSL") << "Syntax file received, saving as: '" << mFileSpec << "'" << LL_ENDL;
 }
 
 //-----------------------------------------------------------------------------
@@ -159,18 +149,15 @@ std::string LLSyntaxIdLSL::buildFullFileSpec()
 //-----------------------------------------------------------------------------
 bool LLSyntaxIdLSL::checkSyntaxIdChanged()
 {
-	sVersionChanged = false;
+	mVersionChanged = false;
 	LLViewerRegion* region = gAgent.getRegion();
 
 	if (region)
 	{
 		if (!region->capabilitiesReceived())
 		{   // Shouldn't be possible, but experience shows that it may be needed.
-			sLoadFailed = true;
-			LL_WARNS("SyntaxLSL")
-				<< "Region '" << region->getName()
-				<< "' has not received capabilities yet! Cannot process SyntaxId."
-				<< LL_ENDL;
+			mLoadFailed = true;
+			LL_INFOS("SyntaxLSL") << "Region '" << region->getName() << "' has not received capabilities yet. Cannot process SyntaxId." << LL_ENDL;
 		}
 		else
 		{
@@ -185,40 +172,32 @@ bool LLSyntaxIdLSL::checkSyntaxIdChanged()
 				mCapabilityURL = region->getCapability(mCapabilityName);
 				if (mSyntaxIdCurrent != mSyntaxIdNew)
 				{
-					LL_INFOS("SyntaxLSL")
-							<< "It has LSLSyntaxId capability, and the new hash is '"
-							<< mSyntaxIdNew.asString() << "'" << LL_ENDL;
+					LL_DEBUGS("SyntaxLSL") << "Region has LSLSyntaxId capability, and the new hash is '" << mSyntaxIdNew.asString() << "'" << LL_ENDL;
 
-					sVersionChanged = true;
+					mVersionChanged = true;
 				}
 				else
 				{
-					LL_INFOS("SyntaxLSL")
-							<< "It has the same LSLSyntaxId! Leaving hash as '"
-							<< mSyntaxIdCurrent.asString() << "'" << LL_ENDL;
+					LL_DEBUGS("SyntaxLSL") << "Region has the same LSLSyntaxId! Leaving hash as '" << mSyntaxIdCurrent.asString() << "'" << LL_ENDL;
 				}
 			}
 			else
 			{
 				if ( mSyntaxIdCurrent.isNull() && isInitialized())
 				{
-					LL_INFOS("SyntaxLSL")
-							<< "It does not have LSLSyntaxId capability, remaining with default keywords file!"
-							<< LL_ENDL;
+					LL_DEBUGS("SyntaxLSL") << "Region does not have LSLSyntaxId capability, remaining with default keywords." << LL_ENDL;
 				}
 				else
 				{
 					// The hash is set to NULL_KEY to indicate use of default keywords file
 					mSyntaxIdNew = LLUUID();
-					LL_INFOS("SyntaxLSL")
-							<< "It does not have LSLSyntaxId capability, using default keywords file!"
-							<< LL_ENDL;
-					sVersionChanged = true;
+					LL_DEBUGS("SyntaxLSL") << "Region does not have LSLSyntaxId capability, using default keywords." << LL_ENDL;
+					mVersionChanged = true;
 				}
 			}
 		}
 	}
-	return sVersionChanged;
+	return mVersionChanged;
 }
 
 /**
@@ -228,7 +207,7 @@ bool LLSyntaxIdLSL::checkSyntaxIdChanged()
  */
 bool LLSyntaxIdLSL::fetching()
 {
-	return !(sLoaded || sLoadFailed);
+	return !(mLoaded || mLoadFailed);
 }
 
 //-----------------------------------------------------------------------------
@@ -240,10 +219,7 @@ void LLSyntaxIdLSL::fetchKeywordsFile()
 					  new fetchKeywordsFileResponder(mFullFileSpec),
 					  LLSD(), 30.f
 					  );
-	LL_INFOS("SyntaxLSL")
-			<< "LSLSyntaxId capability URL is: " << mCapabilityURL
-			<< ". Filename to use is: '" << mFullFileSpec << "'."
-			<< LL_ENDL;
+	LL_DEBUGS("SyntaxLSL") << "LSLSyntaxId capability URL is: " << mCapabilityURL << ". Filename to use is: '" << mFullFileSpec << "'." << LL_ENDL;
 }
 
 
@@ -257,8 +233,8 @@ void LLSyntaxIdLSL::initialize()
 
 	if (checkSyntaxIdChanged())
 	{
-		sKeywordsXml = LLSD();
-		sLoaded = sLoadFailed = false;
+		mKeywordsXml = LLSD();
+		mLoaded = mLoadFailed = false;
 
 		if (mSyntaxIdNew.isNull())
 		{ // Need to open the default
@@ -266,9 +242,7 @@ void LLSyntaxIdLSL::initialize()
 		}
 		else if (!mCapabilityURL.empty() )
 		{
-			LL_INFOS("SyntaxLSL")
-					<< "LSL version has changed, getting appropriate file."
-					<< LL_ENDL;
+			LL_DEBUGS("SyntaxLSL") << "LSL version has changed, getting appropriate file." << LL_ENDL;
 
 			// Need a full spec regardless of file source, so build it now.
 			buildFullFileSpec();
@@ -276,16 +250,11 @@ void LLSyntaxIdLSL::initialize()
 			{
 				if ( !gDirUtilp->fileExists(mFullFileSpec) )
 				{ // Does not exist, so fetch it from the capability
-					LL_INFOS("SyntaxLSL")
-							<< "File is not cached, we will try to download it!"
-							<< LL_ENDL;
+					LL_INFOS("SyntaxLSL") << "LSL syntax not cached, attempting download." << LL_ENDL;
 					fetchKeywordsFile();
 				}
 				else
 				{
-					LL_INFOS("SyntaxLSL")
-							<< "File is cached, no need to download!"
-							<< LL_ENDL;
 					loadKeywordsIntoLLSD();
 				}
 			}
@@ -296,9 +265,8 @@ void LLSyntaxIdLSL::initialize()
 		}
 		else
 		{
-			sLoadFailed = true;
-			LL_WARNS("SyntaxLSL")
-					<< "LSLSyntaxId capability URL is empty!!" << LL_ENDL;
+			mLoadFailed = true;
+			LL_WARNS("SyntaxLSL") << "LSLSyntaxId capability URL is empty." << LL_ENDL;
 			loadDefaultKeywordsIntoLLSD();
 		}
 	}
@@ -327,8 +295,7 @@ bool LLSyntaxIdLSL::isSupportedVersion(const LLSD& content)
 
 	if (content.has(LLSD_SYNTAX_LSL_VERSION_KEY))
 	{
-		LL_INFOS("SyntaxLSL")
-				<< "Syntax file version: " << content[LLSD_SYNTAX_LSL_VERSION_KEY].asString() << LL_ENDL;
+		LL_DEBUGS("SyntaxLSL") << "LSL syntax version: " << content[LLSD_SYNTAX_LSL_VERSION_KEY].asString() << LL_ENDL;
 
 		if (content[LLSD_SYNTAX_LSL_VERSION_KEY].asInteger() == LLSD_SYNTAX_LSL_VERSION_EXPECTED)
 		{
@@ -337,7 +304,7 @@ bool LLSyntaxIdLSL::isSupportedVersion(const LLSD& content)
 	}
 	else
 	{
-		LL_WARNS("SyntaxLSL") << "No version key available!" << LL_ENDL;
+		LL_DEBUGS("SyntaxLSL") << "No LSL syntax version key." << LL_ENDL;
 	}
 
 	return isValid;
@@ -348,7 +315,7 @@ bool LLSyntaxIdLSL::isSupportedVersion(const LLSD& content)
 //-----------------------------------------------------------------------------
 void LLSyntaxIdLSL::loadDefaultKeywordsIntoLLSD()
 {
-	LL_INFOS("SyntaxLSL") << "LSLSyntaxId is null so we will use the default file!" << LL_ENDL;
+	LL_DEBUGS("SyntaxLSL") << "LSLSyntaxId is null so we will use the default file." << LL_ENDL;
 	mSyntaxIdNew = LLUUID();
 	buildFullFileSpec();
 	loadKeywordsIntoLLSD();
@@ -365,46 +332,46 @@ void LLSyntaxIdLSL::loadDefaultKeywordsIntoLLSD()
  */
 void LLSyntaxIdLSL::loadKeywordsIntoLLSD()
 {
-	LL_INFOS("SyntaxLSL") << "Trying to open cached or default keyword file" << LL_ENDL;
+	LL_DEBUGS("SyntaxLSL") << "Trying to open cached or default keyword file" << LL_ENDL;
 
 	// Is this the right thing to do, or should we leave the old content
 	// even if it isn't entirely accurate anymore?
-	sKeywordsXml = LLSD().emptyMap();
+	mKeywordsXml = LLSD().emptyMap();
 
 	LLSD content;
 	llifstream file;
 	file.open(mFullFileSpec);
 	if (file.is_open())
 	{
-		sLoaded = (bool)LLSDSerialize::fromXML(content, file);
-		if (!sLoaded)
+		mLoaded = (bool)LLSDSerialize::fromXML(content, file);
+		if (!mLoaded)
 		{
-			LL_WARNS("SyntaxLSL") << "Unable to deserialise file: " << mFullFileSpec << LL_ENDL;
+			LL_WARNS("SyntaxLSL") << "Unable to deserialise: " << mFullFileSpec << LL_ENDL;
 		}
 		else
 		{
 			if (isSupportedVersion(content))
 			{
-				sKeywordsXml = content;
-				sLoaded = true;
-				sInitialized = true;
-				LL_INFOS("SyntaxLSL") << "Deserialised file: " << mFullFileSpec << LL_ENDL;
+				mKeywordsXml = content;
+				mLoaded = true;
+				mInitialized = true;
+				LL_DEBUGS("SyntaxLSL") << "Deserialised: " << mFullFileSpec << LL_ENDL;
 			}
 			else
 			{
-				sLoaded = false;
+				mLoaded = false;
 				LL_WARNS("SyntaxLSL") << "Unknown or unsupported version of syntax file." << LL_ENDL;
 			}
 		}
 	}
 	else
 	{
-		LL_WARNS("SyntaxLSL") << "Unable to open file: " << mFullFileSpec << LL_ENDL;
+		LL_WARNS("SyntaxLSL") << "Unable to open: " << mFullFileSpec << LL_ENDL;
 	}
-	sLoadFailed = !sLoaded;
+	mLoadFailed = !mLoaded;
 }
 
 boost::signals2::connection LLSyntaxIdLSL::addFileFetchedCallback(const file_fetched_signal_t::slot_type& cb)
 {
-	return sFileFetchedSignal.connect(cb);
+	return mFileFetchedSignal.connect(cb);
 }
diff --git a/indra/newview/llsyntaxid.h b/indra/newview/llsyntaxid.h
index 179d622286..d803a09167 100644
--- a/indra/newview/llsyntaxid.h
+++ b/indra/newview/llsyntaxid.h
@@ -39,30 +39,6 @@
 class LLSyntaxIdLSL : public LLSingleton<LLSyntaxIdLSL>
 {
 friend class fetchKeywordsFileResponder;
-public:
-	typedef boost::signals2::signal<void()> file_fetched_signal_t;
-
-protected:
-	bool		sInitialized;
-	LLSD		sKeywordsXml;
-	bool		sLoaded;
-	bool		sLoadFailed;
-	bool		sVersionChanged;
-	file_fetched_signal_t	sFileFetchedSignal;
-
-private:
-	std::string		mCapabilityName;
-	std::string		mCapabilityURL;
-	std::string		mFileNameCurrent;
-	std::string		mFileNameDefault;
-	std::string		mFileNameNew;
-	ELLPath			mFilePath;
-	std::string		mFullFileSpec;
-	std::string		mSimulatorFeature;
-	LLUUID			mSyntaxIdCurrent;
-	LLUUID			mSyntaxIdNew;
-
-
 
 public:
 	LLSyntaxIdLSL();
@@ -73,20 +49,19 @@ public:
 	std::string		getFileNameCurrent()	const { return mFileNameCurrent; }
 	ELLPath			getFilePath()			const { return mFilePath; }
 	std::string		getFileSpec()			const { return mFullFileSpec; }
-	LLSD			getKeywordsXML()		const { return sKeywordsXml; }
+	LLSD			getKeywordsXML()		const { return mKeywordsXml; }
 	LLUUID			getSyntaxId()			const { return mSyntaxIdCurrent; }
-	bool			isDifferentVersion()	const { return sVersionChanged; }
-	bool			isInitialized()			const { return sInitialized; }
+	bool			isDifferentVersion()	const { return mVersionChanged; }
+	bool			isInitialized()			const { return mInitialized; }
 
 	void			initialize();
-	bool			isLoaded() { return sLoaded; }
-
-	bool		isSupportedVersion(const LLSD& content);
-	void		setKeywordsXml(const LLSD& content) { sKeywordsXml = content; }
+	bool			isLoaded() { return mLoaded; }
 
+	bool			isSupportedVersion(const LLSD& content);
+	void			setKeywordsXml(const LLSD& content) { mKeywordsXml = content; }
+	typedef			boost::signals2::signal<void()> file_fetched_signal_t;
 	boost::signals2::connection		addFileFetchedCallback(const file_fetched_signal_t::slot_type& cb);
 
-
 protected:
 	std::string		buildFileNameNew();
 	std::string		buildFullFileSpec();
@@ -97,6 +72,25 @@ protected:
 	void			setFileNameCurrent(const std::string& name) { mFileNameCurrent = name; }
 	void			setFileNameDefault(const std::string& name) { mFileNameDefault = name; }
 	void			setFileNameNew(const std::string name) { mFileNameNew = name; }
+	
+private:
+	bool		mInitialized;
+	LLSD		mKeywordsXml;
+	bool		mLoaded;
+	bool		mLoadFailed;
+	bool		mVersionChanged;
+	file_fetched_signal_t	mFileFetchedSignal;
+	
+	std::string		mCapabilityName;
+	std::string		mCapabilityURL;
+	std::string		mFileNameCurrent;
+	std::string		mFileNameDefault;
+	std::string		mFileNameNew;
+	ELLPath			mFilePath;
+	std::string		mFullFileSpec;
+	std::string		mSimulatorFeature;
+	LLUUID			mSyntaxIdCurrent;
+	LLUUID			mSyntaxIdNew;
 };
 
 
-- 
cgit v1.2.3


From f9bbf9e30a24bb873252cd5f0dfe7dadeb7b4b22 Mon Sep 17 00:00:00 2001
From: Cinder <cinder.roxley@phoenixviewer.com>
Date: Tue, 13 May 2014 10:16:03 -0600
Subject: STORM-2028 - Show context menu in script editor

---
 indra/newview/llscripteditor.h                         | 2 +-
 indra/newview/skins/default/xui/en/panel_script_ed.xml | 6 ++++--
 2 files changed, 5 insertions(+), 3 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llscripteditor.h b/indra/newview/llscripteditor.h
index 86c915d6a0..d3e18021f9 100644
--- a/indra/newview/llscripteditor.h
+++ b/indra/newview/llscripteditor.h
@@ -32,7 +32,6 @@
 
 class LLScriptEditor : public LLTextEditor
 {
-	friend class LLUICtrlFactory;
 public:
 	
 	struct Params : public LLInitParam::Block<Params, LLTextEditor::Params>
@@ -48,6 +47,7 @@ public:
 	LLKeywords::keyword_iterator_t keywordsEnd()	{ return mKeywords.end(); }
 	
 protected:
+	friend class LLUICtrlFactory;
 	LLScriptEditor(const Params& p);
 	
 private:
diff --git a/indra/newview/skins/default/xui/en/panel_script_ed.xml b/indra/newview/skins/default/xui/en/panel_script_ed.xml
index 1a4f0aff73..76a81c4885 100755
--- a/indra/newview/skins/default/xui/en/panel_script_ed.xml
+++ b/indra/newview/skins/default/xui/en/panel_script_ed.xml
@@ -149,7 +149,7 @@
         </menu>
     </menu_bar>
     <script_editor
-    left="0"
+     left="0"
      type="string"
      length="1"
      follows="left|top|right|bottom"
@@ -162,7 +162,9 @@
      text_readonly_color="DkGray"
      width="487"
      enable_tooltip_paste="true"
-     word_wrap="true">
+     word_wrap="true"
+     show_context_menu="true"
+     show_line_numbers="true">
         Loading...
     </script_editor>
     <scroll_list
-- 
cgit v1.2.3


From 83c0b54e1ad715903d883591bd60c4ab19c059f2 Mon Sep 17 00:00:00 2001
From: Jonathan Yap <none@none>
Date: Tue, 13 May 2014 17:49:51 -0400
Subject: STORM-68 Apply default upload permission settings for ONLY Share with
 Group and Allow anyone to Copy to snapshot upload.  The Next owner values
 will stay at full perms.

---
 indra/newview/llsnapshotlivepreview.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llsnapshotlivepreview.cpp b/indra/newview/llsnapshotlivepreview.cpp
index 737f665954..5b22c51321 100644
--- a/indra/newview/llsnapshotlivepreview.cpp
+++ b/indra/newview/llsnapshotlivepreview.cpp
@@ -818,8 +818,8 @@ void LLSnapshotLivePreview::saveTexture()
 			LLFolderType::FT_SNAPSHOT_CATEGORY,
 			LLInventoryType::IT_SNAPSHOT,
 			PERM_ALL,  // Note: Snapshots to inventory is a special case of content upload
-			LLFloaterPerms::getGroupPerms(), // that is more permissive than other uploads
-			LLFloaterPerms::getEveryonePerms(),
+			LLFloaterPerms::getGroupPerms("Uploads"), // that is more permissive than other uploads
+			LLFloaterPerms::getEveryonePerms("Uploads"),
 			"Snapshot : " + pos_string,
 			callback, expected_upload_cost, userdata);
 		gViewerWindow->playSnapshotAnimAndSound();
-- 
cgit v1.2.3


From c073bad6b29fa3c5167c28c286171a1bda9b5e4a Mon Sep 17 00:00:00 2001
From: Cinder <cinder.roxley@phoenixviewer.com>
Date: Wed, 14 May 2014 11:04:53 -0600
Subject: Begin syntax coloring personalization

---
 indra/llui/llkeywords.cpp                          |   4 +-
 indra/newview/CMakeLists.txt                       |   2 +
 indra/newview/llfloaterscriptedprefs.cpp           |  56 +++
 indra/newview/llfloaterscriptedprefs.h             |  48 +++
 indra/newview/llviewerfloaterreg.cpp               |   2 +
 indra/newview/skins/default/colors.xml             |  12 +-
 .../default/xui/en/floater_script_ed_prefs.xml     | 478 +++++++++++++++++++++
 .../skins/default/xui/en/panel_script_ed.xml       |  11 +-
 .../newview/skins/default/xui/en/script_editor.xml |  12 +-
 9 files changed, 615 insertions(+), 10 deletions(-)
 create mode 100644 indra/newview/llfloaterscriptedprefs.cpp
 create mode 100644 indra/newview/llfloaterscriptedprefs.h
 create mode 100644 indra/newview/skins/default/xui/en/floater_script_ed_prefs.xml

(limited to 'indra')

diff --git a/indra/llui/llkeywords.cpp b/indra/llui/llkeywords.cpp
index 2d8bd926c0..f633f3e4af 100755
--- a/indra/llui/llkeywords.cpp
+++ b/indra/llui/llkeywords.cpp
@@ -237,11 +237,11 @@ LLColor4 LLKeywords::getColorGroup(const std::string& key_in)
 	}
 	else if (key_in == "misc-comments_1_sided")
 	{
-		color_group = "SyntaxLslComment1Sided";
+		color_group = "SyntaxLslComment";
 	}
 	else if (key_in == "misc-comments_2_sided")
 	{
-		color_group = "SyntaxLslComment2Sided";	
+		color_group = "SyntaxLslComment";
 	}
 	else
 	{
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index f0b7584312..1877db6280 100755
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -272,6 +272,7 @@ set(viewer_SOURCE_FILES
     llfloaterregionrestarting.cpp
     llfloatersceneloadstats.cpp
     llfloaterscriptdebug.cpp
+    llfloaterscriptedprefs.cpp
     llfloaterscriptlimits.cpp
     llfloatersearch.cpp
     llfloatersellland.cpp
@@ -869,6 +870,7 @@ set(viewer_HEADER_FILES
     llfloaterregionrestarting.h
     llfloatersceneloadstats.h
     llfloaterscriptdebug.h
+    llfloaterscriptedprefs.h
     llfloaterscriptlimits.h
     llfloatersearch.h
     llfloatersellland.h
diff --git a/indra/newview/llfloaterscriptedprefs.cpp b/indra/newview/llfloaterscriptedprefs.cpp
new file mode 100644
index 0000000000..39624186bb
--- /dev/null
+++ b/indra/newview/llfloaterscriptedprefs.cpp
@@ -0,0 +1,56 @@
+/**
+ * @file llfloaterscriptedprefs.cpp
+ * @brief Color controls for the script editor
+ * @author Cinder Roxley
+ *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2014, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
+ * $/LicenseInfo$
+ */
+
+#include "llviewerprecompiledheaders.h"
+#include "llfloaterscriptedprefs.h"
+
+#include "llcolorswatch.h"
+
+
+LLFloaterScriptEdPrefs::LLFloaterScriptEdPrefs(const LLSD& key)
+:	LLFloater(key)
+{
+	mCommitCallbackRegistrar.add("ScriptPref.applyUIColor",	boost::bind(&LLFloaterScriptEdPrefs::applyUIColor, this ,_1, _2));
+	mCommitCallbackRegistrar.add("ScriptPref.getUIColor",	boost::bind(&LLFloaterScriptEdPrefs::getUIColor, this ,_1, _2));
+}
+
+BOOL LLFloaterScriptEdPrefs::postBuild()
+{
+	return TRUE;
+}
+
+void LLFloaterScriptEdPrefs::applyUIColor(LLUICtrl* ctrl, const LLSD& param)
+{
+	LLUIColorTable::instance().setColor(param.asString(), LLColor4(ctrl->getValue()));
+	// *TODO: Signal all active script editors to change colors on the fly.
+}
+
+void LLFloaterScriptEdPrefs::getUIColor(LLUICtrl* ctrl, const LLSD& param)
+{
+	LLColorSwatchCtrl* color_swatch = dynamic_cast<LLColorSwatchCtrl*>(ctrl);
+	color_swatch->setOriginal(LLUIColorTable::instance().getColor(param.asString()));
+}
diff --git a/indra/newview/llfloaterscriptedprefs.h b/indra/newview/llfloaterscriptedprefs.h
new file mode 100644
index 0000000000..360c9adc92
--- /dev/null
+++ b/indra/newview/llfloaterscriptedprefs.h
@@ -0,0 +1,48 @@
+/**
+ * @file llfloaterscriptedprefs.h
+ * @brief Color controls for the script editor
+ * @author Cinder Roxley
+ *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2014, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
+ * $/LicenseInfo$
+ */
+
+#ifndef LLFLOATERSCRIPTEDPREFS_H
+#define LLFLOATERSCRIPTEDPREFS_H
+
+#include "llfloater.h"
+
+class LLUICtrl;
+
+class LLFloaterScriptEdPrefs : public LLFloater
+{
+public:
+	LLFloaterScriptEdPrefs(const LLSD& key);
+	BOOL postBuild();
+	
+private:
+	~LLFloaterScriptEdPrefs() {};
+	
+	void applyUIColor(LLUICtrl* ctrl, const LLSD& param);
+	void getUIColor(LLUICtrl* ctrl, const LLSD& param);
+};
+
+#endif // LL_FLOATERSCRIPTEDPREFS_H
diff --git a/indra/newview/llviewerfloaterreg.cpp b/indra/newview/llviewerfloaterreg.cpp
index fae35fe664..3cd5b54aaf 100755
--- a/indra/newview/llviewerfloaterreg.cpp
+++ b/indra/newview/llviewerfloaterreg.cpp
@@ -98,6 +98,7 @@
 #include "llfloaterreporter.h"
 #include "llfloatersceneloadstats.h"
 #include "llfloaterscriptdebug.h"
+#include "llfloaterscriptedprefs.h"
 #include "llfloaterscriptlimits.h"
 #include "llfloatersearch.h"
 #include "llfloatersellland.h"
@@ -282,6 +283,7 @@ void LLViewerFloaterReg::registerFloaters()
 	LLFloaterReg::add("preview_texture", "floater_preview_texture.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLPreviewTexture>, "preview");
 	LLFloaterReg::add("properties", "floater_inventory_item_properties.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterProperties>);
 	LLFloaterReg::add("publish_classified", "floater_publish_classified.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLPublishClassifiedFloater>);
+	LLFloaterReg::add("script_colors", "floater_script_ed_prefs.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterScriptEdPrefs>);
 
 	LLFloaterReg::add("telehubs", "floater_telehub.xml",&LLFloaterReg::build<LLFloaterTelehub>);
 	LLFloaterReg::add("test_inspectors", "floater_test_inspectors.xml", &LLFloaterReg::build<LLFloaterTestInspectors>);
diff --git a/indra/newview/skins/default/colors.xml b/indra/newview/skins/default/colors.xml
index cb1d6aa32b..bdbece33e0 100755
--- a/indra/newview/skins/default/colors.xml
+++ b/indra/newview/skins/default/colors.xml
@@ -907,10 +907,16 @@
 
   <!-- syntax highlighting (LSL Scripts) -->
   <color
-    name="SyntaxLslComment1Sided"
-    value=".8 .3 .15 1.0" />
+    name="ScriptText"
+    reference="Black" />
+  <color
+    name="ScriptBackground"
+    reference="White" />
+  <color
+    name="ScriptCursorColor"
+    reference="Black" />
   <color
-    name="SyntaxLslComment2Sided"
+    name="SyntaxLslComment"
     value=".8 .3 .15 1.0" />
   <color
     name="SyntaxLslConstantFloat"
diff --git a/indra/newview/skins/default/xui/en/floater_script_ed_prefs.xml b/indra/newview/skins/default/xui/en/floater_script_ed_prefs.xml
new file mode 100644
index 0000000000..838ed031d6
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_script_ed_prefs.xml
@@ -0,0 +1,478 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ legacy_header_height="18"
+ can_resize="true"
+ height="400"
+ layout="topleft"
+ name="floater_script_colors"
+ help_topic="script_colors"
+ save_rect="true"
+ title="Customize script colors"
+ width="300">
+    <text
+     follows="left|top"
+     height="15"
+     layout="topleft"
+     left="12"
+     name="color_pickers_label"
+     top="30"
+     width="200">
+     Choose desired colors:
+    </text>
+
+    <color_swatch
+    can_apply_immediately="true"
+    follows="left|top"
+    height="24"
+    label_height="0"
+    layout="topleft"
+    left="15"
+    name="text"
+    top="45"
+    width="44" >
+        <color_swatch.init_callback
+         function="ScriptPref.getUIColor"
+         parameter="ScriptText" />
+        <color_swatch.commit_callback
+         function="ScriptPref.applyUIColor"
+         parameter="ScriptText" />
+    </color_swatch>
+    <text
+     type="string"
+     length="1"
+     follows="left|top"
+     height="10"
+     layout="topleft"
+     left_pad="5"
+     mouse_opaque="false"
+     name="text_label"
+     top_delta="5"
+     width="100">
+     Text
+	</text>
+    <color_swatch
+     can_apply_immediately="true"
+     follows="left|top"
+     height="24"
+     label_height="0"
+     layout="topleft"
+     left="15"
+     name="cursor"
+     top_pad="10"
+     width="44" >
+        <color_swatch.init_callback
+         function="ScriptPref.getUIColor"
+         parameter="ScriptCursorColor" />
+        <color_swatch.commit_callback
+         function="ScriptPref.applyUIColor"
+         parameter="ScriptCursorColor" />
+    </color_swatch>
+    <text
+     type="string"
+     length="1"
+     follows="left|top"
+     height="10"
+     layout="topleft"
+     left_pad="5"
+     mouse_opaque="false"
+     name="cursor_label"
+     top_delta="5"
+     width="100">
+     Cursor
+    </text>
+    <color_swatch
+     can_apply_immediately="true"
+     follows="left|top"
+     height="24"
+     label_height="0"
+     layout="topleft"
+     left="15"
+     name="background"
+     top_pad="10"
+     width="44" >
+        <color_swatch.init_callback
+         function="ScriptPref.getUIColor"
+         parameter="ScriptBackground" />
+        <color_swatch.commit_callback
+         function="ScriptPref.applyUIColor"
+         parameter="ScriptBackground" />
+    </color_swatch>
+    <text
+     type="string"
+     length="1"
+     follows="left|top"
+     height="10"
+     layout="topleft"
+     left_pad="5"
+     mouse_opaque="false"
+     name="background_label"
+     top_delta="5"
+     width="100">
+    Background
+    </text>
+    <color_swatch
+     can_apply_immediately="true"
+     follows="left|top"
+     height="24"
+     label_height="0"
+     layout="topleft"
+     left="15"
+     name="section"
+     top_pad="10"
+     width="44" >
+        <color_swatch.init_callback
+         function="ScriptPref.getUIColor"
+         parameter="SyntaxLslSection" />
+        <color_swatch.commit_callback
+         function="ScriptPref.applyUIColor"
+         parameter="SyntaxLslSection" />
+    </color_swatch>
+    <text
+     type="string"
+     length="1"
+     follows="left|top"
+     height="10"
+     layout="topleft"
+     left_pad="5"
+     mouse_opaque="false"
+     name="section_label"
+     top_delta="5"
+     width="100">
+    Sections
+    </text>
+    <color_swatch
+     can_apply_immediately="true"
+     follows="left|top"
+     height="24"
+     label_height="0"
+     layout="topleft"
+     left="15"
+     name="datatype"
+     top_pad="10"
+     width="44" >
+        <color_swatch.init_callback
+         function="ScriptPref.getUIColor"
+         parameter="SyntaxLslDataType" />
+        <color_swatch.commit_callback
+         function="ScriptPref.applyUIColor"
+         parameter="SyntaxLslDataType" />
+    </color_swatch>
+    <text
+     type="string"
+     length="1"
+     follows="left|top"
+     height="10"
+     layout="topleft"
+     left_pad="5"
+     mouse_opaque="false"
+     name="datatype_label"
+     top_delta="5"
+     width="100">
+    Data Types
+    </text>
+    <color_swatch
+     can_apply_immediately="true"
+     follows="left|top"
+     height="24"
+     label_height="0"
+     layout="topleft"
+     left="15"
+     name="event"
+     top_pad="10"
+     width="44" >
+        <color_swatch.init_callback
+         function="ScriptPref.getUIColor"
+         parameter="SyntaxLslEvent" />
+        <color_swatch.commit_callback
+         function="ScriptPref.applyUIColor"
+         parameter="SyntaxLslEvent" />
+    </color_swatch>
+    <text
+     type="string"
+     length="1"
+     follows="left|top"
+     height="10"
+     layout="topleft"
+     left_pad="5"
+     mouse_opaque="false"
+     name="event_label"
+     top_delta="5"
+     width="100">
+    Events
+    </text>
+    <color_swatch
+     can_apply_immediately="true"
+     follows="left|top"
+     height="24"
+     label_height="0"
+     layout="topleft"
+     left="15"
+     name="comment"
+     top_pad="10"
+     width="44" >
+        <color_swatch.init_callback
+         function="ScriptPref.getUIColor"
+         parameter="SyntaxLslComment" />
+        <color_swatch.commit_callback
+         function="ScriptPref.applyUIColor"
+         parameter="SyntaxLslComment" />
+    </color_swatch>
+    <text
+     type="string"
+     length="1"
+     follows="left|top"
+     height="10"
+     layout="topleft"
+     left_pad="5"
+     mouse_opaque="false"
+     name="comment_label"
+     top_delta="5"
+     width="100">
+    Comment
+    </text>
+    <color_swatch
+     can_apply_immediately="true"
+     follows="left|top"
+     height="24"
+     label_height="0"
+     layout="topleft"
+     left="170"
+     name="string_literal"
+     top="45"
+     width="44" >
+        <color_swatch.init_callback
+         function="ScriptPref.getUIColor"
+         parameter="SyntaxLslStringLiteral" />
+        <color_swatch.commit_callback
+         function="ScriptPref.applyUIColor"
+         parameter="SyntaxLslStringLiteral" />
+    </color_swatch>
+    <text
+     type="string"
+     length="1"
+     follows="left|top"
+     height="10"
+     layout="topleft"
+     left_pad="5"
+     mouse_opaque="false"
+     name="string_literal_label"
+     top_delta="5"
+     width="100">
+    String Literals
+    </text>
+
+    <color_swatch
+     can_apply_immediately="true"
+     follows="left|top"
+     height="24"
+     label_height="0"
+     layout="topleft"
+     left="170"
+     name="i_constant"
+     top_pad="10"
+     width="44" >
+        <color_swatch.init_callback
+         function="ScriptPref.getUIColor"
+         parameter="SyntaxLslConstantInteger" />
+        <color_swatch.commit_callback
+         function="ScriptPref.applyUIColor"
+         parameter="SyntaxLslConstantInteger" />
+    </color_swatch>
+    <text
+     type="string"
+     length="1"
+     follows="left|top"
+     height="10"
+     layout="topleft"
+     left_pad="5"
+     mouse_opaque="false"
+     name="i_constant_label"
+     top_delta="5"
+     width="100">
+    Integer Const
+    </text>
+    <color_swatch
+     can_apply_immediately="true"
+     follows="left|top"
+     height="24"
+     label_height="0"
+     layout="topleft"
+     left="170"
+     name="s_constant"
+     top_pad="10"
+     width="44" >
+        <color_swatch.init_callback
+         function="ScriptPref.getUIColor"
+         parameter="SyntaxLslConstantString" />
+        <color_swatch.commit_callback
+         function="ScriptPref.applyUIColor"
+         parameter="SyntaxLslConstantString" />
+    </color_swatch>
+    <text
+     type="string"
+     length="1"
+     follows="left|top"
+     height="10"
+     layout="topleft"
+     left_pad="5"
+     mouse_opaque="false"
+     name="s_constant_label"
+     top_delta="5"
+     width="100">
+    String Const
+    </text>
+    <color_swatch
+     can_apply_immediately="true"
+     follows="left|top"
+     height="24"
+     label_height="0"
+     layout="topleft"
+     left="170"
+     name="f_constant"
+     top_pad="10"
+     width="44" >
+        <color_swatch.init_callback
+         function="ScriptPref.getUIColor"
+         parameter="SyntaxLslConstantFloat" />
+        <color_swatch.commit_callback
+         function="ScriptPref.applyUIColor"
+         parameter="SyntaxLslConstantFloat" />
+    </color_swatch>
+    <text
+     type="string"
+     length="1"
+     follows="left|top"
+     height="10"
+     layout="topleft"
+     left_pad="5"
+     mouse_opaque="false"
+     name="f_constant_label"
+     top_delta="5"
+     width="100">
+    Float Const
+    </text>
+    <color_swatch
+     can_apply_immediately="true"
+     follows="left|top"
+     height="24"
+     label_height="0"
+     layout="topleft"
+     left="170"
+     name="c_constant"
+     top_pad="10"
+     width="44" >
+        <color_swatch.init_callback
+         function="ScriptPref.getUIColor"
+         parameter="SyntaxCompoundConstant" />
+        <color_swatch.commit_callback
+         function="ScriptPref.applyUIColor"
+         parameter="SyntaxCompoundConstant" />
+    </color_swatch>
+    <text
+     type="string"
+     length="1"
+     follows="left|top"
+     height="10"
+     layout="topleft"
+     left_pad="5"
+     mouse_opaque="false"
+     name="c_constant_label"
+     top_delta="5"
+     width="100">
+    Compound
+    </text>
+    <color_swatch
+     can_apply_immediately="true"
+     follows="left|top"
+     height="24"
+     label_height="0"
+     layout="topleft"
+     left="170"
+     name="flow_control"
+     top_pad="10"
+     width="44" >
+        <color_swatch.init_callback
+         function="ScriptPref.getUIColor"
+         parameter="SyntaxLslControlFlow" />
+        <color_swatch.commit_callback
+         function="ScriptPref.applyUIColor"
+         parameter="SyntaxLslControlFlow" />
+    </color_swatch>
+    <text
+     type="string"
+     length="1"
+     follows="left|top"
+     height="10"
+     layout="topleft"
+     left_pad="5"
+     mouse_opaque="false"
+     name="flow_control_label"
+     top_delta="5"
+     width="100">
+    Flow Control
+    </text>
+    <color_swatch
+    can_apply_immediately="true"
+    follows="left|top"
+    height="24"
+    label_height="0"
+    layout="topleft"
+    left="170"
+    name="function"
+    top_pad="10"
+    width="44" >
+        <color_swatch.init_callback
+         function="ScriptPref.getUIColor"
+         parameter="SyntaxLslFunction" />
+        <color_swatch.commit_callback
+         function="ScriptPref.applyUIColor"
+         parameter="SyxtaxLslFunction" />
+    </color_swatch>
+    <text
+     type="string"
+     length="1"
+     follows="left|top"
+     height="10"
+     layout="topleft"
+     left_pad="5"
+     mouse_opaque="false"
+     name="function_label"
+     top_delta="5"
+     width="100">
+    Function
+    </text>
+
+    <script_editor
+     left="8"
+     right="-8"
+     top="250"
+     bottom="-8"
+     type="string"
+     length="1"
+     follows="left|top|right|bottom"
+     font="Monospace"
+     height="100"
+     ignore_tab="false"
+     layout="topleft"
+     max_length="300"
+     name="Script Preview"
+     text_color="ScriptText"
+     default_color="ScriptText"
+     bg_writeable_color="ScriptBackground"
+     bg_focus_color="ScriptBackground"
+     text_readonly_color="ScriptText"
+     bg_readonly_color="ScriptBackground"
+     bg_selected_color="ScriptSelectedColor"
+     cursor_color="ScriptCursorColor"
+     show_line_numbers="true"
+     enable_tooltip_paste="true"
+     word_wrap="true">
+default
+{
+    state_entry()
+    {
+        llSay(0, "Hello!");
+    }
+}
+    </script_editor>
+</floater>
\ No newline at end of file
diff --git a/indra/newview/skins/default/xui/en/panel_script_ed.xml b/indra/newview/skins/default/xui/en/panel_script_ed.xml
index 76a81c4885..755d9eaf39 100755
--- a/indra/newview/skins/default/xui/en/panel_script_ed.xml
+++ b/indra/newview/skins/default/xui/en/panel_script_ed.xml
@@ -70,6 +70,16 @@
            label="Save to file..."
            layout="topleft"
            name="SaveToFile" />
+          <menu_item_separator
+           layout="topleft" />
+          <menu_item_call
+           label="Colors..."
+           layout="topleft"
+           name="Colors">
+            <menu_item_call.on_click
+             function="Floater.Toggle"
+             parameter="script_colors"/>
+          </menu_item_call>
         </menu>
         <menu
          top="0"
@@ -159,7 +169,6 @@
      layout="topleft"
      max_length="262144"
      name="Script Editor"
-     text_readonly_color="DkGray"
      width="487"
      enable_tooltip_paste="true"
      word_wrap="true"
diff --git a/indra/newview/skins/default/xui/en/script_editor.xml b/indra/newview/skins/default/xui/en/script_editor.xml
index b030a117fc..f1c6161711 100644
--- a/indra/newview/skins/default/xui/en/script_editor.xml
+++ b/indra/newview/skins/default/xui/en/script_editor.xml
@@ -1,7 +1,11 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <script_editor
-    name="script_editor"
-    parse_urls="false"
-	show_context_menu="true"
-	show_line_numbers="true">
+ name="script_editor"
+ parse_urls="false"
+ show_context_menu="true"
+ show_line_numbers="true"
+ text_color="ScriptText"
+ default_color="ScriptText"
+ bg_writeable_color="ScriptBackground"
+ bg_focus_color="ScriptBackground">
 </script_editor>
-- 
cgit v1.2.3


From e776b600b1a76fcbe316041fc6fa8e885464daee Mon Sep 17 00:00:00 2001
From: Cinder <cinder.roxley@phoenixviewer.com>
Date: Wed, 14 May 2014 14:08:24 -0600
Subject: Refactor more script editor properties away from LLTextEditor to
 LLScriptEditor

---
 indra/llui/lltexteditor.cpp                        | 77 +----------------
 indra/llui/lltexteditor.h                          |  7 +-
 indra/newview/llfloaterscriptedprefs.h             |  4 +-
 indra/newview/llscripteditor.cpp                   | 96 +++++++++++++++++++++-
 indra/newview/llscripteditor.h                     |  8 ++
 .../default/xui/en/floater_script_ed_prefs.xml     |  1 -
 .../skins/default/xui/en/panel_script_ed.xml       |  3 +-
 7 files changed, 106 insertions(+), 90 deletions(-)

(limited to 'indra')

diff --git a/indra/llui/lltexteditor.cpp b/indra/llui/lltexteditor.cpp
index 7818f6e285..268c830a75 100755
--- a/indra/llui/lltexteditor.cpp
+++ b/indra/llui/lltexteditor.cpp
@@ -75,8 +75,6 @@ template class LLTextEditor* LLView::getChild<class LLTextEditor>(
 //
 // Constants
 //
-const S32	UI_TEXTEDITOR_LINE_NUMBER_MARGIN = 32;
-const S32	UI_TEXTEDITOR_LINE_NUMBER_DIGITS = 4;
 const S32	SPACES_PER_TAB = 4;
 const F32	SPELLCHECK_DELAY = 0.5f;	// delay between the last keypress and spell checking the word the cursor is on
 
@@ -236,7 +234,6 @@ LLTextEditor::Params::Params()
 	prevalidate_callback("prevalidate_callback"),
 	embedded_items("embedded_items", false),
 	ignore_tab("ignore_tab", true),
-	show_line_numbers("show_line_numbers", false),
 	auto_indent("auto_indent", true),
 	default_color("default_color"),
     commit_on_focus_lost("commit_on_focus_lost", false),
@@ -252,8 +249,7 @@ LLTextEditor::LLTextEditor(const LLTextEditor::Params& p) :
 	mBaseDocIsPristine(TRUE),
 	mPristineCmd( NULL ),
 	mLastCmd( NULL ),
-	mDefaultColor(		p.default_color() ),
-	mShowLineNumbers ( p.show_line_numbers ),
+	mDefaultColor( p.default_color() ),
 	mAutoIndent(p.auto_indent),
 	mCommitOnFocusLost( p.commit_on_focus_lost),
 	mAllowEmbeddedItems( p.embedded_items ),
@@ -277,14 +273,7 @@ LLTextEditor::LLTextEditor(const LLTextEditor::Params& p) :
 	params.visible = p.border_visible;
 	mBorder = LLUICtrlFactory::create<LLViewBorder> (params);
 	addChild( mBorder );
-
 	setText(p.default_text());
-
-	if (mShowLineNumbers)
-	{
-		mHPad += UI_TEXTEDITOR_LINE_NUMBER_MARGIN;
-		updateRects();
-	}
 	
 	mParseOnTheFly = TRUE;
 }
@@ -2196,69 +2185,6 @@ void LLTextEditor::drawPreeditMarker()
 	}
 }
 
-
-void LLTextEditor::drawLineNumbers()
-{
-	LLGLSUIDefault gls_ui;
-	LLRect scrolled_view_rect = getVisibleDocumentRect();
-	LLRect content_rect = getVisibleTextRect();	
-	LLLocalClipRect clip(content_rect);
-	S32 first_line = getFirstVisibleLine();
-	S32 num_lines = getLineCount();
-	if (first_line >= num_lines)
-	{
-		return;
-	}
-	
-	S32 cursor_line = mLineInfoList[getLineNumFromDocIndex(mCursorPos)].mLineNum;
-
-	if (mShowLineNumbers)
-	{
-		S32 left = 0;
-		S32 top = getRect().getHeight();
-		S32 bottom = 0;
-
-		gl_rect_2d(left, top, UI_TEXTEDITOR_LINE_NUMBER_MARGIN, bottom, mReadOnlyBgColor.get() ); // line number area always read-only
-		gl_rect_2d(UI_TEXTEDITOR_LINE_NUMBER_MARGIN, top, UI_TEXTEDITOR_LINE_NUMBER_MARGIN-1, bottom, LLColor4::grey3); // separator
-
-		S32 last_line_num = -1;
-
-		for (S32 cur_line = first_line; cur_line < num_lines; cur_line++)
-		{
-			line_info& line = mLineInfoList[cur_line];
-
-			if ((line.mRect.mTop - scrolled_view_rect.mBottom) < mVisibleTextRect.mBottom) 
-			{
-				break;
-			}
-
-			S32 line_bottom = line.mRect.mBottom - scrolled_view_rect.mBottom + mVisibleTextRect.mBottom;
-			// draw the line numbers
-			if(line.mLineNum != last_line_num && line.mRect.mTop <= scrolled_view_rect.mTop) 
-			{
-				const LLFontGL *num_font = LLFontGL::getFontMonospace();
-				const LLWString ltext = utf8str_to_wstring(llformat("%d", line.mLineNum ));
-				BOOL is_cur_line = cursor_line == line.mLineNum;
-				const U8 style = is_cur_line ? LLFontGL::BOLD : LLFontGL::NORMAL;
-				const LLColor4 fg_color = is_cur_line ? mCursorColor : mReadOnlyFgColor;
-				num_font->render( 
-					ltext, // string to draw
-					0, // begin offset
-					UI_TEXTEDITOR_LINE_NUMBER_MARGIN - 2, // x
-					line_bottom, // y
-					fg_color, 
-					LLFontGL::RIGHT, // horizontal alignment
-					LLFontGL::BOTTOM, // vertical alignment
-					style,
-					LLFontGL::NO_SHADOW,
-					S32_MAX, // max chars
-					UI_TEXTEDITOR_LINE_NUMBER_MARGIN - 2); // max pixels
-				last_line_num = line.mLineNum;
-			}
-		}
-	}
-}
-
 void LLTextEditor::draw()
 {
 	{
@@ -2270,7 +2196,6 @@ void LLTextEditor::draw()
 	}
 
 	LLTextBase::draw();
-	drawLineNumbers();
 
     drawPreeditMarker();
 
diff --git a/indra/llui/lltexteditor.h b/indra/llui/lltexteditor.h
index 404275026c..2408613824 100755
--- a/indra/llui/lltexteditor.h
+++ b/indra/llui/lltexteditor.h
@@ -58,7 +58,6 @@ public:
 
 		Optional<bool>			embedded_items,
 								ignore_tab,
-								show_line_numbers,
 								commit_on_focus_lost,
 								show_context_menu,
 								enable_tooltip_paste,
@@ -279,11 +278,11 @@ protected:
 protected:
 	LLUIColor			mDefaultColor;
 
-	BOOL				mShowLineNumbers;
 	bool				mAutoIndent;
 	bool				mParseOnTheFly;
 
 	void				updateLinkSegments();
+	class LLViewBorder*	mBorder;
 
 private:
 	//
@@ -293,8 +292,6 @@ private:
 	void			cleanStringForPaste(LLWString & clean_string);
 	void			pasteTextWithLinebreaks(LLWString & clean_string);
 
-	void			drawLineNumbers();
-
 	void			onKeyStroke();
 
 	// Concrete TextCmd sub-classes used by the LLTextEditor base class
@@ -303,8 +300,6 @@ private:
 	class TextCmdOverwriteChar;
 	class TextCmdRemove;
 
-	class LLViewBorder*	mBorder;
-
 	BOOL			mBaseDocIsPristine;
 	TextCmd*		mPristineCmd;
 
diff --git a/indra/newview/llfloaterscriptedprefs.h b/indra/newview/llfloaterscriptedprefs.h
index 360c9adc92..765db75abc 100644
--- a/indra/newview/llfloaterscriptedprefs.h
+++ b/indra/newview/llfloaterscriptedprefs.h
@@ -25,8 +25,8 @@
  * $/LicenseInfo$
  */
 
-#ifndef LLFLOATERSCRIPTEDPREFS_H
-#define LLFLOATERSCRIPTEDPREFS_H
+#ifndef LL_FLOATERSCRIPTEDPREFS_H
+#define LL_FLOATERSCRIPTEDPREFS_H
 
 #include "llfloater.h"
 
diff --git a/indra/newview/llscripteditor.cpp b/indra/newview/llscripteditor.cpp
index 31d3c29af4..df46380130 100644
--- a/indra/newview/llscripteditor.cpp
+++ b/indra/newview/llscripteditor.cpp
@@ -29,19 +29,109 @@
 #include "llscripteditor.h"
 
 #include "llsyntaxid.h"
+#include "lllocalcliprect.h"
+
+const S32	UI_TEXTEDITOR_LINE_NUMBER_MARGIN = 32;
+const S32	UI_TEXTEDITOR_LINE_NUMBER_DIGITS = 4;
 
 static LLDefaultChildRegistry::Register<LLScriptEditor> r("script_editor");
 
 LLScriptEditor::Params::Params()
-{
-
-}
+:	show_line_numbers("show_line_numbers", true)
+{}
 
 
 LLScriptEditor::LLScriptEditor(const Params& p)
 :	LLTextEditor(p)
+,	mShowLineNumbers(p.show_line_numbers)
+{
+	if (mShowLineNumbers)
+	{
+		mHPad += UI_TEXTEDITOR_LINE_NUMBER_MARGIN;
+		updateRects();
+	}
+}
+
+void LLScriptEditor::draw()
 {
+	{
+		// pad clipping rectangle so that cursor can draw at full width
+		// when at left edge of mVisibleTextRect
+		LLRect clip_rect(mVisibleTextRect);
+		clip_rect.stretch(1);
+		LLLocalClipRect clip(clip_rect);
+	}
 	
+	LLTextBase::draw();
+	drawLineNumbers();
+	
+    drawPreeditMarker();
+	
+	//RN: the decision was made to always show the orange border for keyboard focus but do not put an insertion caret
+	// when in readonly mode
+	mBorder->setKeyboardFocusHighlight( hasFocus() );// && !mReadOnly);
+}
+
+void LLScriptEditor::drawLineNumbers()
+{
+	LLGLSUIDefault gls_ui;
+	LLRect scrolled_view_rect = getVisibleDocumentRect();
+	LLRect content_rect = getVisibleTextRect();
+	LLLocalClipRect clip(content_rect);
+	S32 first_line = getFirstVisibleLine();
+	S32 num_lines = getLineCount();
+	if (first_line >= num_lines)
+	{
+		return;
+	}
+	
+	S32 cursor_line = mLineInfoList[getLineNumFromDocIndex(mCursorPos)].mLineNum;
+	
+	if (mShowLineNumbers)
+	{
+		S32 left = 0;
+		S32 top = getRect().getHeight();
+		S32 bottom = 0;
+		
+		gl_rect_2d(left, top, UI_TEXTEDITOR_LINE_NUMBER_MARGIN, bottom, mReadOnlyBgColor.get() ); // line number area always read-only
+		gl_rect_2d(UI_TEXTEDITOR_LINE_NUMBER_MARGIN, top, UI_TEXTEDITOR_LINE_NUMBER_MARGIN-1, bottom, LLColor4::grey3); // separator
+		
+		S32 last_line_num = -1;
+		
+		for (S32 cur_line = first_line; cur_line < num_lines; cur_line++)
+		{
+			line_info& line = mLineInfoList[cur_line];
+			
+			if ((line.mRect.mTop - scrolled_view_rect.mBottom) < mVisibleTextRect.mBottom)
+			{
+				break;
+			}
+			
+			S32 line_bottom = line.mRect.mBottom - scrolled_view_rect.mBottom + mVisibleTextRect.mBottom;
+			// draw the line numbers
+			if(line.mLineNum != last_line_num && line.mRect.mTop <= scrolled_view_rect.mTop)
+			{
+				const LLFontGL *num_font = LLFontGL::getFontMonospace();
+				const LLWString ltext = utf8str_to_wstring(llformat("%d", line.mLineNum ));
+				BOOL is_cur_line = cursor_line == line.mLineNum;
+				const U8 style = is_cur_line ? LLFontGL::BOLD : LLFontGL::NORMAL;
+				const LLColor4 fg_color = is_cur_line ? mCursorColor : mReadOnlyFgColor;
+				num_font->render(
+								 ltext, // string to draw
+								 0, // begin offset
+								 UI_TEXTEDITOR_LINE_NUMBER_MARGIN - 2, // x
+								 line_bottom, // y
+								 fg_color,
+								 LLFontGL::RIGHT, // horizontal alignment
+								 LLFontGL::BOTTOM, // vertical alignment
+								 style,
+								 LLFontGL::NO_SHADOW,
+								 S32_MAX, // max chars
+								 UI_TEXTEDITOR_LINE_NUMBER_MARGIN - 2); // max pixels
+				last_line_num = line.mLineNum;
+			}
+		}
+	}
 }
 
 void LLScriptEditor::initKeywords()
diff --git a/indra/newview/llscripteditor.h b/indra/newview/llscripteditor.h
index d3e18021f9..8c5ab362a3 100644
--- a/indra/newview/llscripteditor.h
+++ b/indra/newview/llscripteditor.h
@@ -36,10 +36,16 @@ public:
 	
 	struct Params : public LLInitParam::Block<Params, LLTextEditor::Params>
 	{
+		Optional<bool>		show_line_numbers;
+		
 		Params();
 	};
 	
 	virtual ~LLScriptEditor() {};
+	
+	// LLView override
+	virtual void	draw();
+	
 	void	initKeywords();
 	void	loadKeywords();
 	void	clearSegments();
@@ -51,11 +57,13 @@ protected:
 	LLScriptEditor(const Params& p);
 	
 private:
+	void	drawLineNumbers();
 	void	updateSegments();
 	void	loadKeywords(const std::string& filename_keywords,
 						 const std::string& filename_colors);
 	
 	LLKeywords	mKeywords;
+	bool		mShowLineNumbers;
 };
 
 #endif // LL_SCRIPTEDITOR_H
diff --git a/indra/newview/skins/default/xui/en/floater_script_ed_prefs.xml b/indra/newview/skins/default/xui/en/floater_script_ed_prefs.xml
index 838ed031d6..ee996ee27c 100644
--- a/indra/newview/skins/default/xui/en/floater_script_ed_prefs.xml
+++ b/indra/newview/skins/default/xui/en/floater_script_ed_prefs.xml
@@ -464,7 +464,6 @@
      bg_readonly_color="ScriptBackground"
      bg_selected_color="ScriptSelectedColor"
      cursor_color="ScriptCursorColor"
-     show_line_numbers="true"
      enable_tooltip_paste="true"
      word_wrap="true">
 default
diff --git a/indra/newview/skins/default/xui/en/panel_script_ed.xml b/indra/newview/skins/default/xui/en/panel_script_ed.xml
index 755d9eaf39..76677d6e95 100755
--- a/indra/newview/skins/default/xui/en/panel_script_ed.xml
+++ b/indra/newview/skins/default/xui/en/panel_script_ed.xml
@@ -172,8 +172,7 @@
      width="487"
      enable_tooltip_paste="true"
      word_wrap="true"
-     show_context_menu="true"
-     show_line_numbers="true">
+     show_context_menu="true">
         Loading...
     </script_editor>
     <scroll_list
-- 
cgit v1.2.3


From 15d8f355072f2184f046a7aafb1b5c606fe97880 Mon Sep 17 00:00:00 2001
From: Oz Linden <oz@lindenlab.com>
Date: Wed, 14 May 2014 16:43:13 -0400
Subject: clean up the constructor for LLSyntaxIdLSL

---
 indra/newview/llsyntaxid.cpp | 36 +++++++++++++++++-------------------
 indra/newview/llsyntaxid.h   |  5 ++++-
 2 files changed, 21 insertions(+), 20 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llsyntaxid.cpp b/indra/newview/llsyntaxid.cpp
index 9a0f53978e..7551c1a442 100644
--- a/indra/newview/llsyntaxid.cpp
+++ b/indra/newview/llsyntaxid.cpp
@@ -103,31 +103,29 @@ void fetchKeywordsFileResponder::cacheFile(const LLSD& content_ref)
 //-----------------------------------------------------------------------------
 // LLSyntaxIdLSL
 //-----------------------------------------------------------------------------
-const std::string CAPABILITY_NAME = "LSLSyntax";
-const std::string FILENAME_DEFAULT = "keywords_lsl_default.xml";
-const std::string SIMULATOR_FEATURE = "LSLSyntaxId";
+const std::string LLSyntaxIdLSL::CAPABILITY_NAME = "LSLSyntax";
+const std::string LLSyntaxIdLSL::FILENAME_DEFAULT = "keywords_lsl_default.xml";
+const std::string LLSyntaxIdLSL::SIMULATOR_FEATURE = "LSLSyntaxId";
 
 /**
  * @brief LLSyntaxIdLSL constructor
  */
-LLSyntaxIdLSL::LLSyntaxIdLSL(const std::string& filename, const std::string& sim_feature, const std::string& capability)
-:	mFilePath(LL_PATH_APP_SETTINGS)
-{
-	mCapabilityName = capability;
-	mFileNameCurrent = filename;
-	mFileNameDefault = filename;
-	mSimulatorFeature = sim_feature;
-	mSyntaxIdCurrent = LLUUID();
-}
-
 LLSyntaxIdLSL::LLSyntaxIdLSL() :
-	mFilePath(LL_PATH_APP_SETTINGS)
+	mInitialized(false),
+	mKeywordsXml(LLSD()),
+	mLoaded(false),
+	mLoadFailed(false),
+	mVersionChanged(false),
+	mCapabilityName(CAPABILITY_NAME),
+	mCapabilityURL(""),
+	mFileNameCurrent(FILENAME_DEFAULT),
+	mFileNameDefault(FILENAME_DEFAULT),
+	mFileNameNew(""),
+	mFilePath(LL_PATH_APP_SETTINGS),
+	mSimulatorFeature(SIMULATOR_FEATURE),
+	mSyntaxIdCurrent(LLUUID()),
+	mSyntaxIdNew(LLUUID())
 {
-	mCapabilityName = CAPABILITY_NAME;
-	mFileNameCurrent = FILENAME_DEFAULT;
-	mFileNameDefault = FILENAME_DEFAULT;
-	mSimulatorFeature = SIMULATOR_FEATURE;
-	mSyntaxIdCurrent = LLUUID();
 }
 
 std::string LLSyntaxIdLSL::buildFileNameNew()
diff --git a/indra/newview/llsyntaxid.h b/indra/newview/llsyntaxid.h
index d803a09167..aa69209ca9 100644
--- a/indra/newview/llsyntaxid.h
+++ b/indra/newview/llsyntaxid.h
@@ -42,7 +42,6 @@ friend class fetchKeywordsFileResponder;
 
 public:
 	LLSyntaxIdLSL();
-	LLSyntaxIdLSL(const std::string& filename, const std::string& sim_feature, const std::string& capability);
 
 	bool			checkSyntaxIdChanged();
 	bool			fetching();
@@ -74,6 +73,10 @@ protected:
 	void			setFileNameNew(const std::string name) { mFileNameNew = name; }
 	
 private:
+	static const std::string CAPABILITY_NAME;
+	static const std::string FILENAME_DEFAULT;
+	static const std::string SIMULATOR_FEATURE;
+
 	bool		mInitialized;
 	LLSD		mKeywordsXml;
 	bool		mLoaded;
-- 
cgit v1.2.3


From 7ada3ea719e583101ea0762ed75f0c1b803f08dc Mon Sep 17 00:00:00 2001
From: Cinder <cinder.roxley@phoenixviewer.com>
Date: Wed, 14 May 2014 20:37:25 -0600
Subject: Clean up LLSyntaxIdLSL ctor

---
 indra/newview/llsyntaxid.cpp | 35 ++++++++---------------------------
 indra/newview/llsyntaxid.h   |  5 -----
 2 files changed, 8 insertions(+), 32 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llsyntaxid.cpp b/indra/newview/llsyntaxid.cpp
index 9a0f53978e..dfbb8c9551 100644
--- a/indra/newview/llsyntaxid.cpp
+++ b/indra/newview/llsyntaxid.cpp
@@ -103,36 +103,17 @@ void fetchKeywordsFileResponder::cacheFile(const LLSD& content_ref)
 //-----------------------------------------------------------------------------
 // LLSyntaxIdLSL
 //-----------------------------------------------------------------------------
-const std::string CAPABILITY_NAME = "LSLSyntax";
 const std::string FILENAME_DEFAULT = "keywords_lsl_default.xml";
-const std::string SIMULATOR_FEATURE = "LSLSyntaxId";
 
-/**
- * @brief LLSyntaxIdLSL constructor
- */
-LLSyntaxIdLSL::LLSyntaxIdLSL(const std::string& filename, const std::string& sim_feature, const std::string& capability)
+LLSyntaxIdLSL::LLSyntaxIdLSL()
 :	mFilePath(LL_PATH_APP_SETTINGS)
-{
-	mCapabilityName = capability;
-	mFileNameCurrent = filename;
-	mFileNameDefault = filename;
-	mSimulatorFeature = sim_feature;
-	mSyntaxIdCurrent = LLUUID();
-}
-
-LLSyntaxIdLSL::LLSyntaxIdLSL() :
-	mFilePath(LL_PATH_APP_SETTINGS)
-{
-	mCapabilityName = CAPABILITY_NAME;
-	mFileNameCurrent = FILENAME_DEFAULT;
-	mFileNameDefault = FILENAME_DEFAULT;
-	mSimulatorFeature = SIMULATOR_FEATURE;
-	mSyntaxIdCurrent = LLUUID();
-}
+,	mFileNameCurrent(FILENAME_DEFAULT)
+,	mSyntaxIdCurrent(LLUUID())
+{}
 
 std::string LLSyntaxIdLSL::buildFileNameNew()
 {
-	mFileNameNew = mSyntaxIdNew.isNull() ? mFileNameDefault : "keywords_lsl_" + mSyntaxIdNew.asString() + ".llsd.xml";
+	mFileNameNew = mSyntaxIdNew.isNull() ? FILENAME_DEFAULT : "keywords_lsl_" + mSyntaxIdNew.asString() + ".llsd.xml";
 	return mFileNameNew;
 }
 
@@ -165,11 +146,11 @@ bool LLSyntaxIdLSL::checkSyntaxIdChanged()
 			region->getSimulatorFeatures(simFeatures);
 
 			// Does the sim have the required feature
-			if (simFeatures.has(mSimulatorFeature))
+			if (simFeatures.has("LSLSyntaxId"))
 			{
 				// get and check the hash
-				mSyntaxIdNew = simFeatures[mSimulatorFeature].asUUID();
-				mCapabilityURL = region->getCapability(mCapabilityName);
+				mSyntaxIdNew = simFeatures["LSLSyntaxId"].asUUID();
+				mCapabilityURL = region->getCapability("LSLSyntax");
 				if (mSyntaxIdCurrent != mSyntaxIdNew)
 				{
 					LL_DEBUGS("SyntaxLSL") << "Region has LSLSyntaxId capability, and the new hash is '" << mSyntaxIdNew.asString() << "'" << LL_ENDL;
diff --git a/indra/newview/llsyntaxid.h b/indra/newview/llsyntaxid.h
index d803a09167..0f347a6ce3 100644
--- a/indra/newview/llsyntaxid.h
+++ b/indra/newview/llsyntaxid.h
@@ -42,7 +42,6 @@ friend class fetchKeywordsFileResponder;
 
 public:
 	LLSyntaxIdLSL();
-	LLSyntaxIdLSL(const std::string& filename, const std::string& sim_feature, const std::string& capability);
 
 	bool			checkSyntaxIdChanged();
 	bool			fetching();
@@ -70,7 +69,6 @@ protected:
 	void			loadKeywordsIntoLLSD();
 	void			setSyntaxId(LLUUID SyntaxId) { mSyntaxIdCurrent = SyntaxId; }
 	void			setFileNameCurrent(const std::string& name) { mFileNameCurrent = name; }
-	void			setFileNameDefault(const std::string& name) { mFileNameDefault = name; }
 	void			setFileNameNew(const std::string name) { mFileNameNew = name; }
 	
 private:
@@ -81,14 +79,11 @@ private:
 	bool		mVersionChanged;
 	file_fetched_signal_t	mFileFetchedSignal;
 	
-	std::string		mCapabilityName;
 	std::string		mCapabilityURL;
 	std::string		mFileNameCurrent;
-	std::string		mFileNameDefault;
 	std::string		mFileNameNew;
 	ELLPath			mFilePath;
 	std::string		mFullFileSpec;
-	std::string		mSimulatorFeature;
 	LLUUID			mSyntaxIdCurrent;
 	LLUUID			mSyntaxIdNew;
 };
-- 
cgit v1.2.3


From 4ce0f6d6eac3817e586bee1edd42ae80aaf21f4f Mon Sep 17 00:00:00 2001
From: Cinder <cinder.roxley@phoenixviewer.com>
Date: Wed, 14 May 2014 21:24:23 -0600
Subject: Color syntax in script colors floater

---
 indra/newview/llfloaterscriptedprefs.cpp | 7 +++++++
 1 file changed, 7 insertions(+)

(limited to 'indra')

diff --git a/indra/newview/llfloaterscriptedprefs.cpp b/indra/newview/llfloaterscriptedprefs.cpp
index 39624186bb..12d4bd6faf 100644
--- a/indra/newview/llfloaterscriptedprefs.cpp
+++ b/indra/newview/llfloaterscriptedprefs.cpp
@@ -29,6 +29,7 @@
 #include "llfloaterscriptedprefs.h"
 
 #include "llcolorswatch.h"
+#include "llscripteditor.h"
 
 
 LLFloaterScriptEdPrefs::LLFloaterScriptEdPrefs(const LLSD& key)
@@ -40,6 +41,12 @@ LLFloaterScriptEdPrefs::LLFloaterScriptEdPrefs(const LLSD& key)
 
 BOOL LLFloaterScriptEdPrefs::postBuild()
 {
+	LLScriptEditor* editor = getChild<LLScriptEditor>("Script Preview");
+	if (editor)
+	{
+		editor->initKeywords();
+		editor->loadKeywords();
+	}
 	return TRUE;
 }
 
-- 
cgit v1.2.3


From 8cd4543e6090b79b3f9bfe2bbe1f23cc98f6382e Mon Sep 17 00:00:00 2001
From: Cinder <cinder.roxley@phoenixviewer.com>
Date: Fri, 16 May 2014 07:36:44 -0600
Subject: Set colors for script editor

---
 indra/newview/skins/default/xui/en/panel_script_ed.xml | 8 ++++++++
 1 file changed, 8 insertions(+)

(limited to 'indra')

diff --git a/indra/newview/skins/default/xui/en/panel_script_ed.xml b/indra/newview/skins/default/xui/en/panel_script_ed.xml
index 76677d6e95..5971082380 100755
--- a/indra/newview/skins/default/xui/en/panel_script_ed.xml
+++ b/indra/newview/skins/default/xui/en/panel_script_ed.xml
@@ -170,6 +170,14 @@
      max_length="262144"
      name="Script Editor"
      width="487"
+     text_color="ScriptText"
+     default_color="ScriptText"
+     bg_writeable_color="ScriptBackground"
+     bg_focus_color="ScriptBackground"
+     text_readonly_color="ScriptText"
+     bg_readonly_color="ScriptBackground"
+     bg_selected_color="ScriptSelectedColor"
+     cursor_color="ScriptCursorColor"
      enable_tooltip_paste="true"
      word_wrap="true"
      show_context_menu="true">
-- 
cgit v1.2.3


From be45cff44fae3f2e28ab4784e7b73aac20f736f9 Mon Sep 17 00:00:00 2001
From: Cinder <cinder.roxley@phoenixviewer.com>
Date: Fri, 16 May 2014 08:36:33 -0600
Subject: Typo fix

---
 indra/newview/skins/default/xui/en/floater_script_ed_prefs.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'indra')

diff --git a/indra/newview/skins/default/xui/en/floater_script_ed_prefs.xml b/indra/newview/skins/default/xui/en/floater_script_ed_prefs.xml
index ee996ee27c..7b212b1d70 100644
--- a/indra/newview/skins/default/xui/en/floater_script_ed_prefs.xml
+++ b/indra/newview/skins/default/xui/en/floater_script_ed_prefs.xml
@@ -426,7 +426,7 @@
          parameter="SyntaxLslFunction" />
         <color_swatch.commit_callback
          function="ScriptPref.applyUIColor"
-         parameter="SyxtaxLslFunction" />
+         parameter="SyntaxLslFunction" />
     </color_swatch>
     <text
      type="string"
-- 
cgit v1.2.3


From 8c970eae222eb94d42e951e47153b97de744f6e5 Mon Sep 17 00:00:00 2001
From: Cinder <cinder.roxley@phoenixviewer.com>
Date: Fri, 16 May 2014 09:18:38 -0600
Subject: Remove orphaned LLKeywords methods

---
 indra/llui/llkeywords.cpp | 34 ----------------------------------
 indra/llui/llkeywords.h   |  4 ----
 2 files changed, 38 deletions(-)

(limited to 'indra')

diff --git a/indra/llui/llkeywords.cpp b/indra/llui/llkeywords.cpp
index f633f3e4af..b4e3ccbf5e 100755
--- a/indra/llui/llkeywords.cpp
+++ b/indra/llui/llkeywords.cpp
@@ -82,12 +82,6 @@ LLKeywords::~LLKeywords()
 	mDelimiterTokenList.clear();
 }
 
-void LLKeywords::addColorGroup(const std::string& key_in, const LLColor4& color)
-{
-	WStringMapIndex key ( utf8str_to_wstring(key_in) );
-	mColorGroupMap[key] = color;
-}
-
 // Add the token as described
 void LLKeywords::addToken(LLKeywordToken::ETokenType type,
 						  const std::string& key_in,
@@ -495,34 +489,6 @@ bool LLKeywords::WStringMapIndex::operator<(const LLKeywords::WStringMapIndex &o
 	return result;
 }
 
-LLColor4 LLKeywords::readColor( const std::string& s )
-{
-	F32 r, g, b;
-	r = g = b = 0.0f;
-	S32 values_read = sscanf(s.c_str(), "%f, %f, %f]", &r, &g, &b );
-	if( values_read != 3 )
-	{
-		llinfos << " poorly formed color in keyword file" << llendl;
-	}
-	return LLColor4( r, g, b, 1.f);
-}
-
-LLColor4 LLKeywords::readColor(LLSD& sd)
-{
-	if (sd.isArray())
-	{
-		return LLColor4(sd, 1.f);
-	}
-	else if (sd.isMap())
-	{
-		return LLColor4( sd.get("x").asReal(), sd.get("y").asReal(), sd.get("z").asReal(), 1.f );
-	}
-	else
-	{
-		return LLColor4::black;
-	}
-}
-
 LLTrace::BlockTimerStatHandle FTM_SYNTAX_COLORING("Syntax Coloring");
 
 // Walk through a string, applying the rules specified by the keyword token list and
diff --git a/indra/llui/llkeywords.h b/indra/llui/llkeywords.h
index eecb327fee..4e20b4459e 100755
--- a/indra/llui/llkeywords.h
+++ b/indra/llui/llkeywords.h
@@ -109,7 +109,6 @@ public:
 	LLKeywords();
 	~LLKeywords();
 
-	void		addColorGroup(const std::string& key_in, const LLColor4& color);
 	void		clearLoaded() { mLoaded = false; }
 	LLColor4	getColorGroup(const std::string& key_in);
 	bool		isLoaded() const	{ return mLoaded; }
@@ -168,12 +167,9 @@ public:
 
 protected:
 	void		processTokensGroup(const LLSD& Tokens, const std::string& Group);
-	LLColor4	readColor(const std::string& s);
-	LLColor4	readColor(LLSD& sd);
 	void		insertSegment(std::vector<LLTextSegmentPtr>& seg_list, LLTextSegmentPtr new_segment, S32 text_len, const LLColor4 &defaultColor, class LLTextEditor& editor);
 	void		insertSegments(const LLWString& wtext, std::vector<LLTextSegmentPtr>& seg_list, LLKeywordToken* token, S32 text_len, S32 seg_start, S32 seg_end, const LLColor4 &defaultColor, LLTextEditor& editor);
 
-	LLSD		mColors;
 	bool		mLoaded;
 	LLSD		mSyntax;
 	word_token_map_t mWordTokenMap;
-- 
cgit v1.2.3


From 5850397c52bbc184584de6bb3e6d33bfb8abc5d7 Mon Sep 17 00:00:00 2001
From: Cinder <cinder.roxley@phoenixviewer.com>
Date: Fri, 16 May 2014 09:18:59 -0600
Subject: Trivial indentation change in floater_script_ed_prefs.xml

---
 .../default/xui/en/floater_script_ed_prefs.xml     | 36 +++++++++++-----------
 1 file changed, 18 insertions(+), 18 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/skins/default/xui/en/floater_script_ed_prefs.xml b/indra/newview/skins/default/xui/en/floater_script_ed_prefs.xml
index 7b212b1d70..a076839c09 100644
--- a/indra/newview/skins/default/xui/en/floater_script_ed_prefs.xml
+++ b/indra/newview/skins/default/xui/en/floater_script_ed_prefs.xml
@@ -21,15 +21,15 @@
     </text>
 
     <color_swatch
-    can_apply_immediately="true"
-    follows="left|top"
-    height="24"
-    label_height="0"
-    layout="topleft"
-    left="15"
-    name="text"
-    top="45"
-    width="44" >
+     can_apply_immediately="true"
+     follows="left|top"
+     height="24"
+     label_height="0"
+     layout="topleft"
+     left="15"
+     name="text"
+     top="45"
+     width="44" >
         <color_swatch.init_callback
          function="ScriptPref.getUIColor"
          parameter="ScriptText" />
@@ -412,15 +412,15 @@
     Flow Control
     </text>
     <color_swatch
-    can_apply_immediately="true"
-    follows="left|top"
-    height="24"
-    label_height="0"
-    layout="topleft"
-    left="170"
-    name="function"
-    top_pad="10"
-    width="44" >
+     can_apply_immediately="true"
+     follows="left|top"
+     height="24"
+     label_height="0"
+     layout="topleft"
+     left="170"
+     name="function"
+     top_pad="10"
+     width="44" >
         <color_swatch.init_callback
          function="ScriptPref.getUIColor"
          parameter="SyntaxLslFunction" />
-- 
cgit v1.2.3


From f697eb375e3b72f9b57cd5071552035c82bb3f0c Mon Sep 17 00:00:00 2001
From: Cinder <cinder.roxley@phoenixviewer.com>
Date: Fri, 16 May 2014 09:27:37 -0600
Subject: Update syntax coloring in the preview script on the fly.

---
 indra/newview/llfloaterscriptedprefs.cpp | 11 +++++++----
 indra/newview/llfloaterscriptedprefs.h   |  3 +++
 2 files changed, 10 insertions(+), 4 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llfloaterscriptedprefs.cpp b/indra/newview/llfloaterscriptedprefs.cpp
index 12d4bd6faf..da075aa36c 100644
--- a/indra/newview/llfloaterscriptedprefs.cpp
+++ b/indra/newview/llfloaterscriptedprefs.cpp
@@ -34,6 +34,7 @@
 
 LLFloaterScriptEdPrefs::LLFloaterScriptEdPrefs(const LLSD& key)
 :	LLFloater(key)
+,	mEditor(NULL)
 {
 	mCommitCallbackRegistrar.add("ScriptPref.applyUIColor",	boost::bind(&LLFloaterScriptEdPrefs::applyUIColor, this ,_1, _2));
 	mCommitCallbackRegistrar.add("ScriptPref.getUIColor",	boost::bind(&LLFloaterScriptEdPrefs::getUIColor, this ,_1, _2));
@@ -41,11 +42,11 @@ LLFloaterScriptEdPrefs::LLFloaterScriptEdPrefs(const LLSD& key)
 
 BOOL LLFloaterScriptEdPrefs::postBuild()
 {
-	LLScriptEditor* editor = getChild<LLScriptEditor>("Script Preview");
-	if (editor)
+	mEditor = getChild<LLScriptEditor>("Script Preview");
+	if (mEditor)
 	{
-		editor->initKeywords();
-		editor->loadKeywords();
+		mEditor->initKeywords();
+		mEditor->loadKeywords();
 	}
 	return TRUE;
 }
@@ -54,6 +55,8 @@ void LLFloaterScriptEdPrefs::applyUIColor(LLUICtrl* ctrl, const LLSD& param)
 {
 	LLUIColorTable::instance().setColor(param.asString(), LLColor4(ctrl->getValue()));
 	// *TODO: Signal all active script editors to change colors on the fly.
+	mEditor->initKeywords();
+	mEditor->loadKeywords();
 }
 
 void LLFloaterScriptEdPrefs::getUIColor(LLUICtrl* ctrl, const LLSD& param)
diff --git a/indra/newview/llfloaterscriptedprefs.h b/indra/newview/llfloaterscriptedprefs.h
index 765db75abc..31df897aac 100644
--- a/indra/newview/llfloaterscriptedprefs.h
+++ b/indra/newview/llfloaterscriptedprefs.h
@@ -30,6 +30,7 @@
 
 #include "llfloater.h"
 
+class LLScriptEditor;
 class LLUICtrl;
 
 class LLFloaterScriptEdPrefs : public LLFloater
@@ -43,6 +44,8 @@ private:
 	
 	void applyUIColor(LLUICtrl* ctrl, const LLSD& param);
 	void getUIColor(LLUICtrl* ctrl, const LLSD& param);
+	
+	LLScriptEditor* mEditor;
 };
 
 #endif // LL_FLOATERSCRIPTEDPREFS_H
-- 
cgit v1.2.3


From ec2b00c2e5fccd7432ef1b5a5ab5c88d098e95f2 Mon Sep 17 00:00:00 2001
From: Cinder <cinder.roxley@phoenixviewer.com>
Date: Wed, 28 May 2014 12:15:37 -0600
Subject: Don't hardcode black as the default color for syntax

---
 indra/llui/llkeywords.cpp                | 4 ++--
 indra/newview/llfloaterscriptedprefs.cpp | 1 -
 2 files changed, 2 insertions(+), 3 deletions(-)

(limited to 'indra')

diff --git a/indra/llui/llkeywords.cpp b/indra/llui/llkeywords.cpp
index b4e3ccbf5e..29b9c5c2f1 100755
--- a/indra/llui/llkeywords.cpp
+++ b/indra/llui/llkeywords.cpp
@@ -172,7 +172,7 @@ std::string LLKeywords::getAttribute(const std::string& key)
 
 LLColor4 LLKeywords::getColorGroup(const std::string& key_in)
 {
-	std::string color_group = "Black";
+	std::string color_group = "ScriptText";
 	if (key_in == "constants-float")
 	{
 		color_group = "SyntaxLslConstantFloat";
@@ -239,7 +239,7 @@ LLColor4 LLKeywords::getColorGroup(const std::string& key_in)
 	}
 	else
 	{
-		LL_WARNS("SyntaxLSL") << "Color key '" << key_in << "' not recognized!" << LL_ENDL;
+		LL_WARNS("SyntaxLSL") << "Color key '" << key_in << "' not recognized." << LL_ENDL;
 	}
 
 	return LLUIColorTable::instance().getColor(color_group);
diff --git a/indra/newview/llfloaterscriptedprefs.cpp b/indra/newview/llfloaterscriptedprefs.cpp
index da075aa36c..2484a08626 100644
--- a/indra/newview/llfloaterscriptedprefs.cpp
+++ b/indra/newview/llfloaterscriptedprefs.cpp
@@ -54,7 +54,6 @@ BOOL LLFloaterScriptEdPrefs::postBuild()
 void LLFloaterScriptEdPrefs::applyUIColor(LLUICtrl* ctrl, const LLSD& param)
 {
 	LLUIColorTable::instance().setColor(param.asString(), LLColor4(ctrl->getValue()));
-	// *TODO: Signal all active script editors to change colors on the fly.
 	mEditor->initKeywords();
 	mEditor->loadKeywords();
 }
-- 
cgit v1.2.3


From 299be536119b0adb9887e087f7ec9be8b356f97f Mon Sep 17 00:00:00 2001
From: Cinder <cinder.roxley@phoenixviewer.com>
Date: Wed, 28 May 2014 12:55:00 -0600
Subject: Make default and state out of flow-control and into events

---
 .../newview/app_settings/keywords_lsl_default.xml  | 34 +++++++++++++++-------
 1 file changed, 24 insertions(+), 10 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/app_settings/keywords_lsl_default.xml b/indra/newview/app_settings/keywords_lsl_default.xml
index 02823136ee..ef699031c6 100755
--- a/indra/newview/app_settings/keywords_lsl_default.xml
+++ b/indra/newview/app_settings/keywords_lsl_default.xml
@@ -3,11 +3,6 @@
    <map>
       <key>controls</key>
       <map>
-         <key>default</key>
-         <map>
-            <key>tooltip</key>
-            <string>All scripts must have a default state, which is the first state entered when the script starts.\nIf another state is defined before the default state, the compiler will report a syntax error.</string>
-         </map>
          <key>do</key>
          <map>
             <key>tooltip</key>
@@ -38,11 +33,6 @@
             <key>tooltip</key>
             <string>Leave current event or function.\nreturn [&lt;variable&gt;];\nOptionally pass back a variable's value, from a function.</string>
          </map>
-         <key>state</key>
-         <map>
-            <key>tooltip</key>
-            <string>state &lt;target&gt;\nIf the target state is not the same as the current one, change to the target state.</string>
-         </map>
          <key>while</key>
          <map>
             <key>tooltip</key>
@@ -6005,6 +5995,30 @@
       </map>
       <key>events</key>
       <map>
+         <key>default</key>
+         <map>
+         <key>arguments</key>
+           <undef />
+         <key>tooltip</key>
+           <string>All scripts must have a default state, which is the first state entered when the script starts.\nIf another state is defined before the default state, the compiler will report a syntax error.</string>
+         </map>
+         <key>state</key>
+         <map>
+            <key>arguments</key>
+            <array>
+              <map>
+              <key>Name</key>
+                <map>
+                  <key>type</key>
+                  <string>string</string>
+                  <key>tooltip</key>
+                  <string/>
+                 </map>
+              </map>
+           </array>
+           <key>tooltip</key>
+           <string>state &lt;target&gt;\nChange to the target state.</string>
+         </map>
          <key>at_rot_target</key>
          <map>
             <key>arguments</key>
-- 
cgit v1.2.3


From 274327e1e2b2486eddb66d787e410b54d37e4437 Mon Sep 17 00:00:00 2001
From: Cinder <cinder.roxley@phoenixviewer.com>
Date: Wed, 28 May 2014 13:01:51 -0600
Subject: Half of STORM-2025, fix flow-control highlighting

---
 indra/llui/llkeywords.cpp | 4 ++++
 1 file changed, 4 insertions(+)

(limited to 'indra')

diff --git a/indra/llui/llkeywords.cpp b/indra/llui/llkeywords.cpp
index 29b9c5c2f1..8b5fb54877 100755
--- a/indra/llui/llkeywords.cpp
+++ b/indra/llui/llkeywords.cpp
@@ -197,6 +197,10 @@ LLColor4 LLKeywords::getColorGroup(const std::string& key_in)
 	{
 		color_group = "SyntaxLslConstantVector";
 	}
+	else if (key_in == "controls")
+	{
+		color_group = "SyntaxLslControlFlow";
+	}
 	else if (key_in == "misc-flow-label")
 	{
 		color_group = "SyntaxLslControlFlow";
-- 
cgit v1.2.3


From 7e8d4ca3b1d96b5573aab99015f431147e6c6965 Mon Sep 17 00:00:00 2001
From: Oz Linden <oz@lindenlab.com>
Date: Wed, 4 Jun 2014 10:29:40 -0400
Subject: make "default" a constant, and remove that and "state" from events

---
 .../newview/app_settings/keywords_lsl_default.xml  | 34 +++++++---------------
 1 file changed, 10 insertions(+), 24 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/app_settings/keywords_lsl_default.xml b/indra/newview/app_settings/keywords_lsl_default.xml
index ef699031c6..37dd2db93f 100755
--- a/indra/newview/app_settings/keywords_lsl_default.xml
+++ b/indra/newview/app_settings/keywords_lsl_default.xml
@@ -33,6 +33,11 @@
             <key>tooltip</key>
             <string>Leave current event or function.\nreturn [&lt;variable&gt;];\nOptionally pass back a variable's value, from a function.</string>
          </map>
+         <key>state</key>
+         <map>
+            <key>tooltip</key>
+            <string>state &lt;target&gt;\nIf the target state is not the same as the current one, change to the target state.</string>
+         </map>
          <key>while</key>
          <map>
             <key>tooltip</key>
@@ -5992,33 +5997,14 @@
             <key>tooltip</key>
             <string/>
          </map>
-      </map>
-      <key>events</key>
-      <map>
          <key>default</key>
          <map>
-         <key>arguments</key>
-           <undef />
-         <key>tooltip</key>
-           <string>All scripts must have a default state, which is the first state entered when the script starts.\nIf another state is defined before the default state, the compiler will report a syntax error.</string>
-         </map>
-         <key>state</key>
-         <map>
-            <key>arguments</key>
-            <array>
-              <map>
-              <key>Name</key>
-                <map>
-                  <key>type</key>
-                  <string>string</string>
-                  <key>tooltip</key>
-                  <string/>
-                 </map>
-              </map>
-           </array>
-           <key>tooltip</key>
-           <string>state &lt;target&gt;\nChange to the target state.</string>
+            <key>tooltip</key>
+            <string>All scripts must have a default state, which is the first state entered when the script starts.\nIf another state is defined before the default state, the compiler will report a syntax error.</string>
          </map>
+      </map>
+      <key>events</key>
+      <map>
          <key>at_rot_target</key>
          <map>
             <key>arguments</key>
-- 
cgit v1.2.3


From 4170ae1027b1c8e5f63b0e6c4c9f919d8d3b66c0 Mon Sep 17 00:00:00 2001
From: Cinder <cinder.roxley@phoenixviewer.com>
Date: Wed, 4 Jun 2014 12:52:27 -0600
Subject: STORM-2025: Part 2 - After consulting with Oz, remove subcategories
 of constants and fix highlighting

---
 indra/llui/llkeywords.cpp                          |  44 ++-------
 indra/newview/skins/default/colors.xml             |  17 +---
 .../default/xui/en/floater_script_ed_prefs.xml     | 100 ++-------------------
 3 files changed, 12 insertions(+), 149 deletions(-)

(limited to 'indra')

diff --git a/indra/llui/llkeywords.cpp b/indra/llui/llkeywords.cpp
index 8b5fb54877..9be15d8f1d 100755
--- a/indra/llui/llkeywords.cpp
+++ b/indra/llui/llkeywords.cpp
@@ -173,29 +173,9 @@ std::string LLKeywords::getAttribute(const std::string& key)
 LLColor4 LLKeywords::getColorGroup(const std::string& key_in)
 {
 	std::string color_group = "ScriptText";
-	if (key_in == "constants-float")
+	if (key_in == "constants")
 	{
-		color_group = "SyntaxLslConstantFloat";
-	}
-	else if (key_in == "constants-integer")
-	{
-		color_group = "SyntaxLslConstantInteger";
-	}
-	else if (key_in == "constants-key")
-	{
-		color_group = "SyntaxLslConstantKey";
-	}
-	else if (key_in == "constants-rotation")
-	{
-		color_group = "SyntaxLslConstantRotation";
-	}
-	else if (key_in == "constants-string")
-	{
-		color_group = "SyntaxLslConstantString";
-	}
-	else if (key_in == "constants-vector")
-	{
-		color_group = "SyntaxLslConstantVector";
+		color_group = "SyntaxLslConstant";
 	}
 	else if (key_in == "controls")
 	{
@@ -229,18 +209,6 @@ LLColor4 LLKeywords::getColorGroup(const std::string& key_in)
 	{
 		color_group = "SyntaxLslSection";
 	}
-	else if (key_in == "misc-double_quotation_marks")
-	{
-		color_group = "SyntaxLslStringLiteral";
-	}
-	else if (key_in == "misc-comments_1_sided")
-	{
-		color_group = "SyntaxLslComment";
-	}
-	else if (key_in == "misc-comments_2_sided")
-	{
-		color_group = "SyntaxLslComment";
-	}
 	else
 	{
 		LL_WARNS("SyntaxLSL") << "Color key '" << key_in << "' not recognized." << LL_ENDL;
@@ -265,9 +233,9 @@ void LLKeywords::processTokens()
 	// Add 'standard' stuff: Quotes, Comments, Strings, Labels, etc. before processing the LLSD
 	std::string delimiter;
 	addToken(LLKeywordToken::TT_LABEL, "@", getColorGroup("misc-flow-label"), "Label\nTarget for jump statement", delimiter );
-	addToken(LLKeywordToken::TT_ONE_SIDED_DELIMITER, "//", getColorGroup("misc-comments_1_sided"), "Comment (single-line)\nNon-functional commentary or disabled code", delimiter );
-	addToken(LLKeywordToken::TT_TWO_SIDED_DELIMITER, "/*", getColorGroup("misc-comments_2_sided"), "Comment (multi-line)\nNon-functional commentary or disabled code", "*/" );
-	addToken(LLKeywordToken::TT_DOUBLE_QUOTATION_MARKS, "\"", getColorGroup("misc-double_quotation_marks"), "String literal", "\"" );
+	addToken(LLKeywordToken::TT_ONE_SIDED_DELIMITER, "//", LLUIColorTable::instance().getColor("SyntaxLslComment"), "Comment (single-line)\nNon-functional commentary or disabled code", delimiter );
+	addToken(LLKeywordToken::TT_TWO_SIDED_DELIMITER, "/*", LLUIColorTable::instance().getColor("SyntaxLslComment"), "Comment (multi-line)\nNon-functional commentary or disabled code", "*/" );
+	addToken(LLKeywordToken::TT_DOUBLE_QUOTATION_MARKS, "\"", LLUIColorTable::instance().getColor("SyntaxLslStringLiteral"), "String literal", "\"" );
 
 	LLSD::map_iterator itr = mSyntax.beginMap();
 	for ( ; itr != mSyntax.endMap(); ++itr)
@@ -401,7 +369,7 @@ void LLKeywords::processTokensGroup(const LLSD& tokens, const std::string& group
 	else if (tokens.isArray())	// Currently nothing should need this, but it's here for completeness
 	{
 		LL_INFOS("SyntaxLSL") << "Curious, shouldn't be an array here; adding all using color " << color << LL_ENDL;
-		for (int count = 0; count < tokens.size(); ++count)
+		for (S32 count = 0; count < tokens.size(); ++count)
 		{
 			addToken(token_type, tokens[count], color, "");
 		}
diff --git a/indra/newview/skins/default/colors.xml b/indra/newview/skins/default/colors.xml
index bdbece33e0..3a1f3d4e0a 100755
--- a/indra/newview/skins/default/colors.xml
+++ b/indra/newview/skins/default/colors.xml
@@ -919,23 +919,8 @@
     name="SyntaxLslComment"
     value=".8 .3 .15 1.0" />
   <color
-    name="SyntaxLslConstantFloat"
+    name="SyntaxLslConstant"
     value=".3 .1 .5 1.0" />
-  <color
-    name="SyntaxLslConstantInteger"
-    value=".1 .1 .5 1.0" />
-  <color
-    name="SyntaxLslConstantKey"
-    value=".1 .3 .5 1.0" />
-  <color
-    name="SyntaxLslConstantRotation"
-    value=".2 .4 .2 1.0" />
-  <color
-    name="SyntaxLslConstantString"
-    value=".1 .3 .5 1.0" />
-  <color
-    name="SyntaxLslConstantVector"
-    value=".2 .4 .2 1.0" />
   <color
     name="SyntaxLslControlFlow"
     value="0 0 .8 1.0" />
diff --git a/indra/newview/skins/default/xui/en/floater_script_ed_prefs.xml b/indra/newview/skins/default/xui/en/floater_script_ed_prefs.xml
index a076839c09..8ae0df22b1 100644
--- a/indra/newview/skins/default/xui/en/floater_script_ed_prefs.xml
+++ b/indra/newview/skins/default/xui/en/floater_script_ed_prefs.xml
@@ -268,15 +268,15 @@
      label_height="0"
      layout="topleft"
      left="170"
-     name="i_constant"
+     name="constant"
      top_pad="10"
      width="44" >
         <color_swatch.init_callback
          function="ScriptPref.getUIColor"
-         parameter="SyntaxLslConstantInteger" />
+         parameter="SyntaxLslConstant" />
         <color_swatch.commit_callback
          function="ScriptPref.applyUIColor"
-         parameter="SyntaxLslConstantInteger" />
+         parameter="SyntaxLslConstant" />
     </color_swatch>
     <text
      type="string"
@@ -286,100 +286,10 @@
      layout="topleft"
      left_pad="5"
      mouse_opaque="false"
-     name="i_constant_label"
+     name="constant_label"
      top_delta="5"
      width="100">
-    Integer Const
-    </text>
-    <color_swatch
-     can_apply_immediately="true"
-     follows="left|top"
-     height="24"
-     label_height="0"
-     layout="topleft"
-     left="170"
-     name="s_constant"
-     top_pad="10"
-     width="44" >
-        <color_swatch.init_callback
-         function="ScriptPref.getUIColor"
-         parameter="SyntaxLslConstantString" />
-        <color_swatch.commit_callback
-         function="ScriptPref.applyUIColor"
-         parameter="SyntaxLslConstantString" />
-    </color_swatch>
-    <text
-     type="string"
-     length="1"
-     follows="left|top"
-     height="10"
-     layout="topleft"
-     left_pad="5"
-     mouse_opaque="false"
-     name="s_constant_label"
-     top_delta="5"
-     width="100">
-    String Const
-    </text>
-    <color_swatch
-     can_apply_immediately="true"
-     follows="left|top"
-     height="24"
-     label_height="0"
-     layout="topleft"
-     left="170"
-     name="f_constant"
-     top_pad="10"
-     width="44" >
-        <color_swatch.init_callback
-         function="ScriptPref.getUIColor"
-         parameter="SyntaxLslConstantFloat" />
-        <color_swatch.commit_callback
-         function="ScriptPref.applyUIColor"
-         parameter="SyntaxLslConstantFloat" />
-    </color_swatch>
-    <text
-     type="string"
-     length="1"
-     follows="left|top"
-     height="10"
-     layout="topleft"
-     left_pad="5"
-     mouse_opaque="false"
-     name="f_constant_label"
-     top_delta="5"
-     width="100">
-    Float Const
-    </text>
-    <color_swatch
-     can_apply_immediately="true"
-     follows="left|top"
-     height="24"
-     label_height="0"
-     layout="topleft"
-     left="170"
-     name="c_constant"
-     top_pad="10"
-     width="44" >
-        <color_swatch.init_callback
-         function="ScriptPref.getUIColor"
-         parameter="SyntaxCompoundConstant" />
-        <color_swatch.commit_callback
-         function="ScriptPref.applyUIColor"
-         parameter="SyntaxCompoundConstant" />
-    </color_swatch>
-    <text
-     type="string"
-     length="1"
-     follows="left|top"
-     height="10"
-     layout="topleft"
-     left_pad="5"
-     mouse_opaque="false"
-     name="c_constant_label"
-     top_delta="5"
-     width="100">
-    Compound
+    Constant
     </text>
     <color_swatch
      can_apply_immediately="true"
-- 
cgit v1.2.3


From e6b20328c2e25223359dede17357682b5b4e7ea1 Mon Sep 17 00:00:00 2001
From: Cinder <cinder.roxley@phoenixviewer.com>
Date: Wed, 4 Jun 2014 22:51:20 -0600
Subject: A little more cleanup in LLSyntaxIDLSL and LLKeywords

---
 indra/llui/llkeywords.cpp    | 65 ++++++++++++++++++++++++--------------------
 indra/llui/llkeywords.h      | 24 ++++++++++++----
 indra/newview/llsyntaxid.cpp | 15 +++-------
 indra/newview/llsyntaxid.h   |  5 ++--
 4 files changed, 59 insertions(+), 50 deletions(-)

(limited to 'indra')

diff --git a/indra/llui/llkeywords.cpp b/indra/llui/llkeywords.cpp
index 9be15d8f1d..9c5a339b6d 100755
--- a/indra/llui/llkeywords.cpp
+++ b/indra/llui/llkeywords.cpp
@@ -67,8 +67,8 @@ inline bool LLKeywordToken::isTail(const llwchar* s) const
 	return res;
 }
 
-LLKeywords::LLKeywords() :
-	mLoaded(false)
+LLKeywords::LLKeywords()
+:	mLoaded(false)
 {
 }
 
@@ -92,7 +92,7 @@ void LLKeywords::addToken(LLKeywordToken::ETokenType type,
 	std::string tip_text = tool_tip_in;
 	LLStringUtil::replaceString(tip_text, "\\n", "\n" );
 	LLStringUtil::replaceString(tip_text, "\t", " " );
-	if (tip_text == "")
+	if (tip_text.empty())
 	{
 		tip_text = "[no info]";
 	}
@@ -161,7 +161,7 @@ std::string LLKeywords::getArguments(LLSD& arguments)
 	{
 		LL_WARNS("SyntaxLSL") << "Not an array! Invalid arguments LLSD passed to function." << arguments << LL_ENDL;
 	}
-	return argString == "" ? "" : argString;
+	return argString;
 }
 
 std::string LLKeywords::getAttribute(const std::string& key)
@@ -299,14 +299,14 @@ void LLKeywords::processTokensGroup(const LLSD& tokens, const std::string& group
 	if (tokens.isMap())
 	{
 		LLSD::map_const_iterator outer_itr = tokens.beginMap();
-		for ( ; outer_itr != tokens.endMap(); ++outer_itr)
+		for ( ; outer_itr != tokens.endMap(); ++outer_itr )
 		{
 			if (outer_itr->second.isMap())
 			{
 				mAttributes.clear();
 				LLSD arguments = LLSD();
 				LLSD::map_const_iterator inner_itr = outer_itr->second.beginMap();
-				for ( ; inner_itr != outer_itr->second.endMap(); ++inner_itr)
+				for ( ; inner_itr != outer_itr->second.endMap(); ++inner_itr )
 				{
 					if (inner_itr->first == "arguments")
 					{ 
@@ -326,33 +326,34 @@ void LLKeywords::processTokensGroup(const LLSD& tokens, const std::string& group
 				}
 
 				std::string tooltip = "";
-				if (token_type == LLKeywordToken::TT_CONSTANT)
+				switch (token_type)
 				{
-					color_group = getColorGroup(group + "-" + getAttribute("type"));
-					tooltip = "Type: " + getAttribute("type") + ", Value: " + getAttribute("value");
-				}
-				else if (token_type == LLKeywordToken::TT_EVENT)
-				{
-					tooltip = outer_itr->first + "(" + getArguments(arguments) + ")";
-				}
-				else if (token_type == LLKeywordToken::TT_FUNCTION)
-				{
-					tooltip = getAttribute("return") + " " + outer_itr->first + "(" + getArguments(arguments) + ");";
-					tooltip += "\nEnergy: ";
-					tooltip += getAttribute("energy") == "" ? "0.0" : getAttribute("energy");
-					if (getAttribute("sleep") != "")
-					{
-						tooltip += ", Sleep: " + getAttribute("sleep");
-					}
+					case LLKeywordToken::TT_CONSTANT:
+						color_group = getColorGroup(group + "-" + getAttribute("type"));
+						tooltip = "Type: " + getAttribute("type") + ", Value: " + getAttribute("value");
+						break;
+					case LLKeywordToken::TT_EVENT:
+						tooltip = outer_itr->first + "(" + getArguments(arguments) + ")";
+						break;
+					case LLKeywordToken::TT_FUNCTION:
+						tooltip = getAttribute("return") + " " + outer_itr->first + "(" + getArguments(arguments) + ");";
+						tooltip.append("\nEnergy: ");
+						tooltip.append(getAttribute("energy").empty() ? "0.0" : getAttribute("energy"));
+						if (!getAttribute("sleep").empty())
+						{
+							tooltip += ", Sleep: " + getAttribute("sleep");
+						}
+					default:
+						break;
 				}
 
-				if (getAttribute("tooltip") != "")
+				if (!getAttribute("tooltip").empty())
 				{
-					if (tooltip != "")
+					if (!tooltip.empty())
 					{
-						tooltip += "\n";
+						tooltip.append("\n");
 					}
-					tooltip += getAttribute("tooltip");
+					tooltip.append(getAttribute("tooltip"));
 				}
 
 				color = getAttribute("deprecated") == "true" ? color_deprecated : color_group;
@@ -399,15 +400,19 @@ LLKeywords::WStringMapIndex::WStringMapIndex(const LLWString& str)
 	copyData(str.data(), str.size());
 }
 
-LLKeywords::WStringMapIndex::WStringMapIndex(const llwchar *start, size_t length):
-mData(start), mLength(length), mOwner(false)
+LLKeywords::WStringMapIndex::WStringMapIndex(const llwchar *start, size_t length)
+:	mData(start)
+,	mLength(length)
+,	mOwner(false)
 {
 }
 
 LLKeywords::WStringMapIndex::~WStringMapIndex()
 {
-	if(mOwner)
+	if (mOwner)
+	{
 		delete[] mData;
+	}
 }
 
 void LLKeywords::WStringMapIndex::copyData(const llwchar *start, size_t length)
diff --git a/indra/llui/llkeywords.h b/indra/llui/llkeywords.h
index 4e20b4459e..18e2ed06c5 100755
--- a/indra/llui/llkeywords.h
+++ b/indra/llui/llkeywords.h
@@ -113,7 +113,10 @@ public:
 	LLColor4	getColorGroup(const std::string& key_in);
 	bool		isLoaded() const	{ return mLoaded; }
 
-	void		findSegments(std::vector<LLTextSegmentPtr> *seg_list, const LLWString& text, const LLColor4 &defaultColor, class LLTextEditor& editor );
+	void		findSegments(std::vector<LLTextSegmentPtr> *seg_list,
+							 const LLWString& text,
+							 const LLColor4 &defaultColor,
+							 class LLTextEditor& editor);
 	void		initialize(LLSD SyntaxXML);
 	void		processTokens();
 
@@ -167,8 +170,19 @@ public:
 
 protected:
 	void		processTokensGroup(const LLSD& Tokens, const std::string& Group);
-	void		insertSegment(std::vector<LLTextSegmentPtr>& seg_list, LLTextSegmentPtr new_segment, S32 text_len, const LLColor4 &defaultColor, class LLTextEditor& editor);
-	void		insertSegments(const LLWString& wtext, std::vector<LLTextSegmentPtr>& seg_list, LLKeywordToken* token, S32 text_len, S32 seg_start, S32 seg_end, const LLColor4 &defaultColor, LLTextEditor& editor);
+	void		insertSegment(std::vector<LLTextSegmentPtr>& seg_list,
+							  LLTextSegmentPtr new_segment,
+							  S32 text_len,
+							  const LLColor4 &defaultColor,
+							  class LLTextEditor& editor);
+	void		insertSegments(const LLWString& wtext,
+							   std::vector<LLTextSegmentPtr>& seg_list,
+							   LLKeywordToken* token,
+							   S32 text_len,
+							   S32 seg_start,
+							   S32 seg_end,
+							   const LLColor4 &defaultColor,
+							   LLTextEditor& editor);
 
 	bool		mLoaded;
 	LLSD		mSyntax;
@@ -182,9 +196,7 @@ protected:
 	element_attributes_t mAttributes;
 	std::string	getAttribute(const std::string& key);
 
-	std::string	getArguments(LLSD& args);
-
-private:
+	std::string	getArguments(LLSD& arguments);
 };
 
 #endif  // LL_LLKEYWORDS_H
diff --git a/indra/newview/llsyntaxid.cpp b/indra/newview/llsyntaxid.cpp
index 7551c1a442..0ef5993ac1 100644
--- a/indra/newview/llsyntaxid.cpp
+++ b/indra/newview/llsyntaxid.cpp
@@ -37,9 +37,9 @@
 //-----------------------------------------------------------------------------
 // fetchKeywordsFileResponder
 //-----------------------------------------------------------------------------
-fetchKeywordsFileResponder::fetchKeywordsFileResponder(std::string filespec)
+fetchKeywordsFileResponder::fetchKeywordsFileResponder(const std::string& filespec)
+:	mFileSpec(filespec)
 {
-	mFileSpec = filespec;
 	LL_DEBUGS("SyntaxLSL") << "Instantiating with file saving to: '" << filespec << "'" << LL_ENDL;
 }
 
@@ -128,18 +128,11 @@ LLSyntaxIdLSL::LLSyntaxIdLSL() :
 {
 }
 
-std::string LLSyntaxIdLSL::buildFileNameNew()
-{
-	mFileNameNew = mSyntaxIdNew.isNull() ? mFileNameDefault : "keywords_lsl_" + mSyntaxIdNew.asString() + ".llsd.xml";
-	return mFileNameNew;
-}
-
-std::string LLSyntaxIdLSL::buildFullFileSpec()
+void LLSyntaxIdLSL::buildFullFileSpec()
 {
 	ELLPath path = mSyntaxIdNew.isNull() ? LL_PATH_APP_SETTINGS : LL_PATH_CACHE;
-	buildFileNameNew();
+	mFileNameNew = mSyntaxIdNew.isNull() ? mFileNameDefault : "keywords_lsl_" + mSyntaxIdNew.asString() + ".llsd.xml";
 	mFullFileSpec = gDirUtilp->getExpandedFilename(path, mFileNameNew);
-	return mFullFileSpec;
 }
 
 //-----------------------------------------------------------------------------
diff --git a/indra/newview/llsyntaxid.h b/indra/newview/llsyntaxid.h
index f14693d619..2288fb4ab8 100644
--- a/indra/newview/llsyntaxid.h
+++ b/indra/newview/llsyntaxid.h
@@ -62,8 +62,7 @@ public:
 	boost::signals2::connection		addFileFetchedCallback(const file_fetched_signal_t::slot_type& cb);
 
 protected:
-	std::string		buildFileNameNew();
-	std::string		buildFullFileSpec();
+	void			buildFullFileSpec();
 	void			fetchKeywordsFile();
 	void			loadDefaultKeywordsIntoLLSD();
 	void			loadKeywordsIntoLLSD();
@@ -105,7 +104,7 @@ public:
 	 * @brief fetchKeywordsFileResponder
 	 * @param filespec	File path and name of where to save the returned data
 	 */
-	fetchKeywordsFileResponder(std::string filespec);
+	fetchKeywordsFileResponder(const std::string& filespec);
 
 	void errorWithContent(U32 status,
 						const std::string& reason,
-- 
cgit v1.2.3


From 904fd4245b517a44140a333a828d383ce4ed3005 Mon Sep 17 00:00:00 2001
From: Cinder <cinder.roxley@phoenixviewer.com>
Date: Sun, 8 Jun 2014 17:10:57 -0600
Subject: "sections" is apparently unused as well.

---
 indra/llui/llkeywords.cpp                          |  4 ---
 indra/newview/skins/default/colors.xml             |  3 ---
 .../default/xui/en/floater_script_ed_prefs.xml     | 30 ----------------------
 3 files changed, 37 deletions(-)

(limited to 'indra')

diff --git a/indra/llui/llkeywords.cpp b/indra/llui/llkeywords.cpp
index 9c5a339b6d..fe050d6107 100755
--- a/indra/llui/llkeywords.cpp
+++ b/indra/llui/llkeywords.cpp
@@ -205,10 +205,6 @@ LLColor4 LLKeywords::getColorGroup(const std::string& key_in)
 	{
 		color_group = "SyntaxLslDataType";
 	}
-	else if (key_in == "sections")
-	{
-		color_group = "SyntaxLslSection";
-	}
 	else
 	{
 		LL_WARNS("SyntaxLSL") << "Color key '" << key_in << "' not recognized." << LL_ENDL;
diff --git a/indra/newview/skins/default/colors.xml b/indra/newview/skins/default/colors.xml
index 3a1f3d4e0a..464e633297 100755
--- a/indra/newview/skins/default/colors.xml
+++ b/indra/newview/skins/default/colors.xml
@@ -942,9 +942,6 @@
   <color
    name="SyntaxLslGodMode"
    value="0.7 .2 .35 1.0" />
-  <color
-    name="SyntaxLslSection"
-    value=".5 .1 .3 1.0" />
   <color
     name="SyntaxLslStringLiteral"
     value="0 .2 0 1.0" />
diff --git a/indra/newview/skins/default/xui/en/floater_script_ed_prefs.xml b/indra/newview/skins/default/xui/en/floater_script_ed_prefs.xml
index 8ae0df22b1..5b2eb0820c 100644
--- a/indra/newview/skins/default/xui/en/floater_script_ed_prefs.xml
+++ b/indra/newview/skins/default/xui/en/floater_script_ed_prefs.xml
@@ -110,36 +110,6 @@
      width="100">
     Background
     </text>
-    <color_swatch
-     can_apply_immediately="true"
-     follows="left|top"
-     height="24"
-     label_height="0"
-     layout="topleft"
-     left="15"
-     name="section"
-     top_pad="10"
-     width="44" >
-        <color_swatch.init_callback
-         function="ScriptPref.getUIColor"
-         parameter="SyntaxLslSection" />
-        <color_swatch.commit_callback
-         function="ScriptPref.applyUIColor"
-         parameter="SyntaxLslSection" />
-    </color_swatch>
-    <text
-     type="string"
-     length="1"
-     follows="left|top"
-     height="10"
-     layout="topleft"
-     left_pad="5"
-     mouse_opaque="false"
-     name="section_label"
-     top_delta="5"
-     width="100">
-    Sections
-    </text>
     <color_swatch
      can_apply_immediately="true"
      follows="left|top"
-- 
cgit v1.2.3


From a9a117388681529cd3e532de698acb05f73abda6 Mon Sep 17 00:00:00 2001
From: Cinder <cinder.roxley@phoenixviewer.com>
Date: Sun, 8 Jun 2014 17:49:24 -0600
Subject: Update sample script in script colors floater

---
 indra/newview/skins/default/xui/en/floater_script_ed_prefs.xml | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/skins/default/xui/en/floater_script_ed_prefs.xml b/indra/newview/skins/default/xui/en/floater_script_ed_prefs.xml
index 5b2eb0820c..b76c34f4a0 100644
--- a/indra/newview/skins/default/xui/en/floater_script_ed_prefs.xml
+++ b/indra/newview/skins/default/xui/en/floater_script_ed_prefs.xml
@@ -346,12 +346,15 @@
      cursor_color="ScriptCursorColor"
      enable_tooltip_paste="true"
      word_wrap="true">
+/* A sample script */
 default
 {
     state_entry()
     {
-        llSay(0, "Hello!");
+        // Comment
+        string greeting = "Hello";
+        llSay(PUBLIC_CHANNEL, greeting);
     }
 }
     </script_editor>
-</floater>
\ No newline at end of file
+</floater>
-- 
cgit v1.2.3


From 6a6508f0fdcf5964018289315d7b6e6a62696a7e Mon Sep 17 00:00:00 2001
From: Cinder <cinder.roxley@phoenixviewer.com>
Date: Sun, 8 Jun 2014 17:51:31 -0600
Subject: Use a common SyntaxLSL broad tag to make debugging easier

---
 indra/llui/llkeywords.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

(limited to 'indra')

diff --git a/indra/llui/llkeywords.cpp b/indra/llui/llkeywords.cpp
index fe050d6107..95bdfa6fb3 100755
--- a/indra/llui/llkeywords.cpp
+++ b/indra/llui/llkeywords.cpp
@@ -290,7 +290,7 @@ void LLKeywords::processTokensGroup(const LLSD& tokens, const std::string& group
 	}
 
 	color_group = getColorGroup(group);
-	LL_INFOS("Tokens") << "Group: '" << group << "', using color: '" << color_group << "'" << LL_ENDL;
+	LL_INFOS("SyntaxLSL") << "Group: '" << group << "', using color: '" << color_group << "'" << LL_ENDL;
 
 	if (tokens.isMap())
 	{
@@ -373,7 +373,7 @@ void LLKeywords::processTokensGroup(const LLSD& tokens, const std::string& group
 	}
 	else
 	{
-		LL_WARNS("Tokens") << "Invalid map/array passed: '" << tokens << "'" << LL_ENDL;
+		LL_WARNS("SyntaxLSL") << "Invalid map/array passed: '" << tokens << "'" << LL_ENDL;
 	}
 }
 
-- 
cgit v1.2.3


From b06e63acedbbbc0dafe24a04e866fcb4363601e8 Mon Sep 17 00:00:00 2001
From: Cinder <cinder.roxley@phoenixviewer.com>
Date: Sun, 8 Jun 2014 18:28:10 -0600
Subject: Fix lsl constant highlighting and sort the if-else chain to parse a
 little quicker

---
 indra/llui/llkeywords.cpp | 30 ++++++++++++++++++------------
 1 file changed, 18 insertions(+), 12 deletions(-)

(limited to 'indra')

diff --git a/indra/llui/llkeywords.cpp b/indra/llui/llkeywords.cpp
index 95bdfa6fb3..75773d7dfd 100755
--- a/indra/llui/llkeywords.cpp
+++ b/indra/llui/llkeywords.cpp
@@ -173,37 +173,43 @@ std::string LLKeywords::getAttribute(const std::string& key)
 LLColor4 LLKeywords::getColorGroup(const std::string& key_in)
 {
 	std::string color_group = "ScriptText";
-	if (key_in == "constants")
+	if (key_in == "functions")
 	{
-		color_group = "SyntaxLslConstant";
+		color_group = "SyntaxLslFunction";
 	}
 	else if (key_in == "controls")
 	{
 		color_group = "SyntaxLslControlFlow";
 	}
-	else if (key_in == "misc-flow-label")
+	else if (key_in == "events")
 	{
-		color_group = "SyntaxLslControlFlow";
+		color_group = "SyntaxLslEvent";
 	}
-	else if (key_in =="deprecated")
+	else if (key_in == "types")
 	{
-		color_group = "SyntaxLslDeprecated";
+		color_group = "SyntaxLslDataType";
 	}
-	else if (key_in == "events")
+	else if (key_in == "misc-flow-label")
 	{
-		color_group = "SyntaxLslEvent";
+		color_group = "SyntaxLslControlFlow";
 	}
-	else if (key_in == "functions")
+	else if (key_in =="deprecated")
 	{
-		color_group = "SyntaxLslFunction";
+		color_group = "SyntaxLslDeprecated";
 	}
 	else if (key_in =="god-mode")
 	{
 		color_group = "SyntaxLslGodMode";
 	}
-	else if (key_in == "types")
+	else if (key_in == "constants"
+			 || key_in == "constants-integer"
+			 || key_in == "constants-float"
+			 || key_in == "constants-string"
+			 || key_in == "constants-key"
+			 || key_in == "constants-rotation"
+			 || key_in == "constants-vector")
 	{
-		color_group = "SyntaxLslDataType";
+		color_group = "SyntaxLslConstant";
 	}
 	else
 	{
-- 
cgit v1.2.3


From 84eb6671630cbd11a3a5d2cfd9a0d89c19f6e58e Mon Sep 17 00:00:00 2001
From: Cinder <cinder.roxley@phoenixviewer.com>
Date: Sun, 8 Jun 2014 18:41:45 -0600
Subject: Update syntax color floater with recent changes.

---
 .../default/xui/en/floater_script_ed_prefs.xml     | 71 +++++++++++-----------
 1 file changed, 35 insertions(+), 36 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/skins/default/xui/en/floater_script_ed_prefs.xml b/indra/newview/skins/default/xui/en/floater_script_ed_prefs.xml
index b76c34f4a0..9a65a7e158 100644
--- a/indra/newview/skins/default/xui/en/floater_script_ed_prefs.xml
+++ b/indra/newview/skins/default/xui/en/floater_script_ed_prefs.xml
@@ -2,13 +2,13 @@
 <floater
  legacy_header_height="18"
  can_resize="true"
- height="400"
+ height="354"
  layout="topleft"
  name="floater_script_colors"
  help_topic="script_colors"
  save_rect="true"
  title="Customize script colors"
- width="300">
+ width="320">
     <text
      follows="left|top"
      height="15"
@@ -176,16 +176,16 @@
      height="24"
      label_height="0"
      layout="topleft"
-     left="15"
-     name="comment"
-     top_pad="10"
+     left="190"
+     name="string_literal"
+     top="45"
      width="44" >
         <color_swatch.init_callback
          function="ScriptPref.getUIColor"
-         parameter="SyntaxLslComment" />
+         parameter="SyntaxLslStringLiteral" />
         <color_swatch.commit_callback
          function="ScriptPref.applyUIColor"
-         parameter="SyntaxLslComment" />
+         parameter="SyntaxLslStringLiteral" />
     </color_swatch>
     <text
      type="string"
@@ -195,10 +195,10 @@
      layout="topleft"
      left_pad="5"
      mouse_opaque="false"
-     name="comment_label"
+     name="string_literal_label"
      top_delta="5"
      width="100">
-    Comment
+    String Literals
     </text>
     <color_swatch
      can_apply_immediately="true"
@@ -206,16 +206,16 @@
      height="24"
      label_height="0"
      layout="topleft"
-     left="170"
-     name="string_literal"
-     top="45"
+     left="190"
+     name="constant"
+     top_pad="10"
      width="44" >
         <color_swatch.init_callback
          function="ScriptPref.getUIColor"
-         parameter="SyntaxLslStringLiteral" />
+         parameter="SyntaxLslConstant" />
         <color_swatch.commit_callback
          function="ScriptPref.applyUIColor"
-         parameter="SyntaxLslStringLiteral" />
+         parameter="SyntaxLslConstant" />
     </color_swatch>
     <text
      type="string"
@@ -225,28 +225,27 @@
      layout="topleft"
      left_pad="5"
      mouse_opaque="false"
-     name="string_literal_label"
+     name="constant_label"
      top_delta="5"
      width="100">
-    String Literals
+    Constant
     </text>
-
     <color_swatch
      can_apply_immediately="true"
      follows="left|top"
      height="24"
      label_height="0"
      layout="topleft"
-     left="170"
-     name="constant"
+     left="190"
+     name="flow_control"
      top_pad="10"
      width="44" >
         <color_swatch.init_callback
          function="ScriptPref.getUIColor"
-         parameter="SyntaxLslConstant" />
+         parameter="SyntaxLslControlFlow" />
         <color_swatch.commit_callback
          function="ScriptPref.applyUIColor"
-         parameter="SyntaxLslConstant" />
+         parameter="SyntaxLslControlFlow" />
     </color_swatch>
     <text
      type="string"
@@ -256,10 +255,10 @@
      layout="topleft"
      left_pad="5"
      mouse_opaque="false"
-     name="constant_label"
+     name="flow_control_label"
      top_delta="5"
      width="100">
-    Constant
+    Flow Control
     </text>
     <color_swatch
      can_apply_immediately="true"
@@ -267,16 +266,16 @@
      height="24"
      label_height="0"
      layout="topleft"
-     left="170"
-     name="flow_control"
+     left="190"
+     name="function"
      top_pad="10"
      width="44" >
         <color_swatch.init_callback
          function="ScriptPref.getUIColor"
-         parameter="SyntaxLslControlFlow" />
+         parameter="SyntaxLslFunction" />
         <color_swatch.commit_callback
          function="ScriptPref.applyUIColor"
-         parameter="SyntaxLslControlFlow" />
+         parameter="SyntaxLslFunction" />
     </color_swatch>
     <text
      type="string"
@@ -286,10 +285,10 @@
      layout="topleft"
      left_pad="5"
      mouse_opaque="false"
-     name="flow_control_label"
+     name="function_label"
      top_delta="5"
      width="100">
-    Flow Control
+    Function
     </text>
     <color_swatch
      can_apply_immediately="true"
@@ -297,16 +296,16 @@
      height="24"
      label_height="0"
      layout="topleft"
-     left="170"
-     name="function"
+     left="190"
+     name="comment"
      top_pad="10"
      width="44" >
         <color_swatch.init_callback
          function="ScriptPref.getUIColor"
-         parameter="SyntaxLslFunction" />
+         parameter="SyntaxLslComment" />
         <color_swatch.commit_callback
          function="ScriptPref.applyUIColor"
-         parameter="SyntaxLslFunction" />
+         parameter="SyntaxLslComment" />
     </color_swatch>
     <text
      type="string"
@@ -316,16 +315,16 @@
      layout="topleft"
      left_pad="5"
      mouse_opaque="false"
-     name="function_label"
+     name="comment_label"
      top_delta="5"
      width="100">
-    Function
+    Comment
     </text>
 
     <script_editor
      left="8"
      right="-8"
-     top="250"
+     top="176"
      bottom="-8"
      type="string"
      length="1"
-- 
cgit v1.2.3


From 052869130c3d03995da862518e62af674fcebc98 Mon Sep 17 00:00:00 2001
From: Cinder <cinder.roxley@phoenixviewer.com>
Date: Sun, 8 Jun 2014 18:46:22 -0600
Subject: Don't allow script colors floater resize

---
 indra/newview/skins/default/xui/en/floater_script_ed_prefs.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'indra')

diff --git a/indra/newview/skins/default/xui/en/floater_script_ed_prefs.xml b/indra/newview/skins/default/xui/en/floater_script_ed_prefs.xml
index 9a65a7e158..d8e6935d9f 100644
--- a/indra/newview/skins/default/xui/en/floater_script_ed_prefs.xml
+++ b/indra/newview/skins/default/xui/en/floater_script_ed_prefs.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <floater
  legacy_header_height="18"
- can_resize="true"
+ can_resize="false"
  height="354"
  layout="topleft"
  name="floater_script_colors"
-- 
cgit v1.2.3


From 58bf0dd580456f2df23c463f24791f6d580604b1 Mon Sep 17 00:00:00 2001
From: Cinder <cinder.roxley@phoenixviewer.com>
Date: Sun, 8 Jun 2014 18:47:17 -0600
Subject: Capitalize script colors floater for consistency.

---
 indra/newview/skins/default/xui/en/floater_script_ed_prefs.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'indra')

diff --git a/indra/newview/skins/default/xui/en/floater_script_ed_prefs.xml b/indra/newview/skins/default/xui/en/floater_script_ed_prefs.xml
index d8e6935d9f..8e4bcb3eb0 100644
--- a/indra/newview/skins/default/xui/en/floater_script_ed_prefs.xml
+++ b/indra/newview/skins/default/xui/en/floater_script_ed_prefs.xml
@@ -7,7 +7,7 @@
  name="floater_script_colors"
  help_topic="script_colors"
  save_rect="true"
- title="Customize script colors"
+ title="SCRIPT COLORS"
  width="320">
     <text
      follows="left|top"
-- 
cgit v1.2.3


From 41f6c5ce4899b3ae57aefa564ee22ff84fa698ce Mon Sep 17 00:00:00 2001
From: Cinder <cinder.roxley@phoenixviewer.com>
Date: Mon, 9 Jun 2014 15:14:09 -0600
Subject: Greatly simplify LLSyntaxIdLSL: * Move file fetched callback to the
 singleton and handle all syntax id changes within the singleton * Remove a
 fair number of bool checks and method relying more on callbacks to drive
 syntax changes. * Don't pretty print the cache file to conserve space and to
 speed up xml to llsd parsing * Clean up includes

---
 indra/newview/llpreviewscript.cpp |  95 ++++--------
 indra/newview/llpreviewscript.h   |   3 +-
 indra/newview/llsyntaxid.cpp      | 296 ++++++++++++++++----------------------
 indra/newview/llsyntaxid.h        | 111 ++++----------
 4 files changed, 182 insertions(+), 323 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp
index 76cb1c1ebc..9ff0ece7d9 100755
--- a/indra/newview/llpreviewscript.cpp
+++ b/indra/newview/llpreviewscript.cpp
@@ -399,13 +399,9 @@ LLScriptEdCore::~LLScriptEdCore()
 	}
 
 	delete mLiveFile;
-	if (mRegionChangedCallback.connected())
+	if (mSyntaxIDConnection.connected())
 	{
-		mRegionChangedCallback.disconnect();
-	}
-	if (mFileFetchedCallback.connected())
-	{
-		mFileFetchedCallback.disconnect();
+		mSyntaxIDConnection.disconnect();
 	}
 }
 
@@ -425,79 +421,48 @@ BOOL LLScriptEdCore::postBuild()
 
 	initMenu();
 
-	mFileFetchedCallback = LLSyntaxIdLSL::getInstance()->addFileFetchedCallback(boost::bind(&LLScriptEdCore::processKeywords, this));
+	mSyntaxIDConnection = LLSyntaxIdLSL::getInstance()->addSyntaxIDCallback(boost::bind(&LLScriptEdCore::processKeywords, this));
 
 	// Intialise keyword highlighting for the current simulator's version of LSL
 	LLSyntaxIdLSL::getInstance()->initialize();
-
-	if (LLSyntaxIdLSL::getInstance()->isDifferentVersion())
-	{
-		processLoaded();
-	}
-	else
-	{
-		processKeywords();
-	}
-	
-	if (mLive)
-	{
-		mRegionChangedCallback = gAgent.addRegionChangedCallback(boost::bind(&LLScriptEdCore::processLoaded, this));
-	}
+	processKeywords();
 
 	return TRUE;
 }
 
-void LLScriptEdCore::processLoaded()
-{
-	LLSyntaxIdLSL::getInstance()->initialize();
-	if (LLSyntaxIdLSL::getInstance()->isLoaded())
-	{
-		processKeywords();
-	}
-	else
-	{
-		LL_DEBUGS("SyntaxLSL") << "Hashes are different, waiting for the syntax file to be retrieved." << LL_ENDL;
-	}
-}
-
 void LLScriptEdCore::processKeywords()
 {
-	if (LLSyntaxIdLSL::getInstance()->isLoaded())
-	{
-		LL_DEBUGS("SyntaxLSL") << "Hashes are different, updating highlighter." << LL_ENDL;
-
-		mEditor->clearSegments();
-
-		mEditor->initKeywords();
-		mEditor->loadKeywords();
-
-		string_vec_t primary_keywords;
-		string_vec_t secondary_keywords;
-		LLKeywordToken *token;
-		LLKeywords::keyword_iterator_t token_it;
-		for (token_it = mEditor->keywordsBegin(); token_it != mEditor->keywordsEnd(); ++token_it)
-		{
-			token = token_it->second;
-			if (token->getType() == LLKeywordToken::TT_FUNCTION)
-			{
-				primary_keywords.push_back( wstring_to_utf8str(token->getToken()) );
-			}
-			else
-			{
-				secondary_keywords.push_back( wstring_to_utf8str(token->getToken()) );
-			}
-		}
-		for (string_vec_t::const_iterator iter = primary_keywords.begin();
-			 iter!= primary_keywords.end(); ++iter)
+	LL_DEBUGS("SyntaxLSL") << "Processing keywords" << LL_ENDL;
+	mEditor->clearSegments();
+	mEditor->initKeywords();
+	mEditor->loadKeywords();
+	
+	string_vec_t primary_keywords;
+	string_vec_t secondary_keywords;
+	LLKeywordToken *token;
+	LLKeywords::keyword_iterator_t token_it;
+	for (token_it = mEditor->keywordsBegin(); token_it != mEditor->keywordsEnd(); ++token_it)
+	{
+		token = token_it->second;
+		if (token->getType() == LLKeywordToken::TT_FUNCTION)
 		{
-			mFunctions->add(*iter);
+			primary_keywords.push_back( wstring_to_utf8str(token->getToken()) );
 		}
-		for (string_vec_t::const_iterator iter = secondary_keywords.begin();
-			 iter!= secondary_keywords.end(); ++iter)
+		else
 		{
-			mFunctions->add(*iter);
+			secondary_keywords.push_back( wstring_to_utf8str(token->getToken()) );
 		}
 	}
+	for (string_vec_t::const_iterator iter = primary_keywords.begin();
+		 iter!= primary_keywords.end(); ++iter)
+	{
+		mFunctions->add(*iter);
+	}
+	for (string_vec_t::const_iterator iter = secondary_keywords.begin();
+		 iter!= secondary_keywords.end(); ++iter)
+	{
+		mFunctions->add(*iter);
+	}
 }
 
 void LLScriptEdCore::initMenu()
diff --git a/indra/newview/llpreviewscript.h b/indra/newview/llpreviewscript.h
index 5aab3ed938..9ea191e928 100755
--- a/indra/newview/llpreviewscript.h
+++ b/indra/newview/llpreviewscript.h
@@ -159,8 +159,7 @@ private:
 	LLScriptEdContainer* mContainer; // parent view
 
 public:
-	boost::signals2::connection mFileFetchedCallback;
-	boost::signals2::connection mRegionChangedCallback;
+	boost::signals2::connection mSyntaxIDConnection;
 
 };
 
diff --git a/indra/newview/llsyntaxid.cpp b/indra/newview/llsyntaxid.cpp
index 0ef5993ac1..5b5bab85d0 100644
--- a/indra/newview/llsyntaxid.cpp
+++ b/indra/newview/llsyntaxid.cpp
@@ -1,8 +1,8 @@
 /**
  * @file LLSyntaxId
- * @author Ima Mechanique
  * @brief Handles downloading, saving, and checking of LSL keyword/syntax files
  *		for each region.
+ * @author Ima Mechanique, Cinder Roxley
  *
  * $LicenseInfo:firstyear=2013&license=viewerlgpl$
  * Second Life Viewer Source Code
@@ -28,189 +28,149 @@
 
 #include "llviewerprecompiledheaders.h"
 
+#include "llsyntaxid.h"
 #include "llagent.h"
 #include "llappviewer.h"
 #include "llhttpclient.h"
 #include "llsdserialize.h"
-#include "llsyntaxid.h"
+#include "llviewerregion.h"
 
 //-----------------------------------------------------------------------------
 // fetchKeywordsFileResponder
 //-----------------------------------------------------------------------------
-fetchKeywordsFileResponder::fetchKeywordsFileResponder(const std::string& filespec)
-:	mFileSpec(filespec)
+class fetchKeywordsFileResponder : public LLHTTPClient::Responder
 {
-	LL_DEBUGS("SyntaxLSL") << "Instantiating with file saving to: '" << filespec << "'" << LL_ENDL;
-}
+public:
+	fetchKeywordsFileResponder(const std::string& filespec)
+	: mFileSpec(filespec)
+	{
+		LL_DEBUGS("SyntaxLSL") << "Instantiating with file saving to: '" << filespec << "'" << LL_ENDL;
+	}
 
-void fetchKeywordsFileResponder::errorWithContent(U32 status,
-												  const std::string& reason,
-												  const LLSD& content)
-{
-	LLSyntaxIdLSL::getInstance()->mLoadFailed = true;
-	LL_WARNS("SyntaxLSL") << "fetchKeywordsFileResponder error [status:" << status << "]: " << content << LL_ENDL;
-}
+	virtual void errorWithContent(U32 status,
+								  const std::string& reason,
+								  const LLSD& content)
+	{
+	LL_WARNS("SyntaxLSL") << "failed to fetch syntax file [status:" << status << "]: " << content << LL_ENDL;
+	}
 
-void fetchKeywordsFileResponder::result(const LLSD& content_ref)
-{
+	virtual void result(const LLSD& content_ref)
+	{
 	// Continue only if a valid LLSD object was returned.
 	if (content_ref.isMap())
 	{
-		LL_DEBUGS("SyntaxLSL") << "content_ref isMap so assuming valid XML." << LL_ENDL;
-
 		if (LLSyntaxIdLSL::getInstance()->isSupportedVersion(content_ref))
 		{
-			LL_DEBUGS("SyntaxLSL") << "Supported verson of syntax file." << LL_ENDL;
-
 			LLSyntaxIdLSL::getInstance()->setKeywordsXml(content_ref);
-			LLSyntaxIdLSL::getInstance()->mInitialized = true;
-			LLSyntaxIdLSL::getInstance()->mLoaded = true;
-			LLSyntaxIdLSL::getInstance()->mLoadFailed = false;
 
 			cacheFile(content_ref);
+			LLSyntaxIdLSL::getInstance()->handleFileFetched(mFileSpec);
 		}
 		else
 		{
-			LLSyntaxIdLSL::getInstance()->mLoaded = false;
-			LLSyntaxIdLSL::getInstance()->mLoadFailed = true;
 			LL_WARNS("SyntaxLSL") << "Unknown or unsupported version of syntax file." << LL_ENDL;
 		}
 	}
 	else
 	{
-		LLSyntaxIdLSL::getInstance()->mLoaded = false;
-		LLSyntaxIdLSL::getInstance()->mLoadFailed = true;
 		LL_WARNS("SyntaxLSL") << "Syntax file '" << mFileSpec << "' contains invalid LLSD." << LL_ENDL;
 	}
-
-	LLSyntaxIdLSL::getInstance()->mFileFetchedSignal();
 }
 
-void fetchKeywordsFileResponder::cacheFile(const LLSD& content_ref)
-{
-	std::stringstream str;
-	LLSDSerialize::toPrettyXML(content_ref, str);
-	const std::string xml = str.str();
-
-	// save the str to disc, usually to the cache.
-	llofstream file(mFileSpec, std::ios_base::out);
-	file.write(xml.c_str(), str.str().size());
-	file.close();
+	void cacheFile(const LLSD& content_ref)
+	{
+		std::stringstream str;
+		LLSDSerialize::toXML(content_ref, str);
+		const std::string xml = str.str();
 
-	LL_DEBUGS("SyntaxLSL") << "Syntax file received, saving as: '" << mFileSpec << "'" << LL_ENDL;
-}
+		// save the str to disk, usually to the cache.
+		llofstream file(mFileSpec, std::ios_base::out);
+		file.write(xml.c_str(), str.str().size());
+		file.close();
 
+		LL_DEBUGS("SyntaxLSL") << "Syntax file received, saving as: '" << mFileSpec << "'" << LL_ENDL;
+	}
+	
+private:
+	std::string mFileSpec;
+};
+	
 //-----------------------------------------------------------------------------
 // LLSyntaxIdLSL
 //-----------------------------------------------------------------------------
-const std::string LLSyntaxIdLSL::CAPABILITY_NAME = "LSLSyntax";
-const std::string LLSyntaxIdLSL::FILENAME_DEFAULT = "keywords_lsl_default.xml";
-const std::string LLSyntaxIdLSL::SIMULATOR_FEATURE = "LSLSyntaxId";
+const std::string SYNTAX_ID_CAPABILITY_NAME = "LSLSyntax";
+const std::string SYNTAX_ID_SIMULATOR_FEATURE = "LSLSyntaxId";
+const std::string FILENAME_DEFAULT = "keywords_lsl_default.xml";
 
 /**
  * @brief LLSyntaxIdLSL constructor
  */
-LLSyntaxIdLSL::LLSyntaxIdLSL() :
-	mInitialized(false),
-	mKeywordsXml(LLSD()),
-	mLoaded(false),
-	mLoadFailed(false),
-	mVersionChanged(false),
-	mCapabilityName(CAPABILITY_NAME),
-	mCapabilityURL(""),
-	mFileNameCurrent(FILENAME_DEFAULT),
-	mFileNameDefault(FILENAME_DEFAULT),
-	mFileNameNew(""),
-	mFilePath(LL_PATH_APP_SETTINGS),
-	mSimulatorFeature(SIMULATOR_FEATURE),
-	mSyntaxIdCurrent(LLUUID()),
-	mSyntaxIdNew(LLUUID())
+LLSyntaxIdLSL::LLSyntaxIdLSL()
+:	mKeywordsXml(LLSD())
+,	mCapabilityURL(std::string())
+,	mFilePath(LL_PATH_APP_SETTINGS)
+,	mSyntaxId(LLUUID())
 {
+	mRegionChangedCallback = gAgent.addRegionChangedCallback(boost::bind(&LLSyntaxIdLSL::handleRegionChanged, this));
+	handleRegionChanged(); // Kick off an initial caps query and fetch
 }
 
 void LLSyntaxIdLSL::buildFullFileSpec()
 {
-	ELLPath path = mSyntaxIdNew.isNull() ? LL_PATH_APP_SETTINGS : LL_PATH_CACHE;
-	mFileNameNew = mSyntaxIdNew.isNull() ? mFileNameDefault : "keywords_lsl_" + mSyntaxIdNew.asString() + ".llsd.xml";
-	mFullFileSpec = gDirUtilp->getExpandedFilename(path, mFileNameNew);
+	ELLPath path = mSyntaxId.isNull() ? LL_PATH_APP_SETTINGS : LL_PATH_CACHE;
+	const std::string filename = mSyntaxId.isNull() ? FILENAME_DEFAULT : "keywords_lsl_" + mSyntaxId.asString() + ".llsd.xml";
+	mFullFileSpec = gDirUtilp->getExpandedFilename(path, filename);
 }
 
 //-----------------------------------------------------------------------------
-// checkSyntaxIdChange()
+// syntaxIdChange()
 //-----------------------------------------------------------------------------
-bool LLSyntaxIdLSL::checkSyntaxIdChanged()
+bool LLSyntaxIdLSL::syntaxIdChanged()
 {
-	mVersionChanged = false;
+	bool version_changed = false;
 	LLViewerRegion* region = gAgent.getRegion();
 
 	if (region)
 	{
-		if (!region->capabilitiesReceived())
-		{   // Shouldn't be possible, but experience shows that it may be needed.
-			mLoadFailed = true;
-			LL_INFOS("SyntaxLSL") << "Region '" << region->getName() << "' has not received capabilities yet. Cannot process SyntaxId." << LL_ENDL;
-		}
-		else
+		if (region->capabilitiesReceived())
 		{
-			LLSD simFeatures;
-			region->getSimulatorFeatures(simFeatures);
+			LLSD sim_features;
+			region->getSimulatorFeatures(sim_features);
 
-			// Does the sim have the required feature
-			if (simFeatures.has(mSimulatorFeature))
+			if (sim_features.has(SYNTAX_ID_SIMULATOR_FEATURE))
 			{
 				// get and check the hash
-				mSyntaxIdNew = simFeatures[mSimulatorFeature].asUUID();
-				mCapabilityURL = region->getCapability(mCapabilityName);
-				if (mSyntaxIdCurrent != mSyntaxIdNew)
-				{
-					LL_DEBUGS("SyntaxLSL") << "Region has LSLSyntaxId capability, and the new hash is '" << mSyntaxIdNew.asString() << "'" << LL_ENDL;
-
-					mVersionChanged = true;
-				}
-				else
-				{
-					LL_DEBUGS("SyntaxLSL") << "Region has the same LSLSyntaxId! Leaving hash as '" << mSyntaxIdCurrent.asString() << "'" << LL_ENDL;
-				}
-			}
-			else
-			{
-				if ( mSyntaxIdCurrent.isNull() && isInitialized())
+				LLUUID new_syntax_id = sim_features[SYNTAX_ID_SIMULATOR_FEATURE].asUUID();
+				mCapabilityURL = region->getCapability(SYNTAX_ID_CAPABILITY_NAME);
+				LL_DEBUGS("SyntaxLSL") << SYNTAX_ID_SIMULATOR_FEATURE << " capability URL: " << mCapabilityURL << LL_ENDL;
+				if (new_syntax_id != mSyntaxId)
 				{
-					LL_DEBUGS("SyntaxLSL") << "Region does not have LSLSyntaxId capability, remaining with default keywords." << LL_ENDL;
+					LL_DEBUGS("SyntaxLSL") << "New SyntaxID '" << new_syntax_id << "' found." << LL_ENDL;
+					mSyntaxId = new_syntax_id;
+					version_changed = true;
 				}
 				else
-				{
-					// The hash is set to NULL_KEY to indicate use of default keywords file
-					mSyntaxIdNew = LLUUID();
-					LL_DEBUGS("SyntaxLSL") << "Region does not have LSLSyntaxId capability, using default keywords." << LL_ENDL;
-					mVersionChanged = true;
-				}
+					LL_DEBUGS("SyntaxLSL") << "SyntaxID matches what we have." << LL_ENDL;
 			}
 		}
+		else
+		{
+			LL_WARNS("SyntaxLSL") << "Region '" << region->getName() << "' has not received capabilities. Cannot process SyntaxId." << LL_ENDL;
+		}
 	}
-	return mVersionChanged;
-}
-
-/**
- * @brief LLSyntaxIdLSL::fetching
- * If the XML has not loaded yet and it hasn't failed, then we're still fetching it.
- * @return bool Whether the file fetch is still in process.
- */
-bool LLSyntaxIdLSL::fetching()
-{
-	return !(mLoaded || mLoadFailed);
+	return version_changed;
 }
 
 //-----------------------------------------------------------------------------
 // fetchKeywordsFile
 //-----------------------------------------------------------------------------
-void LLSyntaxIdLSL::fetchKeywordsFile()
+void LLSyntaxIdLSL::fetchKeywordsFile(const std::string& filespec)
 {
+	mInflightFetches.push_back(filespec);
 	LLHTTPClient::get(mCapabilityURL,
-					  new fetchKeywordsFileResponder(mFullFileSpec),
-					  LLSD(), 30.f
-					  );
-	LL_DEBUGS("SyntaxLSL") << "LSLSyntaxId capability URL is: " << mCapabilityURL << ". Filename to use is: '" << mFullFileSpec << "'." << LL_ENDL;
+					  new fetchKeywordsFileResponder(filespec),
+					  LLSD(), 30.f);
+	LL_DEBUGS("SyntaxLSL") << "LSLSyntaxId capability URL is: " << mCapabilityURL << ". Filename to use is: '" << filespec << "'." << LL_ENDL;
 }
 
 
@@ -219,55 +179,40 @@ void LLSyntaxIdLSL::fetchKeywordsFile()
 //-----------------------------------------------------------------------------
 void LLSyntaxIdLSL::initialize()
 {
-	mFileNameNew = mFileNameCurrent;
-	mSyntaxIdNew = mSyntaxIdCurrent;
-
-	if (checkSyntaxIdChanged())
+	if (mSyntaxId.isNull())
 	{
-		mKeywordsXml = LLSD();
-		mLoaded = mLoadFailed = false;
+		loadDefaultKeywordsIntoLLSD();
+	}
+	else if (!mCapabilityURL.empty())
+	{
+		LL_DEBUGS("SyntaxLSL") << "LSL version has changed, getting appropriate file." << LL_ENDL;
 
-		if (mSyntaxIdNew.isNull())
-		{ // Need to open the default
-			loadDefaultKeywordsIntoLLSD();
-		}
-		else if (!mCapabilityURL.empty() )
+		// Need a full spec regardless of file source, so build it now.
+		buildFullFileSpec();
+		if (mSyntaxId.notNull())
 		{
-			LL_DEBUGS("SyntaxLSL") << "LSL version has changed, getting appropriate file." << LL_ENDL;
-
-			// Need a full spec regardless of file source, so build it now.
-			buildFullFileSpec();
-			if ( !mSyntaxIdNew.isNull())
-			{
-				if ( !gDirUtilp->fileExists(mFullFileSpec) )
-				{ // Does not exist, so fetch it from the capability
-					LL_INFOS("SyntaxLSL") << "LSL syntax not cached, attempting download." << LL_ENDL;
-					fetchKeywordsFile();
-				}
-				else
-				{
-					loadKeywordsIntoLLSD();
-				}
+			if (!gDirUtilp->fileExists(mFullFileSpec))
+			{ // Does not exist, so fetch it from the capability
+				LL_DEBUGS("SyntaxLSL") << "LSL syntax not cached, attempting download." << LL_ENDL;
+				fetchKeywordsFile(mFullFileSpec);
 			}
 			else
-			{ // Need to open the default
-				loadDefaultKeywordsIntoLLSD();
+			{
+				LL_DEBUGS("SyntaxLSL") << "Found cached Syntax file: " << mFullFileSpec << " Loading keywords." << LL_ENDL;
+				loadKeywordsIntoLLSD();
 			}
 		}
 		else
 		{
-			mLoadFailed = true;
-			LL_WARNS("SyntaxLSL") << "LSLSyntaxId capability URL is empty." << LL_ENDL;
+			LL_DEBUGS("SyntaxLSL") << "LSLSyntaxId is null. Loading default values" << LL_ENDL;
 			loadDefaultKeywordsIntoLLSD();
 		}
 	}
-	else if (!isInitialized())
+	else
 	{
+		LL_DEBUGS("SyntaxLSL") << "LSLSyntaxId capability URL is empty." << LL_ENDL;
 		loadDefaultKeywordsIntoLLSD();
 	}
-
-	mFileNameCurrent = mFileNameNew;
-	mSyntaxIdCurrent = mSyntaxIdNew;
 }
 
 //-----------------------------------------------------------------------------
@@ -278,7 +223,7 @@ const std::string LLSD_SYNTAX_LSL_VERSION_KEY("llsd-lsl-syntax-version");
 
 bool LLSyntaxIdLSL::isSupportedVersion(const LLSD& content)
 {
-	bool isValid = false;
+	bool is_valid = false;
 	/*
 	 * If the schema used to store LSL keywords and hints changes, this value is incremented
 	 * Note that it should _not_ be changed if the keywords and hints _content_ changes.
@@ -290,15 +235,15 @@ bool LLSyntaxIdLSL::isSupportedVersion(const LLSD& content)
 
 		if (content[LLSD_SYNTAX_LSL_VERSION_KEY].asInteger() == LLSD_SYNTAX_LSL_VERSION_EXPECTED)
 		{
-			isValid = true;
+			is_valid = true;
 		}
 	}
 	else
 	{
-		LL_DEBUGS("SyntaxLSL") << "No LSL syntax version key." << LL_ENDL;
+		LL_DEBUGS("SyntaxLSL") << "Missing LSL syntax version key." << LL_ENDL;
 	}
 
-	return isValid;
+	return is_valid;
 }
 
 //-----------------------------------------------------------------------------
@@ -306,8 +251,7 @@ bool LLSyntaxIdLSL::isSupportedVersion(const LLSD& content)
 //-----------------------------------------------------------------------------
 void LLSyntaxIdLSL::loadDefaultKeywordsIntoLLSD()
 {
-	LL_DEBUGS("SyntaxLSL") << "LSLSyntaxId is null so we will use the default file." << LL_ENDL;
-	mSyntaxIdNew = LLUUID();
+	mSyntaxId.setNull();
 	buildFullFileSpec();
 	loadKeywordsIntoLLSD();
 }
@@ -323,46 +267,52 @@ void LLSyntaxIdLSL::loadDefaultKeywordsIntoLLSD()
  */
 void LLSyntaxIdLSL::loadKeywordsIntoLLSD()
 {
-	LL_DEBUGS("SyntaxLSL") << "Trying to open cached or default keyword file" << LL_ENDL;
-
-	// Is this the right thing to do, or should we leave the old content
-	// even if it isn't entirely accurate anymore?
-	mKeywordsXml = LLSD().emptyMap();
-
 	LLSD content;
 	llifstream file;
 	file.open(mFullFileSpec);
 	if (file.is_open())
 	{
-		mLoaded = (bool)LLSDSerialize::fromXML(content, file);
-		if (!mLoaded)
-		{
-			LL_WARNS("SyntaxLSL") << "Unable to deserialise: " << mFullFileSpec << LL_ENDL;
-		}
-		else
+		if (LLSDSerialize::fromXML(content, file) != LLSDParser::PARSE_FAILURE)
 		{
 			if (isSupportedVersion(content))
 			{
-				mKeywordsXml = content;
-				mLoaded = true;
-				mInitialized = true;
 				LL_DEBUGS("SyntaxLSL") << "Deserialised: " << mFullFileSpec << LL_ENDL;
 			}
 			else
 			{
-				mLoaded = false;
 				LL_WARNS("SyntaxLSL") << "Unknown or unsupported version of syntax file." << LL_ENDL;
 			}
 		}
 	}
 	else
 	{
-		LL_WARNS("SyntaxLSL") << "Unable to open: " << mFullFileSpec << LL_ENDL;
+		LL_WARNS("SyntaxLSL") << "Failed to open: " << mFullFileSpec << LL_ENDL;
+	}
+	mKeywordsXml = content;
+	mSyntaxIDChangedSignal();
+}
+
+bool LLSyntaxIdLSL::keywordFetchInProgress()
+{
+	return !mInflightFetches.empty();
+}
+
+void LLSyntaxIdLSL::handleRegionChanged()
+{
+	if (syntaxIdChanged())
+	{
+		buildFullFileSpec();
+		fetchKeywordsFile(mFullFileSpec);
 	}
-	mLoadFailed = !mLoaded;
 }
 
-boost::signals2::connection LLSyntaxIdLSL::addFileFetchedCallback(const file_fetched_signal_t::slot_type& cb)
+void LLSyntaxIdLSL::handleFileFetched(const std::string& filepath)
+{
+	mInflightFetches.remove(filepath);
+	loadKeywordsIntoLLSD();
+}
+
+boost::signals2::connection LLSyntaxIdLSL::addSyntaxIDCallback(const syntax_id_changed_signal_t::slot_type& cb)
 {
-	return mFileFetchedSignal.connect(cb);
+	return mSyntaxIDChangedSignal.connect(cb);
 }
diff --git a/indra/newview/llsyntaxid.h b/indra/newview/llsyntaxid.h
index 2288fb4ab8..70f6b28337 100644
--- a/indra/newview/llsyntaxid.h
+++ b/indra/newview/llsyntaxid.h
@@ -2,7 +2,7 @@
  * @file llsyntaxid.h
  * @brief Contains methods to access the LSLSyntaxId feature and LSLSyntax capability
  * to use the appropriate syntax file for the current region's LSL version.
- * @author Ima Mechanique
+ * @author Ima Mechanique, Cinder Roxley
  *
  * $LicenseInfo:firstyear=2013&license=viewerlgpl$
  * Second Life Viewer Source Code
@@ -30,98 +30,43 @@
 
 #include "llviewerprecompiledheaders.h"
 
-#include "llagent.h"
-#include "llenvmanager.h"
-#include "llhttpclient.h"
 #include "llsingleton.h"
-#include "llviewerregion.h"
+
+class fetchKeywordsFileResponder;
 
 class LLSyntaxIdLSL : public LLSingleton<LLSyntaxIdLSL>
 {
-friend class fetchKeywordsFileResponder;
-
-public:
-	LLSyntaxIdLSL();
-
-	bool			checkSyntaxIdChanged();
-	bool			fetching();
-	std::string		getFileNameCurrent()	const { return mFileNameCurrent; }
-	ELLPath			getFilePath()			const { return mFilePath; }
-	std::string		getFileSpec()			const { return mFullFileSpec; }
-	LLSD			getKeywordsXML()		const { return mKeywordsXml; }
-	LLUUID			getSyntaxId()			const { return mSyntaxIdCurrent; }
-	bool			isDifferentVersion()	const { return mVersionChanged; }
-	bool			isInitialized()			const { return mInitialized; }
-
-	void			initialize();
-	bool			isLoaded() { return mLoaded; }
-
-	bool			isSupportedVersion(const LLSD& content);
-	void			setKeywordsXml(const LLSD& content) { mKeywordsXml = content; }
-	typedef			boost::signals2::signal<void()> file_fetched_signal_t;
-	boost::signals2::connection		addFileFetchedCallback(const file_fetched_signal_t::slot_type& cb);
-
-protected:
-	void			buildFullFileSpec();
-	void			fetchKeywordsFile();
-	void			loadDefaultKeywordsIntoLLSD();
-	void			loadKeywordsIntoLLSD();
-	void			setSyntaxId(LLUUID SyntaxId) { mSyntaxIdCurrent = SyntaxId; }
-	void			setFileNameCurrent(const std::string& name) { mFileNameCurrent = name; }
-	void			setFileNameNew(const std::string name) { mFileNameNew = name; }
+	friend class LLSingleton<LLSyntaxIdLSL>;
+	friend class fetchKeywordsFileResponder;
 	
 private:
-	static const std::string CAPABILITY_NAME;
-	static const std::string FILENAME_DEFAULT;
-	static const std::string SIMULATOR_FEATURE;
-
-	bool		mInitialized;
-	LLSD		mKeywordsXml;
-	bool		mLoaded;
-	bool		mLoadFailed;
-	bool		mVersionChanged;
-	file_fetched_signal_t	mFileFetchedSignal;
+	std::list<std::string> mInflightFetches;
+	typedef boost::signals2::signal<void()> syntax_id_changed_signal_t;
+	syntax_id_changed_signal_t mSyntaxIDChangedSignal;
+	boost::signals2::connection mRegionChangedCallback;
+	
+	bool	syntaxIdChanged();
+	bool	isSupportedVersion(const LLSD& content);
+	void	handleRegionChanged();
+	void	handleFileFetched(const std::string& filepath);
+	void	setKeywordsXml(const LLSD& content) { mKeywordsXml = content; };
+	void	buildFullFileSpec();
+	void	fetchKeywordsFile(const std::string& filespec);
+	void	loadDefaultKeywordsIntoLLSD();
+	void	loadKeywordsIntoLLSD();
 	
-	std::string		mCapabilityName;
 	std::string		mCapabilityURL;
-	std::string		mFileNameCurrent;
-	std::string		mFileNameDefault;
-	std::string		mFileNameNew;
-	ELLPath			mFilePath;
 	std::string		mFullFileSpec;
-	std::string		mSimulatorFeature;
-	LLUUID			mSyntaxIdCurrent;
-	LLUUID			mSyntaxIdNew;
-};
-
-
-class fetchKeywordsFileResponder : public LLHTTPClient::Responder
-{
+	ELLPath			mFilePath;
+	LLUUID			mSyntaxId;
+	LLSD			mKeywordsXml;
+	
 public:
-	std::string	mFileSpec;
-
-	/**
-	 * @brief fetchKeywordsFileResponder
-	 * @param filespec	File path and name of where to save the returned data
-	 */
-	fetchKeywordsFileResponder(const std::string& filespec);
-
-	void errorWithContent(U32 status,
-						const std::string& reason,
-						const LLSD& content);
-
-	/**
-	 * @brief Checks the returned LLSD for version and stores it in the LLSyntaxIdLSL object.
-	 * @param content_ref The returned LLSD.
-	 */
-	void result(const LLSD& content_ref);
-
-	/**
-	 * @brief Saves the returned file to the location provided at instantiation.
-	 *			Could be extended to manage cached entries.
-	 * @param content_ref	The LSL syntax file for the sim.
-	 */
-	void cacheFile(const LLSD& content_ref);
+	LLSyntaxIdLSL();
+	void initialize();
+	bool keywordFetchInProgress();
+	LLSD getKeywordsXML() const { return mKeywordsXml; };
+	boost::signals2::connection addSyntaxIDCallback(const syntax_id_changed_signal_t::slot_type& cb);
 };
 
 #endif // LLSYNTAXID_H
-- 
cgit v1.2.3


From 78be5c3aa5f7263698bec5bcbccb24c150f78d09 Mon Sep 17 00:00:00 2001
From: Cinder <cinder.roxley@phoenixviewer.com>
Date: Mon, 9 Jun 2014 16:19:20 -0600
Subject: STORM-2026 - Use more unique syntax colors by default, also clean up
 some indentation

---
 indra/newview/llsyntaxid.cpp           | 28 ++++++++++++++--------------
 indra/newview/skins/default/colors.xml | 20 ++++++++++----------
 2 files changed, 24 insertions(+), 24 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llsyntaxid.cpp b/indra/newview/llsyntaxid.cpp
index 5b5bab85d0..236ad784ec 100644
--- a/indra/newview/llsyntaxid.cpp
+++ b/indra/newview/llsyntaxid.cpp
@@ -51,31 +51,31 @@ public:
 								  const std::string& reason,
 								  const LLSD& content)
 	{
-	LL_WARNS("SyntaxLSL") << "failed to fetch syntax file [status:" << status << "]: " << content << LL_ENDL;
+		LL_WARNS("SyntaxLSL") << "failed to fetch syntax file [status:" << status << "]: " << content << LL_ENDL;
 	}
 
 	virtual void result(const LLSD& content_ref)
 	{
-	// Continue only if a valid LLSD object was returned.
-	if (content_ref.isMap())
-	{
-		if (LLSyntaxIdLSL::getInstance()->isSupportedVersion(content_ref))
+		// Continue only if a valid LLSD object was returned.
+		if (content_ref.isMap())
 		{
-			LLSyntaxIdLSL::getInstance()->setKeywordsXml(content_ref);
+			if (LLSyntaxIdLSL::getInstance()->isSupportedVersion(content_ref))
+			{
+				LLSyntaxIdLSL::getInstance()->setKeywordsXml(content_ref);
 
-			cacheFile(content_ref);
-			LLSyntaxIdLSL::getInstance()->handleFileFetched(mFileSpec);
+				cacheFile(content_ref);
+				LLSyntaxIdLSL::getInstance()->handleFileFetched(mFileSpec);
+			}
+			else
+			{
+				LL_WARNS("SyntaxLSL") << "Unknown or unsupported version of syntax file." << LL_ENDL;
+			}
 		}
 		else
 		{
-			LL_WARNS("SyntaxLSL") << "Unknown or unsupported version of syntax file." << LL_ENDL;
+			LL_WARNS("SyntaxLSL") << "Syntax file '" << mFileSpec << "' contains invalid LLSD." << LL_ENDL;
 		}
 	}
-	else
-	{
-		LL_WARNS("SyntaxLSL") << "Syntax file '" << mFileSpec << "' contains invalid LLSD." << LL_ENDL;
-	}
-}
 
 	void cacheFile(const LLSD& content_ref)
 	{
diff --git a/indra/newview/skins/default/colors.xml b/indra/newview/skins/default/colors.xml
index 464e633297..bdc884885f 100755
--- a/indra/newview/skins/default/colors.xml
+++ b/indra/newview/skins/default/colors.xml
@@ -917,32 +917,32 @@
     reference="Black" />
   <color
     name="SyntaxLslComment"
-    value=".8 .3 .15 1.0" />
+    value="0 0.5 0 1" />
   <color
     name="SyntaxLslConstant"
-    value=".3 .1 .5 1.0" />
+    value="0 0.6 0.6 1" />
   <color
     name="SyntaxLslControlFlow"
-    value="0 0 .8 1.0" />
+    value="0.4 0 0.8 1" />
   <color
     name="SyntaxLslControlLabel"
-    value="0 0 .8 1.0" />
+    value="0 0 0.8 1" />
   <color
     name="SyntaxLslDataType"
-    value=".1 .3 .1 1.0" />
+    value="0.8 0.4 0 1" />
    <color
     name="SyntaxLslDeprecated"
-    value="0.9 0.0 0.66, 1.0" />
+    value="0.9 0.0 0.66, 1" />
   <color
    name="SyntaxLslEvent"
-   value="0 .3 .5 1.0" />
+   value="0 0.3 0.5 1" />
   <color
    name="SyntaxLslFunction"
-   value=".3 0 .5 1.0" />
+   value="0.3 0 0.5 1" />
   <color
    name="SyntaxLslGodMode"
-   value="0.7 .2 .35 1.0" />
+   value="0.7 .2 .35 1" />
   <color
     name="SyntaxLslStringLiteral"
-    value="0 .2 0 1.0" />
+    value="1 0.14 0 1" />
 </colors>
-- 
cgit v1.2.3


From 142e8edcd334b6119a74a7ce93c9823ad82bc052 Mon Sep 17 00:00:00 2001
From: Oz Linden <oz@lindenlab.com>
Date: Mon, 16 Jun 2014 14:35:23 -0400
Subject: correct merge mistake

---
 indra/newview/llappearancemgr.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'indra')

diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp
index fe9dde4a43..6797dab839 100755
--- a/indra/newview/llappearancemgr.cpp
+++ b/indra/newview/llappearancemgr.cpp
@@ -1483,7 +1483,7 @@ void LLAppearanceMgr::takeOffOutfit(const LLUUID& cat_id)
 
 	// deactivate all gestures in the outfit folder
 	LLInventoryModel::item_array_t gest_items;
-	getDescendentsOfAssetType(cat_id, gest_items, LLAssetType::AT_GESTURE, false);
+	getDescendentsOfAssetType(cat_id, gest_items, LLAssetType::AT_GESTURE);
 	for(S32 i = 0; i  < gest_items.size(); ++i)
 	{
 		LLViewerInventoryItem *gest_item = gest_items[i];
-- 
cgit v1.2.3


From d949bee053610fe8769055589984e721ae1ee3d1 Mon Sep 17 00:00:00 2001
From: Cinder <cinder.roxley@phoenixviewer.com>
Date: Fri, 20 Jun 2014 10:17:31 -0600
Subject: BUG-6425 - Init default keywords file during ctor so we have
 something to fallback on should caps or fetch fail

---
 indra/newview/llsyntaxid.cpp | 1 +
 1 file changed, 1 insertion(+)

(limited to 'indra')

diff --git a/indra/newview/llsyntaxid.cpp b/indra/newview/llsyntaxid.cpp
index 236ad784ec..9b82710161 100644
--- a/indra/newview/llsyntaxid.cpp
+++ b/indra/newview/llsyntaxid.cpp
@@ -111,6 +111,7 @@ LLSyntaxIdLSL::LLSyntaxIdLSL()
 ,	mFilePath(LL_PATH_APP_SETTINGS)
 ,	mSyntaxId(LLUUID())
 {
+	loadDefaultKeywordsIntoLLSD();
 	mRegionChangedCallback = gAgent.addRegionChangedCallback(boost::bind(&LLSyntaxIdLSL::handleRegionChanged, this));
 	handleRegionChanged(); // Kick off an initial caps query and fetch
 }
-- 
cgit v1.2.3


From 984353d7ca6184d7252c716150d42139aae94e5c Mon Sep 17 00:00:00 2001
From: Cinder <cinder.roxley@phoenixviewer.com>
Date: Fri, 20 Jun 2014 11:02:50 -0600
Subject: STORM-2036 - Fix trying to parse caps too early by adding a callback
 to check region caps when they haven't already been received

---
 indra/newview/llsyntaxid.cpp | 19 +++++++++++++++----
 indra/newview/llsyntaxid.h   |  1 +
 2 files changed, 16 insertions(+), 4 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llsyntaxid.cpp b/indra/newview/llsyntaxid.cpp
index 9b82710161..b1194dcd1b 100644
--- a/indra/newview/llsyntaxid.cpp
+++ b/indra/newview/llsyntaxid.cpp
@@ -128,7 +128,6 @@ void LLSyntaxIdLSL::buildFullFileSpec()
 //-----------------------------------------------------------------------------
 bool LLSyntaxIdLSL::syntaxIdChanged()
 {
-	bool version_changed = false;
 	LLViewerRegion* region = gAgent.getRegion();
 
 	if (region)
@@ -148,7 +147,7 @@ bool LLSyntaxIdLSL::syntaxIdChanged()
 				{
 					LL_DEBUGS("SyntaxLSL") << "New SyntaxID '" << new_syntax_id << "' found." << LL_ENDL;
 					mSyntaxId = new_syntax_id;
-					version_changed = true;
+					return true;
 				}
 				else
 					LL_DEBUGS("SyntaxLSL") << "SyntaxID matches what we have." << LL_ENDL;
@@ -156,10 +155,11 @@ bool LLSyntaxIdLSL::syntaxIdChanged()
 		}
 		else
 		{
-			LL_WARNS("SyntaxLSL") << "Region '" << region->getName() << "' has not received capabilities. Cannot process SyntaxId." << LL_ENDL;
+			region->setCapabilitiesReceivedCallback(boost::bind(&LLSyntaxIdLSL::handleCapsReceived, this, _1));
+			LL_DEBUGS("SyntaxLSL") << "Region has not received capabilities. Waiting for caps..." << LL_ENDL;
 		}
 	}
-	return version_changed;
+	return false;
 }
 
 //-----------------------------------------------------------------------------
@@ -307,6 +307,17 @@ void LLSyntaxIdLSL::handleRegionChanged()
 	}
 }
 
+void LLSyntaxIdLSL::handleCapsReceived(const LLUUID& region_uuid)
+{
+	LLViewerRegion* current_region = gAgent.getRegion();
+	
+	if (region_uuid.notNull()
+		&& current_region->getRegionID() == region_uuid)
+	{
+		syntaxIdChanged();
+	}
+}
+
 void LLSyntaxIdLSL::handleFileFetched(const std::string& filepath)
 {
 	mInflightFetches.remove(filepath);
diff --git a/indra/newview/llsyntaxid.h b/indra/newview/llsyntaxid.h
index 70f6b28337..504fb0997e 100644
--- a/indra/newview/llsyntaxid.h
+++ b/indra/newview/llsyntaxid.h
@@ -48,6 +48,7 @@ private:
 	bool	syntaxIdChanged();
 	bool	isSupportedVersion(const LLSD& content);
 	void	handleRegionChanged();
+	void	handleCapsReceived(const LLUUID& region_uuid);
 	void	handleFileFetched(const std::string& filepath);
 	void	setKeywordsXml(const LLSD& content) { mKeywordsXml = content; };
 	void	buildFullFileSpec();
-- 
cgit v1.2.3


From 8d2e0fb3a047e349b88db80afa09fc97a7f4ff74 Mon Sep 17 00:00:00 2001
From: Cinder <cinder.roxley@phoenixviewer.com>
Date: Fri, 20 Jun 2014 13:43:31 -0600
Subject: STORM-2035 - Invert the background color in script editors for
 highlighting sections. Since the background color can be changed by the user,
 this ensures distinctive highlighting

---
 indra/llui/lltextbase.cpp                          |  51 +++++-----
 indra/llui/lltextbase.h                            |  40 +++++---
 indra/newview/llscripteditor.cpp                   | 104 +++++++++++++++++++++
 indra/newview/llscripteditor.h                     |   5 +-
 .../skins/default/xui/en/panel_script_ed.xml       |   1 -
 5 files changed, 154 insertions(+), 47 deletions(-)

(limited to 'indra')

diff --git a/indra/llui/lltextbase.cpp b/indra/llui/lltextbase.cpp
index ebfd227f06..71db0ac030 100755
--- a/indra/llui/lltextbase.cpp
+++ b/indra/llui/lltextbase.cpp
@@ -70,43 +70,36 @@ bool LLTextBase::compare_segment_end::operator()(const LLTextSegmentPtr& a, cons
 
 
 // helper functors
-struct LLTextBase::compare_bottom
+bool LLTextBase::compare_bottom::operator()(const S32& a, const LLTextBase::line_info& b) const
 {
-	bool operator()(const S32& a, const LLTextBase::line_info& b) const
-	{
-		return a > b.mRect.mBottom; // bottom of a is higher than bottom of b
-	}
-
-	bool operator()(const LLTextBase::line_info& a, const S32& b) const
-	{
-		return a.mRect.mBottom > b; // bottom of a is higher than bottom of b
-	}
+	return a > b.mRect.mBottom; // bottom of a is higher than bottom of b
+}
 
-	bool operator()(const LLTextBase::line_info& a, const LLTextBase::line_info& b) const
-	{
-		return a.mRect.mBottom > b.mRect.mBottom; // bottom of a is higher than bottom of b
-	}
+bool LLTextBase::compare_bottom::operator()(const LLTextBase::line_info& a, const S32& b) const
+{
+	return a.mRect.mBottom > b; // bottom of a is higher than bottom of b
+}
 
-};
+bool LLTextBase::compare_bottom::operator()(const LLTextBase::line_info& a, const LLTextBase::line_info& b) const
+{
+	return a.mRect.mBottom > b.mRect.mBottom; // bottom of a is higher than bottom of b
+}
 
 // helper functors
-struct LLTextBase::compare_top
+bool LLTextBase::compare_top::operator()(const S32& a, const LLTextBase::line_info& b) const
 {
-	bool operator()(const S32& a, const LLTextBase::line_info& b) const
-	{
-		return a > b.mRect.mTop; // top of a is higher than top of b
-	}
+	return a > b.mRect.mTop; // top of a is higher than top of b
+}
 
-	bool operator()(const LLTextBase::line_info& a, const S32& b) const
-	{
-		return a.mRect.mTop > b; // top of a is higher than top of b
-	}
+bool LLTextBase::compare_top::operator()(const LLTextBase::line_info& a, const S32& b) const
+{
+	return a.mRect.mTop > b; // top of a is higher than top of b
+}
 
-	bool operator()(const LLTextBase::line_info& a, const LLTextBase::line_info& b) const
-	{
-		return a.mRect.mTop > b.mRect.mTop; // top of a is higher than top of b
-	}
-};
+bool LLTextBase::compare_top::operator()(const LLTextBase::line_info& a, const LLTextBase::line_info& b) const
+{
+	return a.mRect.mTop > b.mRect.mTop; // top of a is higher than top of b
+}
 
 struct LLTextBase::line_end_compare
 {
diff --git a/indra/llui/lltextbase.h b/indra/llui/lltextbase.h
index ecbfdaf84c..738b4d5b8e 100755
--- a/indra/llui/lltextbase.h
+++ b/indra/llui/lltextbase.h
@@ -451,9 +451,31 @@ public:
 	LLScrollContainer*		getScrollContainer() const { return mScroller; }
 
 protected:
+	// protected member variables
+	// List of offsets and segment index of the start of each line.  Always has at least one node (0).
+	struct line_info
+	{
+		line_info(S32 index_start, S32 index_end, LLRect rect, S32 line_num);
+		S32 mDocIndexStart;
+		S32 mDocIndexEnd;
+		LLRect mRect;
+		S32 mLineNum; // actual line count (ignoring soft newlines due to word wrap)
+	};
+	typedef std::vector<line_info> line_list_t;
+	
 	// helper structs
-	struct compare_bottom;
-	struct compare_top;
+	struct compare_bottom
+	{
+		bool operator()(const S32& a, const line_info& b) const;
+		bool operator()(const line_info& a, const S32& b) const;
+		bool operator()(const line_info& a, const line_info& b) const;
+	};
+	struct compare_top
+	{
+		bool operator()(const S32& a, const line_info& b) const;
+		bool operator()(const line_info& a, const S32& b) const;
+		bool operator()(const line_info& a, const line_info& b) const;
+	};
 	struct line_end_compare;
 	typedef std::vector<LLTextSegmentPtr> segment_vec_t;
 
@@ -501,18 +523,6 @@ protected:
 	};
 	typedef std::multiset<LLTextSegmentPtr, compare_segment_end> segment_set_t;
 
-	// protected member variables
-	// List of offsets and segment index of the start of each line.  Always has at least one node (0).
-	struct line_info
-	{
-		line_info(S32 index_start, S32 index_end, LLRect rect, S32 line_num);
-		S32 mDocIndexStart;
-		S32 mDocIndexEnd;
-		LLRect mRect;
-		S32 mLineNum; // actual line count (ignoring soft newlines due to word wrap)
-	};
-	typedef std::vector<line_info> line_list_t;
-
 	// member functions
 	LLTextBase(const Params &p);
 	virtual ~LLTextBase();
@@ -522,7 +532,7 @@ protected:
     virtual bool                    useLabel() const;
 
 	// draw methods
-	void							drawSelectionBackground(); // draws the black box behind the selected text
+	virtual void					drawSelectionBackground(); // draws the black box behind the selected text
 	void							drawCursor();
 	void							drawText();
 
diff --git a/indra/newview/llscripteditor.cpp b/indra/newview/llscripteditor.cpp
index df46380130..3bbfbad477 100644
--- a/indra/newview/llscripteditor.cpp
+++ b/indra/newview/llscripteditor.cpp
@@ -183,3 +183,107 @@ void LLScriptEditor::clearSegments()
 		mSegments.clear();
 	}
 }
+
+// Most of this is shamelessly copied from LLTextBase
+void LLScriptEditor::drawSelectionBackground()
+{
+	// Draw selection even if we don't have keyboard focus for search/replace
+	if( hasSelection() && !mLineInfoList.empty())
+	{
+		std::vector<LLRect> selection_rects;
+		
+		S32 selection_left		= llmin( mSelectionStart, mSelectionEnd );
+		S32 selection_right		= llmax( mSelectionStart, mSelectionEnd );
+		
+		// Skip through the lines we aren't drawing.
+		LLRect content_display_rect = getVisibleDocumentRect();
+		
+		// binary search for line that starts before top of visible buffer
+		line_list_t::const_iterator line_iter = std::lower_bound(mLineInfoList.begin(), mLineInfoList.end(), content_display_rect.mTop, LLTextBase::compare_bottom());
+		line_list_t::const_iterator end_iter = std::upper_bound(mLineInfoList.begin(), mLineInfoList.end(), content_display_rect.mBottom, LLTextBase::compare_top());
+		
+		bool done = false;
+		
+		// Find the coordinates of the selected area
+		for (;line_iter != end_iter && !done; ++line_iter)
+		{
+			// is selection visible on this line?
+			if (line_iter->mDocIndexEnd > selection_left && line_iter->mDocIndexStart < selection_right)
+			{
+				segment_set_t::iterator segment_iter;
+				S32 segment_offset;
+				getSegmentAndOffset(line_iter->mDocIndexStart, &segment_iter, &segment_offset);
+				
+				LLRect selection_rect;
+				selection_rect.mLeft = line_iter->mRect.mLeft;
+				selection_rect.mRight = line_iter->mRect.mLeft;
+				selection_rect.mBottom = line_iter->mRect.mBottom;
+				selection_rect.mTop = line_iter->mRect.mTop;
+				
+				for(;segment_iter != mSegments.end(); ++segment_iter, segment_offset = 0)
+				{
+					LLTextSegmentPtr segmentp = *segment_iter;
+					
+					S32 segment_line_start = segmentp->getStart() + segment_offset;
+					S32 segment_line_end = llmin(segmentp->getEnd(), line_iter->mDocIndexEnd);
+					
+					if (segment_line_start > segment_line_end) break;
+					
+					S32 segment_width = 0;
+					S32 segment_height = 0;
+					
+					// if selection after beginning of segment
+					if(selection_left >= segment_line_start)
+					{
+						S32 num_chars = llmin(selection_left, segment_line_end) - segment_line_start;
+						segmentp->getDimensions(segment_offset, num_chars, segment_width, segment_height);
+						selection_rect.mLeft += segment_width;
+					}
+					
+					// if selection_right == segment_line_end then that means we are the first character of the next segment
+					// or first character of the next line, in either case we want to add the length of the current segment
+					// to the selection rectangle and continue.
+					// if selection right > segment_line_end then selection spans end of current segment...
+					if (selection_right >= segment_line_end)
+					{
+						// extend selection slightly beyond end of line
+						// to indicate selection of newline character (use "n" character to determine width)
+						S32 num_chars = segment_line_end - segment_line_start;
+						segmentp->getDimensions(segment_offset, num_chars, segment_width, segment_height);
+						selection_rect.mRight += segment_width;
+					}
+					// else if selection ends on current segment...
+					else
+					{
+						S32 num_chars = selection_right - segment_line_start;
+						segmentp->getDimensions(segment_offset, num_chars, segment_width, segment_height);
+						selection_rect.mRight += segment_width;
+						
+						break;
+					}
+				}
+				selection_rects.push_back(selection_rect);
+			}
+		}
+		
+		gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
+		const LLColor4& color = mReadOnly ? mReadOnlyBgColor : mWriteableBgColor;
+		F32 alpha = hasFocus() ? 0.7f : 0.3f;
+		alpha *= getDrawContext().mAlpha;
+		// We want to invert the background color in script editors
+		LLColor4 selection_color(1.f - color.mV[VRED],
+								 1.f - color.mV[VGREEN],
+								 1.f - color.mV[VBLUE],
+								 alpha);
+		
+		for (std::vector<LLRect>::iterator rect_it = selection_rects.begin();
+			 rect_it != selection_rects.end();
+			 ++rect_it)
+		{
+			LLRect selection_rect = *rect_it;
+			selection_rect = *rect_it;
+			selection_rect.translate(mVisibleTextRect.mLeft - content_display_rect.mLeft, mVisibleTextRect.mBottom - content_display_rect.mBottom);
+			gl_rect_2d(selection_rect, selection_color);
+		}
+	}
+}
diff --git a/indra/newview/llscripteditor.h b/indra/newview/llscripteditor.h
index 8c5ab362a3..f458203a39 100644
--- a/indra/newview/llscripteditor.h
+++ b/indra/newview/llscripteditor.h
@@ -48,7 +48,7 @@ public:
 	
 	void	initKeywords();
 	void	loadKeywords();
-	void	clearSegments();
+	/* virtual */ void	clearSegments();
 	LLKeywords::keyword_iterator_t keywordsBegin()	{ return mKeywords.begin(); }
 	LLKeywords::keyword_iterator_t keywordsEnd()	{ return mKeywords.end(); }
 	
@@ -58,7 +58,8 @@ protected:
 	
 private:
 	void	drawLineNumbers();
-	void	updateSegments();
+	/* virtual */ void	updateSegments();
+	/* virtual */ void	drawSelectionBackground();
 	void	loadKeywords(const std::string& filename_keywords,
 						 const std::string& filename_colors);
 	
diff --git a/indra/newview/skins/default/xui/en/panel_script_ed.xml b/indra/newview/skins/default/xui/en/panel_script_ed.xml
index 5971082380..eb1b954e61 100755
--- a/indra/newview/skins/default/xui/en/panel_script_ed.xml
+++ b/indra/newview/skins/default/xui/en/panel_script_ed.xml
@@ -176,7 +176,6 @@
      bg_focus_color="ScriptBackground"
      text_readonly_color="ScriptText"
      bg_readonly_color="ScriptBackground"
-     bg_selected_color="ScriptSelectedColor"
      cursor_color="ScriptCursorColor"
      enable_tooltip_paste="true"
      word_wrap="true"
-- 
cgit v1.2.3


From c3573b6d7b53dac583f9fed40a243f7fa98f6c87 Mon Sep 17 00:00:00 2001
From: Cinder <cinder.roxley@phoenixviewer.com>
Date: Tue, 24 Jun 2014 15:27:08 -0600
Subject: STORM-2035 - Looking for a good selection box contrast

---
 indra/newview/llscripteditor.cpp | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llscripteditor.cpp b/indra/newview/llscripteditor.cpp
index 3bbfbad477..81920562a7 100644
--- a/indra/newview/llscripteditor.cpp
+++ b/indra/newview/llscripteditor.cpp
@@ -267,13 +267,13 @@ void LLScriptEditor::drawSelectionBackground()
 		}
 		
 		gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
-		const LLColor4& color = mReadOnly ? mReadOnlyBgColor : mWriteableBgColor;
+		const LLColor4& color = mReadOnly ? mReadOnlyFgColor : mFgColor;
 		F32 alpha = hasFocus() ? 0.7f : 0.3f;
 		alpha *= getDrawContext().mAlpha;
-		// We want to invert the background color in script editors
-		LLColor4 selection_color(1.f - color.mV[VRED],
-								 1.f - color.mV[VGREEN],
-								 1.f - color.mV[VBLUE],
+		// We want to shift the color to something readable but distinct
+		LLColor4 selection_color((1.f + color.mV[VRED]) * 0.5f,
+								 (1.f + color.mV[VGREEN]) * 0.5f,
+								 (1.f + color.mV[VBLUE]) * 0.5f,
 								 alpha);
 		
 		for (std::vector<LLRect>::iterator rect_it = selection_rects.begin();
-- 
cgit v1.2.3


From 226929f8f5b8bc1080d0082b2595d689238df2b8 Mon Sep 17 00:00:00 2001
From: Oz Linden <oz@lindenlab.com>
Date: Mon, 7 Jul 2014 15:54:24 -0400
Subject: increment viewer version to 3.7.12

---
 indra/newview/VIEWER_VERSION.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'indra')

diff --git a/indra/newview/VIEWER_VERSION.txt b/indra/newview/VIEWER_VERSION.txt
index 584a914c29..f7e5aa84c2 100644
--- a/indra/newview/VIEWER_VERSION.txt
+++ b/indra/newview/VIEWER_VERSION.txt
@@ -1 +1 @@
-3.7.11
+3.7.12
-- 
cgit v1.2.3